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
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.
Maximum number of connections to return per page. Pair with the Link header cursor to page.
Opaque cursor for forward pagination. Pass the value from the Link
response header (rel="next") to fetch the next page.
When true, includes queue size information in the response.
Filter to connections matching this exact external identifier.
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.
_integrationId,disabled,lastModifiedComma-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.
createdAt,lastModifiedSuccessfully retrieved list of connections
No connections exist, or no connection matches the supplied filter
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
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": []
}
}
}
]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.
Fields that can be sent when creating or updating a connection.
Display name for the connection.
Salesforce ProductionConnection type, which determines the authentication and connectivity options available and which config object must be supplied.
External identifier for the connection, often used to correlate it with a record in a third-party system.
erp-conn-001Lowercase application name for HTTP connections to systems with an integrator.io adaptor (e.g. "shopify", "ebay"). Only applies to http connections.
shopifyReference 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.
5f8d43a1b9e5a80011a35f2cReference 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.
615dfa0742763671275b70abWhen 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.
trueIntegrations 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.
["6a55be91d16ee8270022893e"]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.
["http.encrypted.apiKey","http.unencrypted.accountId"]Enables debug logging until this timestamp. Set to a future time to capture request/response logs.
2026-01-15T09:30:00.000ZDynamic form definition for connection-specific custom settings.
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.
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.
Connection object as returned by the API.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZReference 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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bDisplay name for the connection.
Salesforce ProductionThe type of connection determining which authentication and connectivity options are available
External identifier for the connection, often used for integration with third-party systems
erp-conn-001Application 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.
shopifyReference 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.
5f8d43a1b9e5a80011a35f2cReference 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.
615dfa0742763671275b70abDate until which debug logging is enabled for this connection
2026-01-15T09:30:00.000ZDynamic form configuration for connection-specific settings
Connection-specific settings and configurations
When true, the connection has been taken offline and is skipped during flow execution.
Source connection this was cloned from.
5f29dbc69e8a0f0e29a491b7Distinguishes 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.
standardPossible values: 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.
["http.encrypted.apiKey","http.unencrypted.accountId"]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.
615dfa0742763671275b70abAccount 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.
5d2e1f0a9b8c7d6e5f4a3b2cTimestamp when the child's non-credential fields were last synced from the parent
connection. Present only when connectionRole is mcpChild.
2026-09-15T18:42:10.331ZEnd 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.
5d2e1f0a9b8c7d6e5f4a3b2cDebug logging is active until this timestamp. Absent or in the past means debug is off.
2026-01-15T09:30:00.000ZMasked placeholder for encrypted credential fields. Always returns "******".
When true, the connection uses the HTTP adaptor internally, even when type is wrapper.
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.
trueWhen true, enables micro-batching for one-to-many data flows through this connection.
trueWhen true, enables CSV-to-object parsing for data received through this connection.
trueBad request. Also returned when __integrationIds lists more than 100
integrations — the connection is not created.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Forbidden. The authenticated caller does not have permission to perform this operation.
An id in __integrationIds does not match an integration in the account.
The connection is not created.
Unprocessable entity. The request was well-formed but was unable to be followed
due to semantic errors — for example, a missing config object for the connection
type, an invalid __integrationIds value, a decimal concurrency value, an
http._iClientId that does not satisfy the auth type's iClient rules, or an
mcpChild role. The connection is not created.
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"
}
}
}
}Retrieves a specific connection by its unique identifier. Returns the complete connection configuration including authentication settings.
The unique identifier of the connection
Connection retrieved successfully
Connection object as returned by the API.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZReference 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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bDisplay name for the connection.
Salesforce ProductionThe type of connection determining which authentication and connectivity options are available
External identifier for the connection, often used for integration with third-party systems
erp-conn-001Application 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.
shopifyReference 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.
5f8d43a1b9e5a80011a35f2cReference 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.
615dfa0742763671275b70abDate until which debug logging is enabled for this connection
2026-01-15T09:30:00.000ZDynamic form configuration for connection-specific settings
Connection-specific settings and configurations
When true, the connection has been taken offline and is skipped during flow execution.
Source connection this was cloned from.
5f29dbc69e8a0f0e29a491b7Distinguishes 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.
standardPossible values: 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.
["http.encrypted.apiKey","http.unencrypted.accountId"]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.
615dfa0742763671275b70abAccount 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.
5d2e1f0a9b8c7d6e5f4a3b2cTimestamp when the child's non-credential fields were last synced from the parent
connection. Present only when connectionRole is mcpChild.
2026-09-15T18:42:10.331ZEnd 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.
5d2e1f0a9b8c7d6e5f4a3b2cDebug logging is active until this timestamp. Absent or in the past means debug is off.
2026-01-15T09:30:00.000ZMasked placeholder for encrypted credential fields. Always returns "******".
When true, the connection uses the HTTP adaptor internally, even when type is wrapper.
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.
trueWhen true, enables micro-batching for one-to-many data flows through this connection.
trueWhen true, enables CSV-to-object parsing for data received through this connection.
trueUnauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Forbidden. The authenticated caller does not have permission to perform this operation.
Not found. The requested resource does not exist or is not visible to the caller.
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
}
}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.
The unique identifier of the connection to update
Fields that can be sent when creating or updating a connection.
Display name for the connection.
Salesforce ProductionConnection type, which determines the authentication and connectivity options available and which config object must be supplied.
External identifier for the connection, often used to correlate it with a record in a third-party system.
erp-conn-001Lowercase application name for HTTP connections to systems with an integrator.io adaptor (e.g. "shopify", "ebay"). Only applies to http connections.
shopifyReference 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.
5f8d43a1b9e5a80011a35f2cReference 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.
615dfa0742763671275b70abWhen 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.
trueIntegrations 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.
["6a55be91d16ee8270022893e"]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.
["http.encrypted.apiKey","http.unencrypted.accountId"]Enables debug logging until this timestamp. Set to a future time to capture request/response logs.
2026-01-15T09:30:00.000ZDynamic form definition for connection-specific custom settings.
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.
Connection updated successfully
Connection object as returned by the API.
Unique identifier for the resource. Format is a 24-character hexadecimal string.
5f8d43a1b9e5a80011a35f2cTimestamp when the resource was created. Set automatically and cannot be modified.
2023-04-01T09:15:32ZTimestamp when the resource was last updated. Changes whenever any property is modified.
2023-04-15T14:30:15ZTimestamp when the resource was soft-deleted. When null or absent, the resource is active.
2023-05-20T11:45:32ZReference 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)
5f9a7b2c3d4e5f6a7b8c9d0eReference 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
5e8d43a1b9e5a80011a35f1bDisplay name for the connection.
Salesforce ProductionThe type of connection determining which authentication and connectivity options are available
External identifier for the connection, often used for integration with third-party systems
erp-conn-001Application 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.
shopifyReference 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.
5f8d43a1b9e5a80011a35f2cReference 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.
615dfa0742763671275b70abDate until which debug logging is enabled for this connection
2026-01-15T09:30:00.000ZDynamic form configuration for connection-specific settings
Connection-specific settings and configurations
When true, the connection has been taken offline and is skipped during flow execution.
Source connection this was cloned from.
5f29dbc69e8a0f0e29a491b7Distinguishes 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.
standardPossible values: 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.
["http.encrypted.apiKey","http.unencrypted.accountId"]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.
615dfa0742763671275b70abAccount 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.
5d2e1f0a9b8c7d6e5f4a3b2cTimestamp when the child's non-credential fields were last synced from the parent
connection. Present only when connectionRole is mcpChild.
2026-09-15T18:42:10.331ZEnd 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.
5d2e1f0a9b8c7d6e5f4a3b2cDebug logging is active until this timestamp. Absent or in the past means debug is off.
2026-01-15T09:30:00.000ZMasked placeholder for encrypted credential fields. Always returns "******".
When true, the connection uses the HTTP adaptor internally, even when type is wrapper.
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.
trueWhen true, enables micro-batching for one-to-many data flows through this connection.
trueWhen true, enables CSV-to-object parsing for data received through this connection.
trueBad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Forbidden. The authenticated caller does not have permission to perform this operation.
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The body was well-formed but fails the connection's validation
rules — the same rules as on create (missing config object, decimal concurrency,
iClient rules, parent-owned endUserProvidedFields path, mcpChild role).
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"
}
}
}
}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.
The unique identifier of the connection to delete
Connection deleted successfully
No content
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Forbidden. The authenticated caller does not have permission to perform this operation.
Not found. The requested resource does not exist or is not visible to the caller.
The resource has dependents that must be deleted first. Each entry
in the errors array names one blocking resource.
DELETE /v1/connections/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
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):
/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.
The unique identifier of the connection to patch
A JSON Patch document (RFC 6902). Send an array of patch operations on whitelisted fields — all other paths are rejected with 422.
The operation to perform.
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".
The new value to set. Required for replace and add, omit for remove.
Connection patched successfully
No content
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Patch rejected — a path outside the whitelist, a null value, a decimal concurrency
value, or an endUserProvidedFields entry the account owns.
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
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.
Connection ID to ping.
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: [...]}.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
No connection found for the given _id. The body is an invalid_ref
error — note this is a 404, not a 400, and the field pointer is _id.
GET /v1/connections/{_id}/ping HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"code": 200
}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.
Connection ID to ping.
Currently ignored; reserved for future per-ping overrides.
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: [...]}.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
No connection found for the given _id. The body is an invalid_ref
error — note this is a 404, not a 400, and the field pointer is _id.
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
}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 ofHEAD,GET,PUT,PATCH,POST,DELETE; any other value is rejected with405 method_not_allowed, and omitting the header returns400 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).
Connection whose base URI and authentication the request is sent with.
HTTP method to use against the target. Header names are case-insensitive.
GETPossible values: 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.
/services/data/v58.0/sobjects/account/describeNetSuite connections only — the script id of the RESTlet to call
(customscript_…). Send together with Integrator-NetSuite-DeployId.
customscript_celigo_myrestletNetSuite connections only — the deployment id of the RESTlet to call
(customdeploy_…). Send together with Integrator-NetSuite-ScriptId.
customdeploy_celigo_myrestletForwarded to the target as the request body. Send {} when the target method takes
no body (GET, HEAD, DELETE).
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.
The target's response body, as returned by the target.
missing_header — Integrator-Method was not sent.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
invalid_ref — _id is not a connection in this account. A 404 with any other body
is the target's response to the forwarded request.
method_not_allowed — Integrator-Method is not one of the allowed values.
Any other status is the target's response to the forwarded request, returned unchanged with its body and headers.
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"
}
]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.
Connection the import document runs through.
6a04b5309dc296c4efb1a6e0The import document to run and the records to run through it.
One result per input record, in input order — accepted, failed at the destination, or ignored by the document's own input filter.
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[].
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.
When true, the import dropped the record before sending anything and
stage names the gate; the destination was not called for it.
The import stage that ignored the record — inputFilter when the
import's own input filter excluded it. Present only with ignored.
inputFilterRequest body is malformed — the top-level import object or the
data array is missing. Returned as a bare array of error objects,
not the standard errors envelope.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
invalid_ref — _id is not a connection in the account.
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"
}
}
]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.
Connection the export document runs through.
6a04b5309dc296c4efb1a6e0The export document to run.
The records the source returned, with a per-record link when the adaptor provides one.
The top-level export object is missing.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
invalid_ref — _id is not a connection in the account.
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"
]
}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.
The connection id.
Debug log stream (plain text).
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.
No debug logs available — either debug capture is disabled (no debugDate set, or it
is in the past) or the buffer has been cleared.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
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}"}
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.
The connection id.
Debug buffer cleared (or no-op if the buffer was already empty / id unknown).
No content
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
DELETE /v1/connections/{_id}/debug HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
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.
The connection id.
Id of the export or import whose traffic through the connection to return.
Debug log stream (plain text) for the given export or import.
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.
No debug logs for this export or import — debug capture is off (no future debugDate),
the step has not run through the connection since it was enabled, or the buffer was
cleared.
typeId is not a valid ObjectId.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
The connection, or the export/import named by typeId, does not exist in the account.
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)
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
rdbmswrapper (type: tablesorcolumns).type: rdbmsreturns a{results: [...]}envelope of{database, schema, table}items, with acolumns[]array of driver type metadata for column queries;type: jdbcreturns a bare array with leaner column metadata and aprimaryKeys[]sibling. Results are cached — passrefreshCache: trueto bypass and repopulate (use sparingly).http — signs and forwards an HTTP request through the connection's auth and
baseURI(send thehttpwrapper with abody), 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.
The connection id. Must point to a connection of supported type
(rdbms, jdbc, or http).
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.
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.
falseMetadata query succeeded. Shape depends on connection type — see the
three branches of ConnectionMetadataResponse.
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).
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Request was structurally invalid or the connection does not support metadata. See the response examples for common error codes and shapes.
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"
}
]
}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.
The unique identifier of the connection.
Message queue purged successfully (no body returned).
No content
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
The connection's message queue is already empty.
Rate limit exceeded. Wait approximately 20 seconds before retrying.
POST /v1/connections/{_id}/purgeMessages HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
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.
The connection id.
Authorization URL ready for the end user to visit.
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.
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.
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=eyJfY29ubmVjdGlvbklkIjoiNjE1ZGZhMDc0Mjc2MzY3MTI3NWI3MGFiIn0Connection id does not resolve.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Connection exists but is not configured for OAuth — e.g. an FTP, S3, or plain-auth
HTTP connection. The server fails the handshake pre-check because the connection has
no authURI in its config.
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"
}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.
Resource ID.
Dependency map. Keys are resource-type strings; values are arrays
of dependency entries. Returns {} when no dependents exist.
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.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
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
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.
NetSuite connection to check.
Installation state of each component.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
No connection found for the given _id.
The connection exists but is not a NetSuite connection.
GET /v1/connections/{_id}/distributedApps HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"bundle": {
"success": true
},
"suiteapp": {
"success": true
}
}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.
NetSuite or Salesforce connection to check.
Ping result. success: false is still HTTP 200 — inspect the body.
Result of pinging the Celigo distributed adaptor installed in the connected account.
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.
trueHTTP 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).
404Remote system's error text, or the platform's reason when the ping was not attempted.
That Suitelet is invalid, disabled, or no longer exists.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.
https://tstdrv1234567.app.netsuite.com/app/bundler/bundledetails.nl?sourcecompanyid=TSTDRV916910&domain=PRODUCTION&config=F&id=20038Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
No connection found for the given _id.
The connection exists but is neither a NetSuite nor a Salesforce connection.
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
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.
The unique identifier of the Salesforce connection
5f8d43a1b9e5a80011a35f2cSuccessfully retrieved sObject types
A Salesforce sObject type descriptor from the describe-global response.
When true, the sObject supports the activate action.
For associated sObjects (e.g. ChangeEvent, Feed, History, Share), the kind of association; null for standalone objects.
For associated sObjects, the parent sObject they attach to (e.g. Account); null for standalone objects.
When true, the sObject and its related records can be deep-cloned.
When true, this sObject is a supertype that has subtype sObjects.
When true, this sObject is an interface that other sObjects implement.
When true, this sObject is a subtype of a supertype sObject.
When true, new records of this sObject can be created.
When true, this is a custom sObject (API name ends in __c).
When true, this is a custom setting sObject.
When true, records of this sObject can be deleted.
When true, the sObject is deprecated and hidden from the UI.
When true, Chatter feeds are enabled for this sObject.
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.
001Singular display label (e.g. Account).
AccountPlural display label (e.g. Accounts).
AccountsWhen true, page layouts can be configured for this sObject.
When true, records of this sObject can be merged.
When true, Most Recently Used tracking is enabled for this sObject.
The API name of the sObject (e.g. Account, Custom__c).
AccountWhen true, the sObject supports SOQL queries.
When true, the sObject can be replicated.
When true, individual records can be retrieved by ID.
When true, the sObject is searchable via SOSL.
When true, Apex triggers can be defined on this sObject.
When true, deleted records can be restored (undeleted).
When true, existing records of this sObject can be updated.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The connection ID does not match any known connection.
Unprocessable entity. The connection exists but is not authorized or cannot be used to fetch metadata.
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
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.
The unique identifier of the Salesforce connection
5f8d43a1b9e5a80011a35f2cThe Salesforce sObject API name (e.g. Account, Contact, Custom__c).
AccountSuccessfully retrieved sObject type detail
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.
The API name of the sObject.
AccountSingular display label.
AccountPlural display label.
AccountsThree-character ID prefix for this sObject.
001When true, this is a custom sObject (API name ends in __c).
When true, records of this sObject can be retrieved with SOQL queries.
When true, records of this sObject can be created.
When true, records of this sObject can be updated.
When true, records of this sObject can be deleted.
When true, records of this sObject can be retrieved with SOSL searches.
Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. Failed to fetch metadata for the specified sObject type.
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
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.
The unique identifier of the NetSuite connection
5f8d43a1b9e5a80011a35f2cWhen true, bypasses the server-side metadata cache and fetches fresh
record type data from NetSuite.
falseSuccessfully retrieved record types
A NetSuite SuiteScript record type descriptor.
The SuiteScript identifier for the record type (e.g. salesorder).
salesorderHuman-readable display name (e.g. Sales Order).
Sales OrderNetSuite permission token required to access this record type.
TRAN_SALESORDWhen true, this record type can be scripted via SuiteScript.
Relative URL path to the record type in NetSuite.
/app/accounting/transactions/salesord.nlInternal numeric identifier for the record type.
-247The current user's effective permission level for this record type.
fullWhen true, the record type does not support record creation.
When true, the record type does not support record deletion.
When true, the record type does not support real-time export.
When true, the record type does not support saved-search-based queries.
When true, the record type does not support record updates.
When true, the record type has associated sub-records.
When true, this is a super type that encompasses multiple concrete record types.
Configuration details for sub-record relationships, if applicable.
Additional URL parameters appended when accessing this record type.
whence=Unauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The connection ID does not match a valid NetSuite connection.
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
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.
The unique identifier of the NetSuite connection
5f8d43a1b9e5a80011a35f2cThe SuiteScript record type identifier (e.g. salesorder, customer).
salesorderSuccessfully retrieved record type fields
A field descriptor for a NetSuite record type.
The field group this field belongs to (e.g. Body Field, Address).
Body FieldThe internal field identifier (e.g. entity, trandate).
entityHuman-readable field label (e.g. Customer, Date).
CustomerThe field data type. Common values: checkbox, select, text,
currency, date, datetime, email, integer, multiselect,
percent, phone, textarea, url.
selectUnauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The record type is invalid or not accessible via
SuiteScript on this connection. The error includes a js_exception code
and the NetSuite error message.
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
Returns an array of sublists (line-item groups) available on the specified record type for the given NetSuite connection.
The unique identifier of the NetSuite connection
5f8d43a1b9e5a80011a35f2cThe SuiteScript record type identifier (e.g. salesorder, customer).
salesorderSuccessfully retrieved sublists
A sublist (line-item group) on a NetSuite record type.
The internal identifier for the sublist (e.g. contact, item).
itemHuman-readable display name (e.g. Contacts, Items).
ItemsUnauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
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
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.
The unique identifier of the NetSuite connection
5f8d43a1b9e5a80011a35f2cAccepted but silently ignored. All saved searches are returned regardless of this parameter's value.
Successfully retrieved saved searches
A NetSuite saved search reference.
The internal saved search ID (e.g. 1305).
1305Human-readable saved search name (e.g. AH : Contact Search).
AH : Contact SearchUnauthorized. The request lacks a valid bearer token, or the provided token failed to authenticate.
Note: the 401 response is produced by the auth middleware before the
request reaches the endpoint handler, so it does not follow the
standard {errors: [...]} envelope. Instead the body is a bare
{message: string} object with no code, no errors array. Callers
handling 401s should key off the HTTP status and the message string,
not try to destructure an errors[].
Not found. The requested resource does not exist or is not visible to the caller.
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
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?