For the complete documentation index, see llms.txt. This page is also available as Markdown.

Connections

Connections are reusable authentication and connectivity resources that let integrations communicate securely with external systems — databases, APIs, file servers, and cloud applications. Each connection has one type (such as http, netsuite, salesforce, ftp, or rdbms) that determines its authentication method and configuration fields.

Connection schema

List connections

get
/v1/connections

Returns a list of all connections configured in the account. If no connections exist in the account, a 204 response with no body will be returned.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
limitinteger · min: 1Optional

Maximum number of connections to return per page. Pair with the Link header cursor to page.

afterstringOptional

Opaque cursor for forward pagination. Pass the value from the Link response header (rel="next") to fetch the next page.

fetchQueueSizebooleanOptional

When true, includes queue size information in the response.

externalIdstringOptional

Filter to connections matching this exact external identifier.

includestringOptional

Comma-separated list of fields to project into each returned record. Triggers summary projection: the response contains a minimal identity set (_id, name, plus resource-specific fields) with the requested fields added on top. Supports dot notation for nested fields. Mutually exclusive with exclude.

Example: _integrationId,disabled,lastModified
excludestringOptional

Comma-separated list of fields to strip from the default response. Unlike include, does not trigger summary projection — returns the full record with the named fields removed. Protected identity fields (e.g. name) cannot be stripped. Mutually exclusive with include.

Example: createdAt,lastModified
Responses
200

Successfully retrieved list of connections

application/json
get/v1/connections
GET /v1/connections HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "_id": "615dfa0742763671275b70ab",
    "createdAt": "2021-10-06T19:33:27.797Z",
    "lastModified": "2025-06-03T14:50:07.948Z",
    "type": "http",
    "name": "/dev/null",
    "sandbox": false,
    "http": {
      "formType": "rest",
      "mediaType": "json",
      "baseURI": "https://devnull-as-a-service.com/dev/null",
      "isRest": false,
      "useNewAuthFailSchema": true,
      "auth": {
        "type": "custom"
      }
    },
    "autoRecoverRateLimitErrors": false
  },
  {
    "_id": "5f29dbc69e8a0f0e29a491b7",
    "createdAt": "2020-08-04T18:21:10.000Z",
    "lastModified": "2025-05-20T11:02:55.000Z",
    "type": "netsuite",
    "name": "NetSuite Production",
    "netsuite": {
      "authType": "token-auto",
      "account": "TSTDRV961912",
      "roleId": "3",
      "entityId": "14924",
      "wsdlVersion": "latest",
      "suiteAppInstalled": true
    }
  },
  {
    "_id": "69eb9f2f0e844e8339c0a4cf",
    "createdAt": "2026-04-24T16:49:51.000Z",
    "lastModified": "2026-04-24T16:49:51.000Z",
    "type": "mcp",
    "name": "Support Tools MCP",
    "mcp": {
      "protocol": "http",
      "serverURL": "https://api.example.com/mcp/support",
      "timeout": 600000,
      "http": {
        "auth": {
          "type": "token",
          "token": {
            "token": "******",
            "location": "header",
            "headerName": "Authorization",
            "scheme": "Bearer"
          }
        },
        "headers": []
      }
    }
  }
]

Create a connection

post
/v1/connections

Creates a new connection configuration that can be used to authenticate and connect to external systems and applications.

To also register the new connection on one or more integrations in the same call, pass their ids in __integrationIds. Invalid lists reject the whole request (see the 400, 404, and 422 responses); failures during the post-save registration itself do not roll back the new connection and are reported in __failedIntegrationRegistrations on the 201 response.

Creates standard connections only: a body with connectionRole: mcpChild is rejected, because MCP end-user child connections are written solely by the end-user setup page. To make a connection the parent that an MCP server collects end-user credentials for, list the per-user fields in endUserProvidedFields.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body

Fields that can be sent when creating or updating a connection.

namestring · min: 1 · max: 100Required

Display name for the connection.

Example: Salesforce Production
typestring · enumRequired

Connection type, which determines the authentication and connectivity options available and which config object must be supplied.

Possible values:
externalIdstringOptional

External identifier for the connection, often used to correlate it with a record in a third-party system.

Example: erp-conn-001
assistantstringOptional

Lowercase application name for HTTP connections to systems with an integrator.io adaptor (e.g. "shopify", "ebay"). Only applies to http connections.

Example: shopify
_agentIdstring · objectIdOptional

Reference to a Celigo on-premise Agent. Required for types that need local network or filesystem access (filesystem, jdbc agent/activedirectory, Oracle rdbms, and on-premise mongodb). The agent establishes a secure tunnel between the on-premise environment and integrator.io.

Example: 5f8d43a1b9e5a80011a35f2c
_borrowConcurrencyFromConnectionIdstring · objectIdOptional

Reference to another connection to share concurrency limits with. When set, this connection's traffic counts against the referenced connection's limit instead of its own, and its own concurrency and auto-recovery settings have no effect. One level only: the referenced connection may not itself borrow, and a connection that others borrow from cannot start borrowing.

Example: 615dfa0742763671275b70ab
autoRecoverRateLimitErrorsbooleanOptional

When true, rate-limit errors from the target system trigger automatic recovery — concurrency drops to 1 and climbs back toward the adaptor block's targetConcurrencyLevel, which is the throughput lever while this is on. Turning it on copies the current concurrencyLevel into the target; turning it off unsets the target and leaves concurrencyLevel at its current value.

Default: true
__integrationIdsstring · objectId[] · max: 100Optional

Integrations to register the new connection on immediately after creation, making it available for use within them. Only honored on POST /v1/connections (ignored on PUT) and never persisted on the connection document. Ids are validated before the connection is saved; registration runs after the save, and per-integration failures are reported in __failedIntegrationRegistrations on the 201 response without rolling back the new connection.

Example: ["6a55be91d16ee8270022893e"]
endUserProvidedFieldsstring[] · nullableOptional

Dot-paths of this connection's fields (for example http.encrypted.apiKey or rdbms.user) that each MCP end user must supply on their own mcpChild copy instead of inheriting the parent's value. Set it on the parent connection an MCP server collects end-user credentials for; omit it everywhere else. Omitting it (or sending []) on PUT keeps the stored paths; send null to clear them. By the platform contract, changing the stored list — adding, removing, or clearing paths — invalidates the mcpChild connections end users already hold against this parent, so each of them sets up again through the MCP setup page before tools that use it run for them.

Example: ["http.encrypted.apiKey","http.unencrypted.accountId"]
debugDatestring · date-timeOptional

Enables debug logging until this timestamp. Set to a future time to capture request/response logs.

Example: 2026-01-15T09:30:00.000Z
settingsFormobjectOptional

Dynamic form definition for connection-specific custom settings.

settingsobjectOptional

Connection-specific settings captured by settingsForm. At runtime, steps using this connection read the values under the fixed scope key connection — e.g. {{settings.connection.<fieldId>}} in Handlebars or $.settings.connection.<fieldId> in Mapper 2.0 envelope references.

Responses
201

Connection created successfully. When __integrationIds was supplied and one or more post-save registrations failed, the body additionally carries __failedIntegrationRegistrations; the connection is created either way.

application/json

Connection object as returned by the API.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
namestring · max: 100Required

Display name for the connection.

Example: Salesforce Production
typestring · enumRequired

The type of connection determining which authentication and connectivity options are available

Possible values:
externalIdstringOptional

External identifier for the connection, often used for integration with third-party systems

Example: erp-conn-001
assistantstringOptional

Application name in lowercase for HTTP connections to systems with integrator.io adaptors. Used to identify the target application being connected to. Examples - Shopify: "shopify", eBay: "ebay". Only applicable for HTTP connection types.

Example: shopify
_agentIdstring · objectIdOptional

Reference to a Celigo on-premise Agent. Required for connection types that need local network or filesystem access (JDBC, filesystem, Oracle RDBMS, and on-premise MongoDB). The agent establishes a secure tunnel between the on-premise environment and integrator.io.

Example: 5f8d43a1b9e5a80011a35f2c
_borrowConcurrencyFromConnectionIdstring · objectIdOptional

Reference to another connection to share concurrency limits with. When set, this connection's traffic counts against the referenced connection's limit instead of its own, and its own concurrency and auto-recovery settings have no effect. One level only: the referenced connection may not itself borrow, and a connection that others borrow from cannot start borrowing.

Example: 615dfa0742763671275b70ab
debugDatestring · date-timeOptional

Date until which debug logging is enabled for this connection

Example: 2026-01-15T09:30:00.000Z
settingsFormobjectOptional

Dynamic form configuration for connection-specific settings

settingsobjectOptional

Connection-specific settings and configurations

offlinebooleanRead-onlyOptional

When true, the connection has been taken offline and is skipped during flow execution.

_sourceIdstring · objectIdRead-onlyOptional

Source connection this was cloned from.

Example: 5f29dbc69e8a0f0e29a491b7
connectionRolestring · enumRead-onlyOptional

Distinguishes account-owned connections from the per-end-user credential copies MCP servers collect. Absent on connections last saved before the field existed, which behave as standard. Sending mcpChild on POST or PUT /v1/connections fails with 422 mcp_child_generic_route_not_allowed, and /connectionRole is not a patchable path; child connections are written only by the MCP end-user setup page, never through /v1.

Example: standardPossible values:
endUserProvidedFieldsstring[]Optional

Dot-paths of this connection's fields (for example http.encrypted.apiKey or rdbms.user) that each MCP end user must supply on their own mcpChild copy instead of inheriting the parent's value. Only returned on a standard connection that has paths set; never returned on a child. Writable through POST, PUT, and PATCH; by the platform contract, a write that changes the list invalidates the children end users already hold against this parent.

Example: ["http.encrypted.apiKey","http.unencrypted.accountId"]
_parentConnectionIdstring · objectIdRead-onlyOptional

Parent connection this child copies its non-credential configuration from. Present only when connectionRole is mcpChild; set by the end-user setup page and ignored when sent on a standard connection.

Example: 615dfa0742763671275b70ab
_mcpOwnerIdstring · objectIdRead-onlyOptional

Account owner whose parent connection and MCP servers this child belongs to. Present only when connectionRole is mcpChild; on a child, _userId is the end user and this field is the account.

Example: 5d2e1f0a9b8c7d6e5f4a3b2c
_parentSyncedAtstring · date-timeRead-onlyOptional

Timestamp when the child's non-credential fields were last synced from the parent connection. Present only when connectionRole is mcpChild.

Example: 2026-09-15T18:42:10.331Z
_userIdstring · objectIdRead-onlyOptional

End user who owns this mcpChild connection's credentials. Present only when connectionRole is mcpChild; a standard connection belongs to the account and omits this field.

Example: 5d2e1f0a9b8c7d6e5f4a3b2c
debugUntilstring · date-timeRead-onlyOptional

Debug logging is active until this timestamp. Absent or in the past means debug is off.

Example: 2026-01-15T09:30:00.000Z
encryptedstringRead-onlyOptional

Masked placeholder for encrypted credential fields. Always returns "******".

isHTTPbooleanRead-onlyOptional

When true, the connection uses the HTTP adaptor internally, even when type is wrapper.

autoRecoverRateLimitErrorsbooleanOptional

When true, rate-limit errors from the target system trigger automatic recovery: concurrency drops to 1, the rate-limited requests are retried with doubling waits (1 to 1024 minutes, after which the flag switches itself off), and concurrency climbs back toward targetConcurrencyLevel. While true, targetConcurrencyLevel is the throughput lever: a concurrencyLevel sent in a PUT is ignored, and one sent in a PATCH is stored but the recovery machinery moves it back toward the target.

Default: true
enableMicroBatchForOneToManybooleanOptional

When true, enables micro-batching for one-to-many data flows through this connection.

Default: true
enableCsvObjectParsingbooleanOptional

When true, enables CSV-to-object parsing for data received through this connection.

Default: true
post/v1/connections
POST /v1/connections HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 228

{
  "name": "My HTTP API",
  "type": "http",
  "http": {
    "mediaType": "json",
    "baseURI": "https://api.example.com",
    "auth": {
      "type": "token",
      "token": {
        "location": "header",
        "headerName": "Authorization",
        "scheme": "Bearer",
        "token": "<your-api-token>"
      }
    }
  }
}
{
  "_id": "6a2610be6d42eb08f85904c4",
  "createdAt": "2026-06-08T00:45:50.856Z",
  "lastModified": "2026-06-08T00:45:50.951Z",
  "type": "http",
  "name": "My HTTP API",
  "connectionRole": "standard",
  "enableMicroBatchForOneToMany": true,
  "enableCsvObjectParsing": true,
  "autoRecoverRateLimitErrors": true,
  "http": {
    "formType": "http",
    "mediaType": "json",
    "baseURI": "https://api.example.com",
    "concurrencyLevel": 25,
    "targetConcurrencyLevel": 25,
    "isRest": false,
    "useNewAuthFailSchema": true,
    "auth": {
      "type": "token",
      "token": {
        "token": "******",
        "location": "header",
        "headerName": "Authorization",
        "scheme": "Bearer"
      }
    }
  }
}

Get a connection

get
/v1/connections/{_id}

Retrieves a specific connection by its unique identifier. Returns the complete connection configuration including authentication settings.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstringRequired

The unique identifier of the connection

Responses
200

Connection retrieved successfully

application/json

Connection object as returned by the API.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
namestring · max: 100Required

Display name for the connection.

Example: Salesforce Production
typestring · enumRequired

The type of connection determining which authentication and connectivity options are available

Possible values:
externalIdstringOptional

External identifier for the connection, often used for integration with third-party systems

Example: erp-conn-001
assistantstringOptional

Application name in lowercase for HTTP connections to systems with integrator.io adaptors. Used to identify the target application being connected to. Examples - Shopify: "shopify", eBay: "ebay". Only applicable for HTTP connection types.

Example: shopify
_agentIdstring · objectIdOptional

Reference to a Celigo on-premise Agent. Required for connection types that need local network or filesystem access (JDBC, filesystem, Oracle RDBMS, and on-premise MongoDB). The agent establishes a secure tunnel between the on-premise environment and integrator.io.

Example: 5f8d43a1b9e5a80011a35f2c
_borrowConcurrencyFromConnectionIdstring · objectIdOptional

Reference to another connection to share concurrency limits with. When set, this connection's traffic counts against the referenced connection's limit instead of its own, and its own concurrency and auto-recovery settings have no effect. One level only: the referenced connection may not itself borrow, and a connection that others borrow from cannot start borrowing.

Example: 615dfa0742763671275b70ab
debugDatestring · date-timeOptional

Date until which debug logging is enabled for this connection

Example: 2026-01-15T09:30:00.000Z
settingsFormobjectOptional

Dynamic form configuration for connection-specific settings

settingsobjectOptional

Connection-specific settings and configurations

offlinebooleanRead-onlyOptional

When true, the connection has been taken offline and is skipped during flow execution.

_sourceIdstring · objectIdRead-onlyOptional

Source connection this was cloned from.

Example: 5f29dbc69e8a0f0e29a491b7
connectionRolestring · enumRead-onlyOptional

Distinguishes account-owned connections from the per-end-user credential copies MCP servers collect. Absent on connections last saved before the field existed, which behave as standard. Sending mcpChild on POST or PUT /v1/connections fails with 422 mcp_child_generic_route_not_allowed, and /connectionRole is not a patchable path; child connections are written only by the MCP end-user setup page, never through /v1.

Example: standardPossible values:
endUserProvidedFieldsstring[]Optional

Dot-paths of this connection's fields (for example http.encrypted.apiKey or rdbms.user) that each MCP end user must supply on their own mcpChild copy instead of inheriting the parent's value. Only returned on a standard connection that has paths set; never returned on a child. Writable through POST, PUT, and PATCH; by the platform contract, a write that changes the list invalidates the children end users already hold against this parent.

Example: ["http.encrypted.apiKey","http.unencrypted.accountId"]
_parentConnectionIdstring · objectIdRead-onlyOptional

Parent connection this child copies its non-credential configuration from. Present only when connectionRole is mcpChild; set by the end-user setup page and ignored when sent on a standard connection.

Example: 615dfa0742763671275b70ab
_mcpOwnerIdstring · objectIdRead-onlyOptional

Account owner whose parent connection and MCP servers this child belongs to. Present only when connectionRole is mcpChild; on a child, _userId is the end user and this field is the account.

Example: 5d2e1f0a9b8c7d6e5f4a3b2c
_parentSyncedAtstring · date-timeRead-onlyOptional

Timestamp when the child's non-credential fields were last synced from the parent connection. Present only when connectionRole is mcpChild.

Example: 2026-09-15T18:42:10.331Z
_userIdstring · objectIdRead-onlyOptional

End user who owns this mcpChild connection's credentials. Present only when connectionRole is mcpChild; a standard connection belongs to the account and omits this field.

Example: 5d2e1f0a9b8c7d6e5f4a3b2c
debugUntilstring · date-timeRead-onlyOptional

Debug logging is active until this timestamp. Absent or in the past means debug is off.

Example: 2026-01-15T09:30:00.000Z
encryptedstringRead-onlyOptional

Masked placeholder for encrypted credential fields. Always returns "******".

isHTTPbooleanRead-onlyOptional

When true, the connection uses the HTTP adaptor internally, even when type is wrapper.

autoRecoverRateLimitErrorsbooleanOptional

When true, rate-limit errors from the target system trigger automatic recovery: concurrency drops to 1, the rate-limited requests are retried with doubling waits (1 to 1024 minutes, after which the flag switches itself off), and concurrency climbs back toward targetConcurrencyLevel. While true, targetConcurrencyLevel is the throughput lever: a concurrencyLevel sent in a PUT is ignored, and one sent in a PATCH is stored but the recovery machinery moves it back toward the target.

Default: true
enableMicroBatchForOneToManybooleanOptional

When true, enables micro-batching for one-to-many data flows through this connection.

Default: true
enableCsvObjectParsingbooleanOptional

When true, enables CSV-to-object parsing for data received through this connection.

Default: true
get/v1/connections/{_id}
GET /v1/connections/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "_id": "615dfa0742763671275b70ab",
  "createdAt": "2021-10-06T19:33:27.797Z",
  "lastModified": "2025-06-03T14:50:07.948Z",
  "type": "http",
  "name": "/dev/null",
  "sandbox": false,
  "enableMicroBatchForOneToMany": true,
  "enableCsvObjectParsing": true,
  "autoRecoverRateLimitErrors": false,
  "http": {
    "formType": "rest",
    "mediaType": "json",
    "baseURI": "https://devnull-as-a-service.com/dev/null",
    "isRest": false,
    "useNewAuthFailSchema": true,
    "encrypted": "******",
    "auth": {
      "type": "custom"
    }
  },
  "microServices": {
    "disableHttp": false,
    "disableNetSuiteDistributed": false,
    "disableRdbms": false
  }
}

Update a connection

put
/v1/connections/{_id}

Updates an existing connection configuration. This is a full-replace operation — send the complete connection document, not just the fields you want to change; a field omitted from the body is cleared, including credentials (re-send them, or the masked "******" value clears them too).

Three settings are the exception and survive an omission: endUserProvidedFields (send null to clear it — [] is treated like an omission), and on ftp connections ftp.concurrencyLevel and ftp.targetConcurrencyLevel (the latter is unset whenever autoRecoverRateLimitErrors is false). connectionRole is read-only here: a body carrying mcpChild is rejected.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstringRequired

The unique identifier of the connection to update

Body

Fields that can be sent when creating or updating a connection.

namestring · min: 1 · max: 100Required

Display name for the connection.

Example: Salesforce Production
typestring · enumRequired

Connection type, which determines the authentication and connectivity options available and which config object must be supplied.

Possible values:
externalIdstringOptional

External identifier for the connection, often used to correlate it with a record in a third-party system.

Example: erp-conn-001
assistantstringOptional

Lowercase application name for HTTP connections to systems with an integrator.io adaptor (e.g. "shopify", "ebay"). Only applies to http connections.

Example: shopify
_agentIdstring · objectIdOptional

Reference to a Celigo on-premise Agent. Required for types that need local network or filesystem access (filesystem, jdbc agent/activedirectory, Oracle rdbms, and on-premise mongodb). The agent establishes a secure tunnel between the on-premise environment and integrator.io.

Example: 5f8d43a1b9e5a80011a35f2c
_borrowConcurrencyFromConnectionIdstring · objectIdOptional

Reference to another connection to share concurrency limits with. When set, this connection's traffic counts against the referenced connection's limit instead of its own, and its own concurrency and auto-recovery settings have no effect. One level only: the referenced connection may not itself borrow, and a connection that others borrow from cannot start borrowing.

Example: 615dfa0742763671275b70ab
autoRecoverRateLimitErrorsbooleanOptional

When true, rate-limit errors from the target system trigger automatic recovery — concurrency drops to 1 and climbs back toward the adaptor block's targetConcurrencyLevel, which is the throughput lever while this is on. Turning it on copies the current concurrencyLevel into the target; turning it off unsets the target and leaves concurrencyLevel at its current value.

Default: true
__integrationIdsstring · objectId[] · max: 100Optional

Integrations to register the new connection on immediately after creation, making it available for use within them. Only honored on POST /v1/connections (ignored on PUT) and never persisted on the connection document. Ids are validated before the connection is saved; registration runs after the save, and per-integration failures are reported in __failedIntegrationRegistrations on the 201 response without rolling back the new connection.

Example: ["6a55be91d16ee8270022893e"]
endUserProvidedFieldsstring[] · nullableOptional

Dot-paths of this connection's fields (for example http.encrypted.apiKey or rdbms.user) that each MCP end user must supply on their own mcpChild copy instead of inheriting the parent's value. Set it on the parent connection an MCP server collects end-user credentials for; omit it everywhere else. Omitting it (or sending []) on PUT keeps the stored paths; send null to clear them. By the platform contract, changing the stored list — adding, removing, or clearing paths — invalidates the mcpChild connections end users already hold against this parent, so each of them sets up again through the MCP setup page before tools that use it run for them.

Example: ["http.encrypted.apiKey","http.unencrypted.accountId"]
debugDatestring · date-timeOptional

Enables debug logging until this timestamp. Set to a future time to capture request/response logs.

Example: 2026-01-15T09:30:00.000Z
settingsFormobjectOptional

Dynamic form definition for connection-specific custom settings.

settingsobjectOptional

Connection-specific settings captured by settingsForm. At runtime, steps using this connection read the values under the fixed scope key connection — e.g. {{settings.connection.<fieldId>}} in Handlebars or $.settings.connection.<fieldId> in Mapper 2.0 envelope references.

Responses
200

Connection updated successfully

application/json

Connection object as returned by the API.

_idstring · objectIdRead-onlyRequired

Unique identifier for the resource. Format is a 24-character hexadecimal string.

Example: 5f8d43a1b9e5a80011a35f2c
createdAtstring · date-timeRead-onlyRequired

Timestamp when the resource was created. Set automatically and cannot be modified.

Example: 2023-04-01T09:15:32Z
lastModifiedstring · date-timeRead-onlyRequired

Timestamp when the resource was last updated. Changes whenever any property is modified.

Example: 2023-04-15T14:30:15Z
deletedAtstring · nullableRead-onlyOptional

Timestamp when the resource was soft-deleted. When null or absent, the resource is active.

Example: 2023-05-20T11:45:32Z
_integrationIdstring · objectIdRead-onlyOptional

Reference to the specific integration instance that contains this resource.

This field is only populated for resources that are part of an integration app installation. It contains the unique identifier (_id) of the integration resource that was installed in the account.

The integration instance represents a specific installed instance of an integration app, with its own configuration, settings, and runtime environment.

This reference enables:

  • Tracing the resource back to its parent integration instance
  • Permission and access control based on integration ownership
  • Lifecycle management (enabling/disabling, updating, or uninstalling)
Example: 5f9a7b2c3d4e5f6a7b8c9d0e
_connectorIdstring · objectIdRead-onlyOptional

Reference to the integration app that defines this resource.

This field is only populated for resources that are part of an integration app. It contains the unique identifier (_id) of the integration app (connector) that defines the structure, behavior, and templates for this resource.

The integration app is the published template that can be installed multiple times across different accounts, with each installation creating a separate integration instance (referenced by _integrationId).

This reference enables:

  • Identifying the source integration app for this resource
  • Determining which template version is being used
  • Linking to documentation, support, and marketplace information
Example: 5e8d43a1b9e5a80011a35f1b
namestring · max: 100Required

Display name for the connection.

Example: Salesforce Production
typestring · enumRequired

The type of connection determining which authentication and connectivity options are available

Possible values:
externalIdstringOptional

External identifier for the connection, often used for integration with third-party systems

Example: erp-conn-001
assistantstringOptional

Application name in lowercase for HTTP connections to systems with integrator.io adaptors. Used to identify the target application being connected to. Examples - Shopify: "shopify", eBay: "ebay". Only applicable for HTTP connection types.

Example: shopify
_agentIdstring · objectIdOptional

Reference to a Celigo on-premise Agent. Required for connection types that need local network or filesystem access (JDBC, filesystem, Oracle RDBMS, and on-premise MongoDB). The agent establishes a secure tunnel between the on-premise environment and integrator.io.

Example: 5f8d43a1b9e5a80011a35f2c
_borrowConcurrencyFromConnectionIdstring · objectIdOptional

Reference to another connection to share concurrency limits with. When set, this connection's traffic counts against the referenced connection's limit instead of its own, and its own concurrency and auto-recovery settings have no effect. One level only: the referenced connection may not itself borrow, and a connection that others borrow from cannot start borrowing.

Example: 615dfa0742763671275b70ab
debugDatestring · date-timeOptional

Date until which debug logging is enabled for this connection

Example: 2026-01-15T09:30:00.000Z
settingsFormobjectOptional

Dynamic form configuration for connection-specific settings

settingsobjectOptional

Connection-specific settings and configurations

offlinebooleanRead-onlyOptional

When true, the connection has been taken offline and is skipped during flow execution.

_sourceIdstring · objectIdRead-onlyOptional

Source connection this was cloned from.

Example: 5f29dbc69e8a0f0e29a491b7
connectionRolestring · enumRead-onlyOptional

Distinguishes account-owned connections from the per-end-user credential copies MCP servers collect. Absent on connections last saved before the field existed, which behave as standard. Sending mcpChild on POST or PUT /v1/connections fails with 422 mcp_child_generic_route_not_allowed, and /connectionRole is not a patchable path; child connections are written only by the MCP end-user setup page, never through /v1.

Example: standardPossible values:
endUserProvidedFieldsstring[]Optional

Dot-paths of this connection's fields (for example http.encrypted.apiKey or rdbms.user) that each MCP end user must supply on their own mcpChild copy instead of inheriting the parent's value. Only returned on a standard connection that has paths set; never returned on a child. Writable through POST, PUT, and PATCH; by the platform contract, a write that changes the list invalidates the children end users already hold against this parent.

Example: ["http.encrypted.apiKey","http.unencrypted.accountId"]
_parentConnectionIdstring · objectIdRead-onlyOptional

Parent connection this child copies its non-credential configuration from. Present only when connectionRole is mcpChild; set by the end-user setup page and ignored when sent on a standard connection.

Example: 615dfa0742763671275b70ab
_mcpOwnerIdstring · objectIdRead-onlyOptional

Account owner whose parent connection and MCP servers this child belongs to. Present only when connectionRole is mcpChild; on a child, _userId is the end user and this field is the account.

Example: 5d2e1f0a9b8c7d6e5f4a3b2c
_parentSyncedAtstring · date-timeRead-onlyOptional

Timestamp when the child's non-credential fields were last synced from the parent connection. Present only when connectionRole is mcpChild.

Example: 2026-09-15T18:42:10.331Z
_userIdstring · objectIdRead-onlyOptional

End user who owns this mcpChild connection's credentials. Present only when connectionRole is mcpChild; a standard connection belongs to the account and omits this field.

Example: 5d2e1f0a9b8c7d6e5f4a3b2c
debugUntilstring · date-timeRead-onlyOptional

Debug logging is active until this timestamp. Absent or in the past means debug is off.

Example: 2026-01-15T09:30:00.000Z
encryptedstringRead-onlyOptional

Masked placeholder for encrypted credential fields. Always returns "******".

isHTTPbooleanRead-onlyOptional

When true, the connection uses the HTTP adaptor internally, even when type is wrapper.

autoRecoverRateLimitErrorsbooleanOptional

When true, rate-limit errors from the target system trigger automatic recovery: concurrency drops to 1, the rate-limited requests are retried with doubling waits (1 to 1024 minutes, after which the flag switches itself off), and concurrency climbs back toward targetConcurrencyLevel. While true, targetConcurrencyLevel is the throughput lever: a concurrencyLevel sent in a PUT is ignored, and one sent in a PATCH is stored but the recovery machinery moves it back toward the target.

Default: true
enableMicroBatchForOneToManybooleanOptional

When true, enables micro-batching for one-to-many data flows through this connection.

Default: true
enableCsvObjectParsingbooleanOptional

When true, enables CSV-to-object parsing for data received through this connection.

Default: true
put/v1/connections/{_id}
PUT /v1/connections/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 231

{
  "name": "My HTTP API",
  "type": "http",
  "http": {
    "mediaType": "json",
    "baseURI": "https://api.example.com/v2",
    "auth": {
      "type": "token",
      "token": {
        "location": "header",
        "headerName": "Authorization",
        "scheme": "Bearer",
        "token": "<your-api-token>"
      }
    }
  }
}
{
  "_id": "615dfa0742763671275b70ab",
  "createdAt": "2021-10-06T19:33:27.797Z",
  "lastModified": "2026-06-08T00:45:50.951Z",
  "type": "http",
  "name": "My HTTP API",
  "enableMicroBatchForOneToMany": true,
  "enableCsvObjectParsing": true,
  "autoRecoverRateLimitErrors": true,
  "http": {
    "formType": "http",
    "mediaType": "json",
    "baseURI": "https://api.example.com/v2",
    "isRest": false,
    "useNewAuthFailSchema": true,
    "auth": {
      "type": "token",
      "token": {
        "token": "******",
        "location": "header",
        "headerName": "Authorization",
        "scheme": "Bearer"
      }
    }
  }
}

Delete a connection

delete
/v1/connections/{_id}

Deletes a connection. The connection is soft-deleted and retained in the recycle bin for 30 days before permanent removal. Use POST /v1/recycleBinTTL/connections/{_id} to restore it during that window.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstringRequired

The unique identifier of the connection to delete

Responses
204

Connection deleted successfully

No content

delete/v1/connections/{_id}
DELETE /v1/connections/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Patch a connection

patch
/v1/connections/{_id}

Partially updates a connection using a JSON Patch document (RFC 6902) without re-sending its credentials — stored credentials are never read, required, or changed by this operation. Use it for the settings below; everything else goes through PUT, which replaces the whole document. Only these paths are accepted (<adaptor> is the connection's type, e.g. /http/concurrencyLevel, /netsuite/targetConcurrencyLevel):

Path
Description

/name

Connection display name

/debugDate

Debug logging expiry (ISO-8601, max 1 hour from now)

/debugUntil

Alias for /debugDate

/<adaptor>/concurrencyLevel

Concurrent requests allowed. Platform-managed while autoRecoverRateLimitErrors is true — the recovery machinery moves it toward the target, so set targetConcurrencyLevel instead

/<adaptor>/targetConcurrencyLevel

Ceiling auto-recovery climbs back to. Persists only while autoRecoverRateLimitErrors is true; while false the save unsets it

/_borrowConcurrencyFromConnectionId

Share another connection's concurrency budget. remove clears it

/autoRecoverRateLimitErrors

Rate-limit auto-recovery toggle. Turning it on copies the current level into the target; turning it off unsets the target and leaves the level at its current value

/endUserProvidedFields

Dot-paths MCP end users must supply on their own child copy of this connection. replace with [] or remove clears the list, and add on /endUserProvidedFields/- appends one path; a path the account owns (type, _agentId, wrapper._stackId, any <adaptor>._iClientId) is rejected

replace and add both set the value (a currently unset field is fine); remove unsets it. A null value is rejected. Any other path — including /connectionRole, /netsuite/concurrencyLevelRESTlet, /netsuite/concurrencyLevelWebServices and rateLimit fields — fails with <path> is not a whitelisted property. Concurrency values must be whole numbers (a decimal fails with 422 invalid_field_value); out-of-range integers are clamped into the account's licensed range rather than rejected. A whitelisted path under an adaptor block the connection does not use is accepted but never read. The borrowed-from connection must exist in the account, may not itself borrow, and a connection that others borrow from cannot start borrowing. Settings-only changes are recorded in the connection's audit log.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstringRequired

The unique identifier of the connection to patch

Bodyobject · JsonPatchOperation[]

A JSON Patch document (RFC 6902). Send an array of patch operations on whitelisted fields — all other paths are rejected with 422.

opstring · enumRequired

The operation to perform.

Possible values:
pathstringRequired

JSON Pointer (RFC 6901) to the field to patch. Only whitelisted paths are accepted — unlisted paths return 422 with "<path> is not a whitelisted property".

valueanyOptional

The new value to set. Required for replace and add, omit for remove.

Responses
204

Connection patched successfully

No content

patch/v1/connections/{_id}
PATCH /v1/connections/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 74

[
  {
    "op": "replace",
    "path": "/debugUntil",
    "value": "2026-05-02T16:00:00.000Z"
  }
]

No content

Ping an existing connection via GET

get
/v1/connections/{_id}/ping

GET variant of the saved-connection ping — identical behavior to POST /v1/connections/{_id}/ping, with no request body to send. Runs the adaptor's ping routine against the connection identified by _id to verify its credentials and network configuration still work; no data is read, written, or modified.

Inspect the response body, not the HTTP status, to determine the outcome: success and adaptor-level failures both return HTTP 200 — success is {code: 200}, failures are {errors: [...]}. The only non-success status is 404, when _id does not resolve to a connection.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Connection ID to ping.

Responses
200

Ping executed. Inspect the body to determine outcome — success and adaptor-level failures both return HTTP 200. Success returns {code: 200}; adaptor-level failures return {errors: [...]}.

application/json
or
get/v1/connections/{_id}/ping
GET /v1/connections/{_id}/ping HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "code": 200
}

Ping an existing connection

post
/v1/connections/{_id}/ping

Runs the adaptor's ping routine against a saved connection to verify its credentials and network configuration still work; no data is read, written, or modified. The check is adaptor-specific (HTTP runs the ping relativeURI or baseURI, RDBMS/JDBC open a driver session, MCP issues a tools/list, NetSuite/Salesforce do a token or session validation). The request body is optional and ignored.

Inspect the response body, not the HTTP status, to determine the outcome: success and adaptor-level failures both return HTTP 200 — success is {code: 200}, failures are {errors: [...]}. The only non-success status is 404, when _id does not resolve to a connection. For a not-yet-saved connection, use POST /v1/connections/ping instead.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Connection ID to ping.

Body

Currently ignored; reserved for future per-ping overrides.

Other propertiesanyOptional
Responses
200

Ping executed. Inspect the body to determine outcome — success and adaptor-level failures both return HTTP 200. Success returns {code: 200}; adaptor-level failures return {errors: [...]}.

application/json
or
post/v1/connections/{_id}/ping
POST /v1/connections/{_id}/ping HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "code": 200
}

Send a request through a connection (proxy)

post
/v1/connections/{_id}/proxy

Sends one HTTP request to the system behind a saved connection, using that connection's base URI and stored authentication, and returns the target's response as-is. Use it to call an endpoint the connection's exports and imports do not expose — a metadata or describe call, an ad-hoc read, a one-off write — without copying credentials out of integrator.io.

The proxy call is always POST; the request to the target is shaped by headers:

  • Integrator-Method (required) is the HTTP method used against the target. One of HEAD, GET, PUT, PATCH, POST, DELETE; any other value is rejected with 405 method_not_allowed, and omitting the header returns 400 missing_header.

  • Integrator-Relative-URI (optional) is appended to the connection's base URI, query string included. Omitted, the request goes to the base URI itself.

  • The proxy request body is forwarded to the target as its body. Send an empty JSON object when the target expects no body.

Only these headers are read. Any other header on the proxy request — a custom X-Correlation-Id, an Authorization meant for the target — is dropped, not forwarded; the target receives the connection's authentication plus the standard request headers (Accept, Content-Type, Content-Length).

The response is the target's response: its status code, body, and headers come back unchanged, so a 404 or 422 here is the target's answer, not the proxy's. Non-JSON bodies (XML, text) pass through with their own Content-Type. Only two statuses are the proxy's own: 400 missing_header and 404 invalid_ref when _id is not a connection in the account.

NetSuite connections route to a RESTlet instead of a relative URI: send Integrator-NetSuite-ScriptId and Integrator-NetSuite-DeployId with the script and deployment ids of the RESTlet to call. See Connect to custom NetSuite RESTlets and Connect to Salesforce REST relative URIs via proxy for the flow-step form of the same call (an integrator.io export or import whose relative URI is this path).

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Connection whose base URI and authentication the request is sent with.

Header parameters
Integrator-Methodstring · enumRequired

HTTP method to use against the target. Header names are case-insensitive.

Example: GETPossible values:
Integrator-Relative-URIstringOptional

Path and query string appended to the connection's base URI, for example /v1/flows?limit=1. Omit to send the request to the base URI. Not used by NetSuite connections, which route by RESTlet script and deployment id instead.

Example: /services/data/v58.0/sobjects/account/describe
Integrator-NetSuite-ScriptIdstringOptional

NetSuite connections only — the script id of the RESTlet to call (customscript_…). Send together with Integrator-NetSuite-DeployId.

Example: customscript_celigo_myrestlet
Integrator-NetSuite-DeployIdstringOptional

NetSuite connections only — the deployment id of the RESTlet to call (customdeploy_…). Send together with Integrator-NetSuite-ScriptId.

Example: customdeploy_celigo_myrestlet
Body

Forwarded to the target as the request body. Send {} when the target method takes no body (GET, HEAD, DELETE).

Other propertiesanyOptional
Responses
200

The target's response, passed through. The status is whatever the target returned — a 2xx here, or the target's own 4xx/5xx — with its body and headers unchanged.

anyOptional

The target's response body, as returned by the target.

post/v1/connections/{_id}/proxy
POST /v1/connections/{_id}/proxy HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Integrator-Method: GET
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
[
  {
    "_id": "69f4b2cb95ec28be9ca1a88d",
    "name": "Shopify orders"
  }
]

Run an import document through a connection

post
/v1/connections/{_id}/import

Runs an import document sent in the request body — a virtual import — through this connection against the supplied records and returns one result per record, synchronously. Nothing is saved: the document can be an unsaved draft, a modified copy, or a saved import as fetched (_id and metadata accepted). Each record runs the document's own pipeline — input filter, preMap hook, mappings, postMap hook, request, postSubmit hook — and the request executes against the live destination: a real write, not a dry run; a saved mockResponse does not substitute. A record the input filter excludes comes back ignored, never sent. Adaptors POST /v1/imports/preview rejects with invalid_adaptor run here — NetSuite and RDBMS verified alongside HTTP.

The step runs with the document's own settings only: hooks receive options.settings with an import key but no integration or flow key and no _flowId / _integrationId; {{settings.integration.*}} and {{settings.flow.*}} templates render empty. A document that reads integration- or flow-level settings behaves differently here than in a flow run, and nothing in the request supplies that context. The connection in the path is the one used; a _connectionId on the document is ignored.

POST /v1/imports/{_id}/invoke runs a saved import the same way with the same per-record shape; the read-side sibling is the virtual export, POST /v1/connections/{_id}/export.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Connection the import document runs through.

Example: 6a04b5309dc296c4efb1a6e0
Body

The import document to run and the records to run through it.

Other propertiesanyOptional
Responses
200

One result per input record, in input order — accepted, failed at the destination, or ignored by the document's own input filter.

application/json

The outcome of running one input record through an import — one element per record, in input order — shared by POST /v1/imports/{_id}/invoke and the virtual import POST /v1/connections/{_id}/import. A record the import itself ignored before any request carries ignored: true and the stage that dropped it; a record the destination accepted carries its parsed response; a record the destination rejected — or that the import's failPath / failValues rules judged a failure even on a 2xx — carries errors[].

statusCodeintegerOptional

HTTP status of the record's outcome. The destination's status for an accepted record; 422 when the import recorded a failure for the record — including when the destination itself answered 200 and the import's failPath rules declared it a failure.

ignoredbooleanOptional

When true, the import dropped the record before sending anything and stage names the gate; the destination was not called for it.

stagestringOptional

The import stage that ignored the record — inputFilter when the import's own input filter excluded it. Present only with ignored.

Example: inputFilter
Other propertiesanyOptional
post/v1/connections/{_id}/import
POST /v1/connections/{_id}/import HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 322

{
  "import": {
    "adaptorType": "HTTPImport",
    "mapping": {
      "fields": [
        {
          "extract": "email",
          "generate": "Email"
        }
      ],
      "lists": []
    },
    "http": {
      "relativeURI": [
        "/post"
      ],
      "method": [
        "POST"
      ],
      "requestType": [
        "CREATE"
      ],
      "requestMediaType": "json",
      "successMediaType": "json",
      "sendPostMappedData": true,
      "formType": "http"
    }
  },
  "data": [
    {
      "email": "contact@acme.com"
    }
  ]
}
[
  {
    "statusCode": 200,
    "_json": {
      "Email": "contact@acme.com"
    },
    "_headers": {
      "content-type": "application/json; charset=utf-8"
    }
  }
]

Run an export document through a connection

post
/v1/connections/{_id}/export

Runs an export document sent in the request body — a virtual export — through this connection against the live source and returns the fetched records, synchronously. Nothing is saved and no job is created: the document can be an unsaved draft, a modified copy of a saved export, or a saved export as fetched. Use it to read from a system through an existing connection before an export exists, or to check what a changed export definition would return.

The connection in the path is the one used; a _connectionId on the document is not needed. The read executes against the live source (HTTP and NetSuite RESTlet searches verified) and dataURIs carries, per record, a link to the record in the source system when the adaptor provides one (null otherwise).

The export-side preview surfaces, POST /v1/exports/preview and the flow-scoped POST /v1/integrations/{_integrationId}/flows/{_flowId}/exports/preview, return the same records inside a stage-by-stage envelope; prefer them when the export's transform or filter output matters. The write-side sibling is the virtual import, POST /v1/connections/{_id}/import.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Connection the export document runs through.

Example: 6a04b5309dc296c4efb1a6e0
Body

The export document to run.

Other propertiesanyOptional
Responses
200

The records the source returned, with a per-record link when the adaptor provides one.

application/json
Other propertiesanyOptional
post/v1/connections/{_id}/export
POST /v1/connections/{_id}/export HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 354

{
  "export": {
    "adaptorType": "NetSuiteExport",
    "netsuite": {
      "type": "restlet",
      "skipGrouping": true,
      "restlet": {
        "recordType": "customrecord_payout_variance",
        "restletVersion": "suitebundle",
        "columns": [
          {
            "name": "internalid",
            "label": "internalid"
          },
          {
            "name": "externalid",
            "label": "externalid"
          }
        ],
        "criteria": [
          {
            "field": "externalid",
            "operator": "is",
            "searchValue": "SEED-01"
          }
        ]
      }
    }
  }
}
{
  "data": [
    {
      "id": "1",
      "recordType": "customrecord_payout_variance",
      "internalid": "1",
      "externalid": "SEED-01"
    }
  ],
  "dataURIs": [
    "https://1234567.app.netsuite.com/app/common/custom/custrecordentry.nl?rectype=923&id=1"
  ]
}

Fetch debug logs for a connection

get
/v1/connections/{_id}/debug

Returns the buffered debug log stream for the connection — request/response pairs from recent exports, imports, and lookups that used it. Capture is gated by the connection's debugDate: logs are recorded only while debugDate is in the future, so enable it first via PUT /v1/connections/{_id} or the buffer stays empty.

The response is a plain-text stream (not JSON): each entry is a header line (timestamp traceKey resourceType resourceId) followed by a single-line JSON payload, entries separated by blank lines; paired request/response entries share a traceKey. Logs are shared across every flow using the connection (filter by resourceId client-side), and sensitive header values are redacted ("Authorization": "********"). For execution logs tied to a specific run, use GET /v1/flows/{_id}/jobs/{_jobId}/logs instead.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The connection id.

Responses
200

Debug log stream (plain text).

text/plain
stringOptional

Newline-separated debug log entries. Each entry is a header line (timestamp traceKey resourceType resourceId) followed by a JSON payload line; entries are separated by blank lines.

get/v1/connections/{_id}/debug
GET /v1/connections/{_id}/debug HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
2026-04-19T03:44:06.673Z b45a75a5b72e4522972e55edf26de1c8 import 69e44eb7a749d34a975a4747
{"url":"https://httpbin.org/post","method":"POST","body":"{\"id\":\"_id\"}","headers":{"X-None":"********","content-type":"application/json"},"requestIndex":0}

2026-04-19T03:44:06.774Z b45a75a5b72e4522972e55edf26de1c8 import 69e44eb7a749d34a975a4747
{"headers":{"date":"Sun, 19 Apr 2026 03:44:06 GMT","content-type":"application/json"},"body":"{\"ok\":true}"}

Clear the debug log buffer for a connection

delete
/v1/connections/{_id}/debug

Purges the connection's debug log buffer. Subsequent GET /v1/connections/{_id}/debug calls return empty until new traffic is captured (assuming debugDate is still in the future).

Idempotent — works whether the buffer held entries, was already empty, or the given connection id does not exist. Does not clear the connection's debugDate — debug capture remains enabled until debugDate expires or is removed via a PUT.

Useful between test runs to isolate logs for a single scenario. To fully disable debug capture, also PUT /v1/connections/{_id} with debugDate removed from the body.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The connection id.

Responses
204

Debug buffer cleared (or no-op if the buffer was already empty / id unknown).

No content

delete/v1/connections/{_id}/debug
DELETE /v1/connections/{_id}/debug HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Fetch a connection's debug logs for one export or import

get
/v1/connections/{_id}/debug/{typeId}

Same buffered debug log stream as GET /v1/connections/{_id}/debug, narrowed to the request/response pairs recorded for a single export or import (typeId) that uses the connection. Use it instead of filtering the shared stream client-side when one flow step is under investigation. Capture is still gated by the connection's debugDate, so the stream is empty until debug logging is enabled.

typeId must be the id of an export or import in the account; an id that resolves to neither answers 404, and a value that is not an ObjectId answers 400.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The connection id.

typeIdstring · objectIdRequired

Id of the export or import whose traffic through the connection to return.

Responses
200

Debug log stream (plain text) for the given export or import.

text/plain
stringOptional

Newline-separated debug log entries in the same format as GET /v1/connections/{_id}/debug: a header line (timestamp traceKey resourceType resourceId) followed by a JSON payload line, entries separated by blank lines. Every entry's resourceId equals typeId.

get/v1/connections/{_id}/debug/{typeId}
GET /v1/connections/{_id}/debug/{typeId} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
2026-04-19T03:44:06.673Z b45a75a5b72e4522972e55edf26de1c8 import 69e44eb7a749d34a975a4747
{"url":"https://httpbin.org/post","method":"POST","body":"{\"id\":\"_id\"}","headers":{"X-None":"********","content-type":"application/json"},"requestIndex":0}

2026-04-19T03:44:06.774Z b45a75a5b72e4522972e55edf26de1c8 import 69e44eb7a749d34a975a4747
{"headers":{"date":"Sun, 19 Apr 2026 03:44:06 GMT","content-type":"application/json"},"body":"{\"ok\":true}"}

Query metadata for a connection (RDBMS catalog or HTTP passthrough)

put
/v1/connections/{_id}/metadata

Fetches metadata from the system behind the connection. The request and response are bimodal, chosen by the connection's type:

  • rdbms / jdbc — runs a live catalog lookup. Send the rdbms wrapper (type: tables or columns). type: rdbms returns a {results: [...]} envelope of {database, schema, table} items, with a columns[] array of driver type metadata for column queries; type: jdbc returns a bare array with leaner column metadata and a primaryKeys[] sibling. Results are cached — pass refreshCache: true to bypass and repopulate (use sparingly).

  • http — signs and forwards an HTTP request through the connection's auth and baseURI (send the http wrapper with a body), returning the target's raw, opaque response. Used for GraphQL introspection and REST endpoint discovery.

Send the wrapper that matches the connection type; the wrong wrapper is a validation error. Empty RDBMS results are legitimate — empty cache, missing catalog permissions, or no columns.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The connection id. Must point to a connection of supported type (rdbms, jdbc, or http).

Body

Metadata query for a connection, populated with one of two branches by connection type: the rdbms wrapper (for type: rdbms and type: jdbc) runs catalog lookups (list tables / describe columns), and the http wrapper (for type: http, including GraphQL-over-HTTP) issues a request through the connection's baseURI and auth and returns the target's raw response. Populate only one branch; the wrong wrapper for the type is a validation error, and unsupported types (FTP, S3, filesystem, AS2, NetSuite, Salesforce) are rejected — NetSuite and Salesforce use their dedicated /v1/netsuite/metadata/... and /v1/salesforce/metadata/... endpoints.

refreshCachebooleanOptional

When true, bypasses the metadata cache and repopulates it from the live target (RDBMS driver call, or target HTTP request). Use sparingly — every refreshCache: true call re-issues the underlying work.

Default: false
Responses
200

Metadata query succeeded. Shape depends on connection type — see the three branches of ConnectionMetadataResponse.

application/json

Response for PUT /v1/connections/{_id}/metadata, in one of three shapes by connection type: rdbms returns a {results: [...]} envelope (table items {database, schema, table}; column items add a driver-detailed columns[]); jdbc returns a bare array with leaner column descriptors and a primaryKeys[] sibling; http returns the target server's raw, opaque response (the GraphQL or REST body).

or
or
put/v1/connections/{_id}/metadata
PUT /v1/connections/{_id}/metadata HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 39

{
  "rdbms": {
    "type": "tables",
    "tables": ""
  }
}
{
  "results": [
    {
      "database": "celigoLabs",
      "schema": "dbo",
      "table": "Customers"
    },
    {
      "database": "celigoLabs",
      "schema": "dbo",
      "table": "Orders"
    }
  ]
}

Purge the message queue for a connection

post
/v1/connections/{_id}/purgeMessages

Purges all messages from the connection's message queue. This is a rate-limited operation — repeated calls within approximately 20 seconds are throttled.

Returns an empty response on success. If the queue is already empty, the request fails with an empty_connection_queue error.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstringRequired

The unique identifier of the connection.

Responses
204

Message queue purged successfully (no body returned).

No content

post/v1/connections/{_id}/purgeMessages
POST /v1/connections/{_id}/purgeMessages HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Get the authorization URL to re-authorize a connection

get
/v1/connection/{_id}/oauth2

Returns a short-lived authorization URL for running (or re-running) the OAuth handshake behind this connection. Redirect the end user to it; once they consent, Celigo's callback writes the tokens back and flips needsAuthorization to false. The single authorizationUrl response field serves both OAuth 2.0 and OAuth 1.0a connections (NetSuite returns an OAuth 1.0a URL with an oauth_token parameter).

The resource segment is singular — /v1/connection/{_id}/oauth2; the plural form /v1/connections/{_id}/oauth2 is an alias that answers identically. The URL's state token is one-time and expires quickly, so request a fresh one if the flow is interrupted, then poll GET /v1/connections/{_id} until needsAuthorization is false.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The connection id.

Responses
200

Authorization URL ready for the end user to visit.

application/json

Authorization URL payload for restarting an OAuth handshake. One field, serves both OAuth 2.0 and OAuth 1.0a flows — the URL contents differ but the envelope does not.

authorizationUrlstring · uriOptional

Short-lived authorization URL. Redirect the end user here to consent at the provider. Embeds a one-time token in the state query parameter that expires quickly and is invalidated after a single use.

Example: https://login.example.com/oauth2/authorize?response_type=code&client_id=0oa1b2c3d4EXAMPLE5&redirect_uri=https%3A%2F%2Fapi.integrator.io%2Fconnection%2Foauth2callback&scope=read+write&state=eyJfY29ubmVjdGlvbklkIjoiNjE1ZGZhMDc0Mjc2MzY3MTI3NWI3MGFiIn0
get/v1/connection/{_id}/oauth2
GET /v1/connection/{_id}/oauth2 HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "authorizationUrl": "https://account.box.com/api/oauth2/authorize?response_type=code&state=eyJfY29ubmVjdGlvbklkIjoiNjg0YzYxNWIxMGJlZmI1NzY3YjJlODg1IiwiaXNWMVJlcXVlc3QiOnRydWUsIm90dCI6Im90dDFmZjI1M2EyM2RhZjRhZGZhNjRhMzRkNjk3NTkwZTVhIn0&redirect_uri=https%3A%2F%2Fintegrator.io%2Fconnection%2Foauth2callback&client_id=mfhrqxqiawmi6qlj0ddt99tc7az2409w&scope=root_readwrite"
}

List dependencies of a connection

get
/v1/connections/{_id}/dependencies

Returns the set of resources that depend on the specified resource. The response is an object whose keys are dependent-resource types (e.g. flows, imports) and whose values are arrays of dependency entries.

Returns {} for both zero-dependency and nonexistent IDs.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

Resource ID.

Responses
200

Dependency map. Keys are resource-type strings; values are arrays of dependency entries. Returns {} when no dependents exist.

application/json

Map of dependent-resource types to arrays of dependency entries. Keys are plural resource type strings (e.g. flows, imports, connections). An empty object {} means no dependents.

get/v1/connections/{_id}/dependencies
GET /v1/connections/{_id}/dependencies HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}

Check the Celigo SuiteApp and bundle on a NetSuite connection

get
/v1/connections/{_id}/distributedApps

Reports, live from the connected NetSuite account, whether the Celigo integrator.io SuiteApp (SuiteScript 2.x) and the legacy Celigo bundle are installed — the check the UI runs before offering a NetSuite API version that depends on either. Round-trips to NetSuite, so expect a few seconds. Only connections of type netsuite are accepted.

Use this instead of the connection's netsuite.suiteAppInstalled, which reflects only the SuiteApp as detected the last time the connection authenticated. For a single combined reachability result, or for a Salesforce connection, use GET /v1/connections/{_id}/distributed.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

NetSuite connection to check.

Responses
200

Installation state of each component.

application/json
get/v1/connections/{_id}/distributedApps
GET /v1/connections/{_id}/distributedApps HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "bundle": {
    "success": true
  },
  "suiteapp": {
    "success": true
  }
}

Ping the distributed adaptor behind a connection

get
/v1/connections/{_id}/distributed

Pings, live, the Celigo distributed adaptor installed in the account behind a netsuite or salesforce connection — the integrator.io bundle or SuiteApp RESTlet in NetSuite, the Celigo managed package in Salesforce — and reports one combined result. Round-trips to the remote system, so expect a few seconds. The distributed adaptor is what NetSuite real-time exports and netsuite_da imports, and Salesforce real-time exports, run through, so this is the check to run before building them.

Use GET /v1/connections/{_id}/distributedApps instead when you need the NetSuite bundle and SuiteApp reported separately; this endpoint is the only one of the two that also covers Salesforce. Any other connection type is rejected with 422.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

NetSuite or Salesforce connection to check.

Responses
200

Ping result. success: false is still HTTP 200 — inspect the body.

application/json

Result of pinging the Celigo distributed adaptor installed in the connected account.

successbooleanRequired

When true, the Celigo distributed adaptor (the integrator.io bundle or SuiteApp in NetSuite, the Celigo managed package in Salesforce) answered the ping and the connection can run distributed exports and imports. The remaining fields are present only when false.

Example: true
statusCodeintegerOptional

HTTP status the remote system returned for the failed ping — for example 404 when NetSuite reports the Celigo RESTlet is not installed. Absent when the failure did not reach the remote system (for example, a connection that is offline).

Example: 404
resBodystringOptional

Remote system's error text, or the platform's reason when the ping was not attempted.

Example: That Suitelet is invalid, disabled, or no longer exists.
bundleURLstring · uriOptional

Install link for the missing component in the connected account — the NetSuite bundle details page, or the Salesforce package installer — for the UI's install prompt.

Example: https://tstdrv1234567.app.netsuite.com/app/bundler/bundledetails.nl?sourcecompanyid=TSTDRV916910&domain=PRODUCTION&config=F&id=20038
get/v1/connections/{_id}/distributed
GET /v1/connections/{_id}/distributed HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "success": true
}

List sObject types for a Salesforce connection

get
/v1/salesforce/metadata/connections/{_id}/sObjectTypes

Returns an array of all sObject type descriptors available on the given Salesforce connection. This is the Salesforce describe-global response, typically containing ~1058 sObject types.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the Salesforce connection

Example: 5f8d43a1b9e5a80011a35f2c
Responses
200

Successfully retrieved sObject types

application/json

A Salesforce sObject type descriptor from the describe-global response.

activateablebooleanOptional

When true, the sObject supports the activate action.

associateEntityTypestring · nullableOptional

For associated sObjects (e.g. ChangeEvent, Feed, History, Share), the kind of association; null for standalone objects.

associateParentEntitystring · nullableOptional

For associated sObjects, the parent sObject they attach to (e.g. Account); null for standalone objects.

deepCloneablebooleanOptional

When true, the sObject and its related records can be deep-cloned.

hasSubtypesbooleanOptional

When true, this sObject is a supertype that has subtype sObjects.

isInterfacebooleanOptional

When true, this sObject is an interface that other sObjects implement.

isSubtypebooleanOptional

When true, this sObject is a subtype of a supertype sObject.

createablebooleanOptional

When true, new records of this sObject can be created.

custombooleanOptional

When true, this is a custom sObject (API name ends in __c).

customSettingbooleanOptional

When true, this is a custom setting sObject.

deletablebooleanOptional

When true, records of this sObject can be deleted.

deprecatedAndHiddenbooleanOptional

When true, the sObject is deprecated and hidden from the UI.

feedEnabledbooleanOptional

When true, Chatter feeds are enabled for this sObject.

keyPrefixstring · nullableOptional

The three-character prefix of record IDs for this sObject (e.g. 001 for Account). Null for sObjects that do not have a key prefix.

Example: 001
labelstringOptional

Singular display label (e.g. Account).

Example: Account
labelPluralstringOptional

Plural display label (e.g. Accounts).

Example: Accounts
layoutablebooleanOptional

When true, page layouts can be configured for this sObject.

mergeablebooleanOptional

When true, records of this sObject can be merged.

mruEnabledbooleanOptional

When true, Most Recently Used tracking is enabled for this sObject.

namestringOptional

The API name of the sObject (e.g. Account, Custom__c).

Example: Account
queryablebooleanOptional

When true, the sObject supports SOQL queries.

replicateablebooleanOptional

When true, the sObject can be replicated.

retrieveablebooleanOptional

When true, individual records can be retrieved by ID.

searchablebooleanOptional

When true, the sObject is searchable via SOSL.

triggerablebooleanOptional

When true, Apex triggers can be defined on this sObject.

undeletablebooleanOptional

When true, deleted records can be restored (undeleted).

updateablebooleanOptional

When true, existing records of this sObject can be updated.

get/v1/salesforce/metadata/connections/{_id}/sObjectTypes
GET /v1/salesforce/metadata/connections/{_id}/sObjectTypes HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "name": "Account",
    "label": "Account",
    "labelPlural": "Accounts",
    "keyPrefix": "001",
    "custom": false,
    "queryable": true,
    "createable": true,
    "updateable": true,
    "deletable": true,
    "searchable": true
  },
  {
    "name": "Contact",
    "label": "Contact",
    "labelPlural": "Contacts",
    "keyPrefix": "003",
    "custom": false,
    "queryable": true,
    "createable": true,
    "updateable": true,
    "deletable": true,
    "searchable": true
  }
]

Get sObject type detail for a Salesforce connection

get
/v1/salesforce/metadata/connections/{_id}/sObjectTypes/{sObjectType}

Returns the full Salesforce sObject describe response for the specified sObject type on the given connection. This is a large payload that includes all fields, child relationships, record type info, URLs, and other metadata.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the Salesforce connection

Example: 5f8d43a1b9e5a80011a35f2c
sObjectTypestringRequired

The Salesforce sObject API name (e.g. Account, Contact, Custom__c).

Example: Account
Responses
200

Successfully retrieved sObject type detail

application/json

Full Salesforce sObject describe response. This is a large payload that includes field definitions, child relationships, record type info, URLs, and many other metadata attributes for the sObject.

namestringOptional

The API name of the sObject.

Example: Account
labelstringOptional

Singular display label.

Example: Account
labelPluralstringOptional

Plural display label.

Example: Accounts
keyPrefixstring · nullableOptional

Three-character ID prefix for this sObject.

Example: 001
custombooleanOptional

When true, this is a custom sObject (API name ends in __c).

queryablebooleanOptional

When true, records of this sObject can be retrieved with SOQL queries.

createablebooleanOptional

When true, records of this sObject can be created.

updateablebooleanOptional

When true, records of this sObject can be updated.

deletablebooleanOptional

When true, records of this sObject can be deleted.

searchablebooleanOptional

When true, records of this sObject can be retrieved with SOSL searches.

get/v1/salesforce/metadata/connections/{_id}/sObjectTypes/{sObjectType}
GET /v1/salesforce/metadata/connections/{_id}/sObjectTypes/{sObjectType} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "name": "Account",
  "label": "Account",
  "labelPlural": "Accounts",
  "keyPrefix": "001",
  "custom": false,
  "queryable": true,
  "createable": true,
  "updateable": true,
  "deletable": true,
  "searchable": true,
  "fields": [
    {
      "name": "Id",
      "label": "Account ID",
      "type": "id",
      "length": 18,
      "nillable": false,
      "createable": false,
      "updateable": false,
      "filterable": true,
      "sortable": true
    },
    {
      "name": "Name",
      "label": "Account Name",
      "type": "string",
      "length": 255,
      "nillable": false,
      "createable": true,
      "updateable": true,
      "filterable": true,
      "sortable": true
    },
    {
      "name": "Industry",
      "label": "Industry",
      "type": "picklist",
      "nillable": true,
      "createable": true,
      "updateable": true,
      "filterable": true,
      "sortable": true,
      "picklistValues": [
        {
          "active": true,
          "label": "Technology",
          "value": "Technology",
          "defaultValue": false
        }
      ]
    }
  ],
  "urls": {
    "sobject": "/services/data/v59.0/sobjects/Account",
    "describe": "/services/data/v59.0/sobjects/Account/describe",
    "rowTemplate": "/services/data/v59.0/sobjects/Account/{ID}"
  }
}

List record types for a NetSuite connection

get
/v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes

Returns an array of all record types available via SuiteScript for the given NetSuite connection. The response typically contains ~539 record type descriptors.

Pass ?refreshCache=true to bypass the server-side cache and fetch fresh metadata from NetSuite.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the NetSuite connection

Example: 5f8d43a1b9e5a80011a35f2c
Query parameters
refreshCachebooleanOptional

When true, bypasses the server-side metadata cache and fetches fresh record type data from NetSuite.

Default: false
Responses
200

Successfully retrieved record types

application/json

A NetSuite SuiteScript record type descriptor.

scriptIdstringOptional

The SuiteScript identifier for the record type (e.g. salesorder).

Example: salesorder
namestringOptional

Human-readable display name (e.g. Sales Order).

Example: Sales Order
permissionIdstringOptional

NetSuite permission token required to access this record type.

Example: TRAN_SALESORD
scriptablebooleanOptional

When true, this record type can be scripted via SuiteScript.

urlstringOptional

Relative URL path to the record type in NetSuite.

Example: /app/accounting/transactions/salesord.nl
idstringOptional

Internal numeric identifier for the record type.

Example: -247
userPermissionstringOptional

The current user's effective permission level for this record type.

Example: full
doesNotSupportCreatebooleanOptional

When true, the record type does not support record creation.

doesNotSupportDeletebooleanOptional

When true, the record type does not support record deletion.

doesNotSupportRTExportbooleanOptional

When true, the record type does not support real-time export.

doesNotSupportSearchbooleanOptional

When true, the record type does not support saved-search-based queries.

doesNotSupportUpdatebooleanOptional

When true, the record type does not support record updates.

hasSubRecordbooleanOptional

When true, the record type has associated sub-records.

isSuperTypebooleanOptional

When true, this is a super type that encompasses multiple concrete record types.

subRecordConfigobjectOptional

Configuration details for sub-record relationships, if applicable.

urlparamsstringOptional

Additional URL parameters appended when accessing this record type.

Example: whence=
get/v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes
GET /v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "scriptId": "salesorder",
    "name": "Sales Order",
    "scriptable": true,
    "id": "-247"
  },
  {
    "scriptId": "customer",
    "name": "Customer",
    "scriptable": true,
    "id": "-2"
  }
]

List fields for a NetSuite record type

get
/v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes/{recordType}

Returns an array of field descriptors for the specified record type on the given NetSuite connection. Fields are grouped by category (e.g. Body Field) and include their data types.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the NetSuite connection

Example: 5f8d43a1b9e5a80011a35f2c
recordTypestringRequired

The SuiteScript record type identifier (e.g. salesorder, customer).

Example: salesorder
Responses
200

Successfully retrieved record type fields

application/json

A field descriptor for a NetSuite record type.

groupstringOptional

The field group this field belongs to (e.g. Body Field, Address).

Example: Body Field
idstringOptional

The internal field identifier (e.g. entity, trandate).

Example: entity
namestringOptional

Human-readable field label (e.g. Customer, Date).

Example: Customer
typestringOptional

The field data type. Common values: checkbox, select, text, currency, date, datetime, email, integer, multiselect, percent, phone, textarea, url.

Example: select
get/v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes/{recordType}
GET /v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes/{recordType} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "group": "Body Field",
    "id": "entity",
    "name": "Customer",
    "type": "select"
  },
  {
    "group": "Body Field",
    "id": "trandate",
    "name": "Date",
    "type": "date"
  },
  {
    "group": "Body Field",
    "id": "memo",
    "name": "Memo",
    "type": "text"
  }
]

List sublists for a NetSuite record type

get
/v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes/{recordType}/sublists

Returns an array of sublists (line-item groups) available on the specified record type for the given NetSuite connection.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the NetSuite connection

Example: 5f8d43a1b9e5a80011a35f2c
recordTypestringRequired

The SuiteScript record type identifier (e.g. salesorder, customer).

Example: salesorder
Responses
200

Successfully retrieved sublists

application/json

A sublist (line-item group) on a NetSuite record type.

idstringOptional

The internal identifier for the sublist (e.g. contact, item).

Example: item
namestringOptional

Human-readable display name (e.g. Contacts, Items).

Example: Items
get/v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes/{recordType}/sublists
GET /v1/netsuite/metadata/suitescript/connections/{_id}/recordTypes/{recordType}/sublists HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": "contact",
    "name": "Contacts"
  },
  {
    "id": "item",
    "name": "Items"
  }
]

List saved searches for a NetSuite connection

get
/v1/netsuite/metadata/suitescript/connections/{_id}/savedSearches

Returns an array of saved searches available on the given NetSuite connection.

The recordType query parameter is accepted but silently ignored by the server -- all saved searches are returned regardless.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
_idstring · objectIdRequired

The unique identifier of the NetSuite connection

Example: 5f8d43a1b9e5a80011a35f2c
Query parameters
recordTypestringOptional

Accepted but silently ignored. All saved searches are returned regardless of this parameter's value.

Responses
200

Successfully retrieved saved searches

application/json

A NetSuite saved search reference.

idstringOptional

The internal saved search ID (e.g. 1305).

Example: 1305
namestringOptional

Human-readable saved search name (e.g. AH : Contact Search).

Example: AH : Contact Search
get/v1/netsuite/metadata/suitescript/connections/{_id}/savedSearches
GET /v1/netsuite/metadata/suitescript/connections/{_id}/savedSearches HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": "1305",
    "name": "AH : Contact Search"
  },
  {
    "id": "1420",
    "name": "Open Sales Orders"
  }
]

Last updated

Was this helpful?