On Premise Agents
On-premise agents are software programs installed on a local server that establish a secure tunnel back to integrator.io. Connections configured with an _agentId route traffic through the agent, enabling integrations with databases and applications behind a firewall without opening inbound ports.
Agent schema
Returns all on-premise agents configured in the account. Check offline to determine agent health — true means the platform has not received a heartbeat recently.
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,lastModifiedMaximum number of agents to return per page.
1000Example: 100Field to sort the agent list by (for example name).
nameOpaque pagination cursor from a previous page's Link header;
returns results after that position. Invalid cursor values return
400 invalid_query_param.
Opaque pagination cursor from a previous page's Link header;
returns results before that position. Invalid cursor values return
400 invalid_query_param.
When true, each returned agent additionally carries _accessLevel —
the calling user's effective access to that agent.
trueArray of agent objects.
No agents exist in the account.
Invalid pagination cursor in after or before.
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/agents HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"_id": "62e1387939dc306a3806eab5",
"name": "Production DB Server",
"createdAt": "2024-01-15T10:30:00.000Z",
"lastModified": "2026-04-23T01:52:12.086Z",
"offline": false,
"version": "5.3.0",
"_agentExtensionId": "68fb235610b42b2eaa6525c2",
"port": "7020",
"lastHeartbeatAt": "2026-05-15T12:00:00.000Z"
},
{
"_id": "5ecd2c3ce1ec9c4fcaf60b10",
"name": "Staging Server",
"createdAt": "2023-06-01T08:00:00.000Z",
"lastModified": "2026-03-10T14:22:33.000Z",
"offline": true
}
]Creates a new on-premise agent. Only name is required. The response includes the agent record but not the access token — call GET /v1/agents/{_id}/display-token to retrieve the token needed for the agent installer.
Fields for creating or updating an on-premise agent.
Display name identifying where the agent is installed and what it accesses.
Acme DC1 host — SQL Server + SFTPOptional note about the agent's purpose or host environment.
Runs on prod-db-01, accesses PostgreSQL and Redis.Created agent.
On-premise agent object as returned by the API.
Display name identifying where the agent is installed and what it accesses.
Acme DC1 host — SQL Server + SFTPOptional note about the agent's purpose or host environment.
Runs on prod-db-01, accesses PostgreSQL and Redis.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:32ZAgent software version running on the host.
5.3.0Reference to the agent extension installation metadata.
68fb235610b42b2eaa6525c2Local port the agent uses for its tunnel listener.
7020Timestamp of the most recent heartbeat from the agent.
2026-05-15T12:00:00.000ZWhen true, the platform considers this agent offline based on heartbeat state.
The calling user's effective access level for this agent.
Present only when the list request sets permissions=true.
manageBad 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[].
Validation failed. A missing, empty, or non-string name returns
required_field_missing (the server maps a non-string name to
"missing"). A name longer than 100 characters, or a description
longer than 5120, returns size_limit_exceeded.
POST /v1/agents HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 31
{
"name": "Production DB Server"
}{
"_id": "62e1387939dc306a3806eab5",
"name": "Production DB Server",
"createdAt": "2024-01-15T10:30:00.000Z",
"lastModified": "2024-01-15T10:30:00.000Z",
"offline": true
}Returns a single on-premise agent.
Agent resource ID.
Agent object.
On-premise agent object as returned by the API.
Display name identifying where the agent is installed and what it accesses.
Acme DC1 host — SQL Server + SFTPOptional note about the agent's purpose or host environment.
Runs on prod-db-01, accesses PostgreSQL and Redis.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:32ZAgent software version running on the host.
5.3.0Reference to the agent extension installation metadata.
68fb235610b42b2eaa6525c2Local port the agent uses for its tunnel listener.
7020Timestamp of the most recent heartbeat from the agent.
2026-05-15T12:00:00.000ZWhen true, the platform considers this agent offline based on heartbeat state.
The calling user's effective access level for this agent.
Present only when the list request sets permissions=true.
manageUnauthorized. 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/agents/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"_id": "62e1387939dc306a3806eab5",
"name": "Production DB Server",
"description": "Runs on prod-db-01, accesses PostgreSQL.",
"createdAt": "2024-01-15T10:30:00.000Z",
"lastModified": "2026-04-23T01:52:12.086Z",
"offline": false,
"version": "5.3.0",
"_agentExtensionId": "68fb235610b42b2eaa6525c2",
"port": "7020",
"lastHeartbeatAt": "2026-05-15T12:00:00.000Z"
}Replaces an on-premise agent's mutable fields. Only name and description are mutable — system-managed fields (version, offline, port, etc.) are ignored on PUT.
Agent resource ID.
Fields for creating or updating an on-premise agent.
Display name identifying where the agent is installed and what it accesses.
Acme DC1 host — SQL Server + SFTPOptional note about the agent's purpose or host environment.
Runs on prod-db-01, accesses PostgreSQL and Redis.Updated agent.
On-premise agent object as returned by the API.
Display name identifying where the agent is installed and what it accesses.
Acme DC1 host — SQL Server + SFTPOptional note about the agent's purpose or host environment.
Runs on prod-db-01, accesses PostgreSQL and Redis.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:32ZAgent software version running on the host.
5.3.0Reference to the agent extension installation metadata.
68fb235610b42b2eaa6525c2Local port the agent uses for its tunnel listener.
7020Timestamp of the most recent heartbeat from the agent.
2026-05-15T12:00:00.000ZWhen true, the platform considers this agent offline based on heartbeat state.
The calling user's effective access level for this agent.
Present only when the list request sets permissions=true.
manageBad 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[].
Not found. The requested resource does not exist or is not visible to the caller.
PUT /v1/agents/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 98
{
"name": "Production DB Server",
"description": "Runs on prod-db-01, accesses PostgreSQL and Redis."
}{
"_id": "62e1387939dc306a3806eab5",
"name": "Production DB Server",
"description": "Runs on prod-db-01, accesses PostgreSQL and Redis.",
"createdAt": "2024-01-15T10:30:00.000Z",
"lastModified": "2026-04-23T01:52:12.086Z",
"offline": false,
"version": "5.3.0",
"_agentExtensionId": "68fb235610b42b2eaa6525c2",
"port": "7020",
"lastHeartbeatAt": "2026-05-15T12:00:00.000Z"
}Deletes an on-premise agent. Soft-deleted and retained in the recycle bin for 30 days. Does not uninstall the agent software on the host. Connections using this agent's _agentId will block deletion with 422 — check dependencies first.
Agent resource ID.
Agent deleted.
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.
The resource has dependents that must be deleted first. Each entry
in the errors array names one blocking resource.
DELETE /v1/agents/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Returns the current unmasked access token for an agent. The agent process needs this token to authenticate its tunnel back to integrator.io. The access token is not included in normal GET/PUT responses — this is the only way to retrieve it.
Agent resource ID.
Access token.
Response containing the access token used by an on-premise agent to authenticate its secure tunnel back to integrator.io.
The agent's current access token value.
894a7c82655d47b4940444f540e8f7b7Unauthorized. 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/agents/{_id}/display-token HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"accessToken": "894a7c82655d47b4940444f540e8f7b7"
}Regenerates the access token and returns the new value. The previous token is immediately invalidated — the running agent process will disconnect, so update the agent's configuration with the new token before it attempts to reconnect. This is irreversible.
Agent resource ID.
New access token.
Response containing the access token used by an on-premise agent to authenticate its secure tunnel back to integrator.io.
The agent's current access token value.
894a7c82655d47b4940444f540e8f7b7Unauthorized. 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.
PUT /v1/agents/{_id}/change-token HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"accessToken": "e21ccad765da4378bf296007c17b96a8"
}Returns a short-lived presigned S3 URL for downloading the on-premise agent installer binary. The URL is pre-signed for roughly 15 minutes.
The os query parameter selects which installer to return:
linux→agent-linux.runwindows→agent-windows.exe
On-premise agent id.
Operating system to download the installer for.
Presigned installer download URL.
Presigned S3 download URL for the on-premise agent installer binary
(Linux .run or Windows .exe). The URL is short-lived (~15 minutes).
Presigned S3 URL the client should follow to download the installer.
https://integrator-agents.s3.us-east-1.amazonaws.com/agent-linux.run?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&...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 request was well-formed but was unable to be followed due to semantic errors.
GET /v1/agents/{_id}/installer/signedURL?os=linux HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"signedURL": "https://integrator-agents.s3.us-east-1.amazonaws.com/agent-linux.run?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&..."
}Returns resources that depend on this agent. Keys are resource types (e.g. connections); values are arrays of dependency entries.
Check dependencies before deleting — the DELETE endpoint is blocked if dependents exist. Returns {} for both zero-dependency and nonexistent IDs.
Agent 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/agents/{_id}/dependencies HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{}Last updated
Was this helpful?