# Connections

Use the following endpoints to manage connections.

# Rate limits

Connections resources have the following rate limits:

Type Resource Limit
GETList connections:
/api/connections
60 requests per minute
AllAll other
Connections endpoints
1 request per second

# Quick reference

Type Resource Description
GET /api/connections Lists connections belonging to a user.
POST /api/connections Creates a connection.
PUT /api/connections/:connection_id Updates a connection.
POST /api/connections/:connection_id/disconnect Disconnects a connection.
DELETE /api/connections/:connection_id Deletes a connection.

# List connections

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

GET /api/connections

# Query parameters

Name Type Description
folder_id string
optional
Folder ID of the connection.
parent_id string
optional
Parent ID of the connection. Connection must be of the same provider.
external_id string
optional
External identifier usually given to the user who owns the connection.
include_runtime_connections string
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_after string
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

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

# Response

[
  {
    "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,
    "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,
    "tags": null
  }
]

# Create a connection

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

  • Create a shell connection
  • Create and authenticate a connection

AUTHORIZATION CODE GRANT CONNECTIONS

The Workato API allows you to create OAuth 2.0 connections. However, authorization code grant connections require that you add an oauth_token_pair object, which contains both an access token and a refresh token as strings. 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:

Name Type Description
name string
optional
Name of the connection. For example: Prod JIRA connection
provider string
optional
The application type of the connection. For example: jira
parent_id string
optional
The ID of the parent connection. The parent connection must be the same provider type. Learn more.
folder_id string
conditionally required
The ID of the project or folder containing the connection.
external_id string
optional
The external ID assigned to the connection, usually given to the user who owns the connection.
shell_connection boolean
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.
input Object
optional
Connection parameters.

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

FOLDER_ID IS CONDITIONALLY REQUIRED

The folder_id parameter is required if the target workspace's Home assets folder has been converted to a project. Refer to the Projects page's Home assets project section for more information.

# Sample requests

# Shell connection request

This creates a connection in a Disconnected state.

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.

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": "[email protected]",
              "apitoken": "XXXXXXXX"
            }
          }'

# Response

{
   "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

Name Type Description
connection_id string
required
The ID of the connection.

# Payload

Name Type Description
name string
optional
Name of the connection. For example: Prod Salesforce connection
parent_id string
optional
The ID of the parent connection. Learn more.
folder_id string
optional
The ID of the project or folder containing the connection.
external_id string
optional
An external ID assigned to the connection. This value could reference a record in one of your other applications.
shell_connection boolean
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.
input object
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

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": "[email protected]",
              "apitoken": "XXXXXXXX"
            }
          }'

# Response

{
   "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

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

Name Type Description
connection_id string
required
The ID of the connection.
force boolean
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

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.
{
    "success": true,
    "status": "disconnected"

}
  • Provided connection ID does not exist
{
   "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

Name Type Description
connection_id string
required
The ID of the connection.

# Sample request

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:

{
    "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:

{
   "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:

{
    "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:

{
   "message": "Not found"
}


Last updated: 10/16/2025, 9:32:50 PM