Connections

Use the following endpoints to manage connections.

Rate limits

Connections resources have the following rate limits:

Quick reference

TypeResourceDescription
GET/api/connectionsLists connections belonging to a user.
POST/api/connectionsCreates a connection.
PUT/api/connections/:connection_idUpdates a connection.
POST/api/connections/:connection_id/disconnectDisconnects a connection.
DELETE/api/connections/:connection_idDeletes a connection.

List connections

Returns all connections and associated data for the authenticated Workato user.

shell
GET /api/connections

Query parameters

NameTypeDescription
folder_idstring
optional
Folder ID of the connection.
parent_idstring
optional
Parent ID of the connection. Connection must be of the same provider.
project_idstring
optional
The ID of the project containing the connection.
external_idstring
optional
External identifier usually given to the user who owns the connection.
include_runtime_connectionsstring
optional
When "true" is supplied, all runtime user connections are also returned.
includes[]array of strings
optional
Specifies additional fields to include in the response. Accepts tags as a value. If tags is supplied in the request, the response includes a tags field for each connection. This field contains an array of zero or more tag handles (strings).
updated_afterstring
optional
Filter the list of connections to include only those updated after the date and time you specify. The date and time must be provided in ISO 8601 format according to the following pattern: YYYY-MM-DDTHH:MM:SSZ.

Sample request

shell
curl  -X GET https://www.workato.com/api/connections?includes[]=tags
      -H 'Authorization: Bearer <api_token>'

Response

json
[
  {
    "application": "salesforce",
    "id": 36,
    "name": "ACME Production Salesforce connection",
    "description": null,
    "authorized_at": "2015-05-26T22:53:52.528Z",
    "authorization_status": "success",
    "authorization_error": null,
    "created_at": "2015-05-26T22:53:52.532Z",
    "updated_at": "2015-05-26T22:53:52.532Z",
    "external_id": null,
    "folder_id": 4515,
    "connection_lost_at": null,
    "connection_lost_reason": null,
    "parent_id": null,
    "project_id": 12314295,
    "tags": [
      "tag-ANgeffPL-3gxQwA"
    ]
  },
  {
    "application": "google_sheets",
    "id": 37,
    "name": "ACME google sheet account",
    "description": null,
    "authorized_at": "2015-05-26T22:53:52.528Z",
    "authorization_status": "success",
    "authorization_error": null,
    "created_at": "2015-05-26T22:53:52.532Z",
    "updated_at": "2015-05-26T22:53:52.532Z",
    "external_id": null,
    "folder_id": 4515,
    "connection_lost_at": null,
    "connection_lost_reason": null,
    "parent_id": null,
    "project_id": 12314295,
    "tags": null
  }
]

Create a connection

Create a new connection. This endpoint supports the following actions:

  • Create a shell connection
  • Create and authenticate a connection

OAUTH CONNECTIONS

The Workato API allows you to create OAuth 2.0 connections. However, connections types that would normally redirect you to a sign-in screen, such as oauth or oauth2_auth_code_grant, require an oauth_token_pair object containing an access token and a refresh token. Client credentials grant connections don't require an oauth_token_pair object. You can create a shell connection in cases where you don't have an access token and refresh token.

Refer to the Connection parameters reference page for more information.

POST /api/connections

Payload

Include the following properties in the request body to filter results:

NameTypeDescription
namestring
optional
Name of the connection. For example: Prod JIRA connection
providerstring
optional
The application type of the connection. For example: jira
parent_idstring
optional
The ID of the parent connection. The parent connection must be the same provider type. Learn more.
folder_idstring
conditionally required
The ID of the project or folder containing the connection.
external_idstring
optional
The external ID assigned to the connection, usually given to the user who owns the connection.
shell_connectionboolean
optional
Specifies whether the connection is a shell connection or an authenticated connection. Defaults to false if not specified. If shell_connection is false, credentials are passed, and the connection is tested and established. If shell_connection is true, credentials are passed, but the connection isn't tested or established, and additional actions are required for authentication.
inputObject
optional
Connection parameters.

For a list of providers and connection parameters, refer to the Platform API connection parameter reference.

FOLDER_ID REQUIRED STARTING MAY 7, 2026

Starting May 7, 2026, the folder_id parameter is required on this endpoint. The value must reference a project or folder other than the Home assets folder. Requests that omit folder_id or target the Home assets folder will return an error.

Sample requests

Shell connection request

This creates a connection in a Disconnected state.

shell
curl  -X POST https://www.workato.com/api/connections \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "Prod JIRA connection",
            "provider": "jira",
            "folder_id": 1892
          }'

Connection with credentials

This creates and authenticates a connection.

shell
curl  -X POST https://www.workato.com/api/connections \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "Prod JIRA connection",
            "provider": "jira",
            "folder_id": 1892,
            "input": {
              "host_name": "acme.atlassian.net",
              "auth_type": "api_token",
              "email": "smith@acme.com",
              "apitoken": "XXXXXXXX"
            }
          }'

Response

json
{
   "id":36,
   "name":"Prod JIRA connection",
   "provider":"jira",
   "authorized_at":"2023-01-26T22:53:52.528Z",
   "authorization_status":"success",
   "authorization_error":null,
   "created_at":"2023-01-26T22:53:52.532Z",
   "updated_at":"2023-01-26T22:53:52.532Z",
   "external_id":null,
   "folder_id":1892,
   "parent_id":null
}

Update a connection

Updates a connection in a non-embedded workspace.

PUT /api/connections/:connection_id

URL parameters

NameTypeDescription
connection_idstring
required
The ID of the connection.

Payload

NameTypeDescription
namestring
optional
Name of the connection. For example: Prod Salesforce connection
parent_idstring
optional
The ID of the parent connection. Learn more.
folder_idstring
optional
The ID of the project or folder containing the connection.
external_idstring
optional
An external ID assigned to the connection. This value could reference a record in one of your other applications.
shell_connectionboolean
optional
Specifies whether the connection is a shell connection or an authenticated connection. Defaults to false if not specified. If shell_connection is false, credentials are passed, and the connection is tested and established. If shell_connection is true, credentials are passed, but the connection isn't tested or established, and additional actions are required for authentication.
inputobject
optional
Connection parameters.

For a list of providers and connection parameters, refer to the Platform API connection parameter reference.

Sample requests

Update a Jira connection

shell
curl  -X PUT https://www.workato.com/api/connections/1678 \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "jira_connection_latest",
            "folder_id": 28940,
            "input": {
              "host_name": "acme.atlassian.net",
              "api_token_auth": "true",
              "email": "smith@acme.com",
              "apitoken": "XXXXXXXX"
            }
          }'

Response

json
{
   "id":36,
   "name":"jira_connection",
   "provider":"jira",
   "authorized_at":"2015-05-26T22:53:52.528Z",
   "authorization_status":"success",
   "authorization_error":null,
   "created_at":"2015-05-26T22:53:52.532Z",
   "updated_at":"2015-05-26T22:53:52.532Z",
   "external_id":"U12904",
   "folder_id":4515,
   "parent_id":22318
}

Update an Outreach connection

shell
curl  -X PUT https://www.workato.com/api/connections/1678 \
      -H 'Authorization: Bearer <api_token>' \
      -H 'Content-Type: application/json' \
      -d  '{
            "name": "Outreach scope connection",
            "provider": "outreach",
            "input": {
              "advanced_settings": {
                "scopes": "sequences.all phoneNumbers.all"
              }
            }
          }'

Disconnect a connection

Disconnects an active connection in a non-embedded workspace. If the connection is already disconnected, no action is taken.

POST /api/connections/:connection_id/disconnect

URL parameters

NameTypeDescription
connection_idstring
required
The ID of the connection.
forceboolean
optional
Value must be true to forcefully disconnect an active connection used by active recipes. Defaults to false.

Payload

No payload is expected.

Sample request

shell
curl -X POST https://www.workato.com/api/connections/1678/disconnect \
     -H 'Authorization: Bearer <api_token>' \
     -H 'Content-Type: application/json' \
     -d '{ "force": true }'

Response

  • Successfully disconnected an active connection or connection already disconnected.
json
{
    "success": true,
    "status": "disconnected"

}
  • Provided connection ID does not exist
json
{
   "message": "Not found"
}

Delete a connection

Deletes a connection in a non-embedded workspace. This method deletes active (authenticated) and disconnected connections. If the connection is used by active recipes or as an Audit log streaming destination, this API request fails.

DELETE /api/connections/:connection_id

URL parameters

NameTypeDescription
connection_idstring
required
The ID of the connection.

Sample request

shell
curl  -X DELETE https://www.workato.com/api/connections/1678 \
      -H 'Authorization: Bearer <api_token>'

Responses

Successful deletion of an active or disconnected connection

When you successfully delete an active (authenticated) or disconnected connection, this endpoint returns the following response:

json
{
    "success": true,
    "status": "deleted"
}

Connection is used in active recipes

When you try to delete a connection used by an active recipe, this request fails, and the endpoint returns the following response:

json
{
   "success": false,
   "status": "rejected",
   "message": "You can't delete a connection used by active recipes"
}

Connection is used for Audit log streaming

When you try to delete a connection used as an Audit log streaming destination, this request fails, and the endpoint returns the following response:

json
{
    "success": false,
    "status": "rejected",
    "message": "You can't delete a connection used by audit log streaming"
}

Connection ID doesn't exist

If you provide a connection ID that doesn't exist in your workspace, this request fails, and the endpoint returns the following response:

json
{
   "message": "Not found"
}

Last updated: