Stacks
Stacks are execution environments that run custom extension code for integrations. Two types are supported: server (self-hosted) and lambda (AWS Lambda).
Stack schema
Returns all stacks configured in the account.
Maximum number of stacks to return per page.
1000Example: 100Comma-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,lastModifiedArray of stack objects.
No stacks exist in the account.
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[].
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
GET /v1/stacks HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"_id": "62100ec7abb76c310718b0f0",
"name": "Realtime-ify Stack",
"type": "server",
"lastModified": "2022-02-18T21:25:27.903Z",
"createdAt": "2022-02-18T21:25:27.864Z",
"server": {
"systemToken": "******",
"hostURI": "https://my-stack-server.example.com:3000"
}
},
{
"_id": "62b4e242bffb3066e9e0a80d",
"name": "Order Processing Lambda",
"type": "lambda",
"lastModified": "2025-08-10T14:22:33.000Z",
"createdAt": "2022-06-23T21:59:30.448Z",
"lambda": {
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"secretAccessKey": "******",
"awsRegion": "us-east-1",
"functionName": "processOrders",
"language": "Node.js"
}
}
]Creates a new stack. For server stacks, retrieve the system token after creation via GET /v1/stacks/{_id}/systemToken.
Request body for creating or updating a stack.
Human-readable display name for the stack.
Production Server StackExecution environment type.
serverPossible values: Framework version. Currently only twoDotZero is supported.
Optional — if omitted on create, the field is absent from the
response. If omitted on PUT, a previously set value is cleared.
twoDotZeroPossible values: Created stack.
Stack resource as returned by the API.
Unique identifier for the stack.
62100ec7abb76c310718b0f0Human-readable display name for the stack.
Production Server StackExecution environment type that determines which configuration block is present.
Framework version. Currently only twoDotZero is supported.
Timestamp when the stack was created.
2022-02-18T21:25:27.864ZTimestamp when the stack was last modified.
2022-02-18T21:25:27.903ZBad 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[].
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
POST /v1/stacks HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 114
{
"name": "Production Server Stack",
"type": "server",
"server": {
"hostURI": "https://my-stack-server.example.com:3000"
}
}{
"_id": "673e35899096693f4572c83c",
"name": "Production Server Stack",
"type": "server",
"lastModified": "2024-11-20T19:16:25.412Z",
"createdAt": "2024-11-20T19:16:25.412Z",
"server": {
"systemToken": "******",
"hostURI": "https://my-stack-server.example.com:3000"
}
}Returns a single stack by ID.
Stack ID.
Stack object.
Stack resource as returned by the API.
Unique identifier for the stack.
62100ec7abb76c310718b0f0Human-readable display name for the stack.
Production Server StackExecution environment type that determines which configuration block is present.
Framework version. Currently only twoDotZero is supported.
Timestamp when the stack was created.
2022-02-18T21:25:27.864ZTimestamp when the stack was last modified.
2022-02-18T21:25:27.903ZUnauthorized. 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/stacks/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"_id": "62100ec7abb76c310718b0f0",
"name": "Realtime-ify Stack",
"type": "server",
"lastModified": "2022-02-18T21:25:27.903Z",
"createdAt": "2022-02-18T21:25:27.864Z",
"server": {
"systemToken": "******",
"hostURI": "https://my-stack-server.example.com:3000"
}
}Updates a stack. Omitting the config object clears optional fields like framework. To rotate a server stack's system token, use DELETE /v1/stacks/{_id}/systemToken instead.
Stack ID.
Request body for creating or updating a stack.
Human-readable display name for the stack.
Production Server StackExecution environment type.
serverPossible values: Framework version. Currently only twoDotZero is supported.
Optional — if omitted on create, the field is absent from the
response. If omitted on PUT, a previously set value is cleared.
twoDotZeroPossible values: Updated stack.
Stack resource as returned by the API.
Unique identifier for the stack.
62100ec7abb76c310718b0f0Human-readable display name for the stack.
Production Server StackExecution environment type that determines which configuration block is present.
Framework version. Currently only twoDotZero is supported.
Timestamp when the stack was created.
2022-02-18T21:25:27.864ZTimestamp when the stack was last modified.
2022-02-18T21:25:27.903ZBad 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.
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
PUT /v1/stacks/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 114
{
"name": "Production Server Stack",
"type": "server",
"server": {
"hostURI": "https://my-stack-server.example.com:3000"
}
}{
"_id": "62100ec7abb76c310718b0f0",
"name": "Production Server Stack",
"type": "server",
"lastModified": "2025-09-04T08:17:42.901Z",
"createdAt": "2022-02-18T21:25:27.864Z",
"server": {
"systemToken": "******",
"hostURI": "https://my-stack-server.example.com:3000"
}
}Deletes a stack. Soft-deleted and retained in the recycle bin for 30 days.
Stack ID.
Stack 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/stacks/{_id} HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Returns the unmasked system token for a server stack.
Stack ID.
System token object.
Response containing the actual system token value for a server stack.
The actual system token value for authenticating with the server stack.
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6Unauthorized. 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[].
Stack not found, or the stack is not a server stack. The error message is "Stack of type server not found." in both cases.
GET /v1/stacks/{_id}/systemToken HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"systemToken": "465f5c448f434bc5ae3753bc83d96feb"
}Rotates (recycles) the server stack's system token. The old token is immediately invalidated. Retrieve the new token via GET /v1/stacks/{_id}/systemToken.
Stack ID.
Token recycled.
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[].
Stack not found, or the stack is not a server stack.
DELETE /v1/stacks/{_id}/systemToken HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Returns the change history for a stack. Each entry records a mutation event with who made the change, when, and which fields were affected.
Stack ID.
62b4e242bffb3066e9e0a80dMaximum number of audit entries to return per page.
1000Example: 100Opaque pagination cursor for the next page. Take it from the after value in the Link
response header's rel="next" URL rather than constructing it.
W3siJGRhdGUiOiIyMDI2LTA1LTAxVDAwOjAwOjAwLjAwMFoifSwiNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0Only return entries at or after this timestamp.
2026-05-01T00:00:00.000ZOnly return entries at or before this timestamp.
2026-05-31T23:59:59.999ZFilter by the change type. Maps to the event field on each entry.
updatePossible values: Filter by how the change was initiated.
uiPossible values: Filter to changes performed by a single user.
624cb0346309dc3a543733a2Array of audit entries, newest first.
No audit entries exist for this stack.
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[].
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/stacks/{_id}/audit HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"_id": "69f63dd77009ea11abf0bce3",
"resourceType": "stack",
"_resourceId": "62b4e242bffb3066e9e0a80d",
"source": "api",
"event": "update",
"time": "2026-05-02T18:09:26.975Z",
"byUser": {
"_id": "624cb0346309dc3a543733a2",
"email": "user@example.com",
"name": "Tyler Lamparter"
},
"fieldChanges": [
{
"fieldPath": "name",
"oldValue": "AWS test",
"newValue": "AWS"
}
]
}
]Returns the set of resources that depend on the specified stack.
Stack 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/stacks/{_id}/dependencies HTTP/1.1
Host: api.integrator.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"connections": [
{
"id": "673f806d0f9d0c860dcfab1e",
"name": "Wrapper Connection",
"paths": [
"wrapper._stackId"
],
"accessLevel": "manage",
"dependencyIds": {
"stack": [
"673e35899096693f4572c83c"
]
}
}
],
"flows": [
{
"id": "673e486ac12b3453ea0ba99a",
"name": "Login flow",
"paths": [
"pageGenerators[*]._exportId"
],
"accessLevel": "manage",
"dependencyIds": {
"export": [
"673e486adc497ab5e649f1ca"
]
}
}
]
}Last updated
Was this helpful?