Runs, schedules and deployments API
Start and inspect flow runs, manage schedules and the dead-letter queue, deploy flow versions and decide approvals.
Updated 07/10/2026
On this page
All paths start with /api/console/connect unless shown otherwise, and need a session token.
Executions (runs)
POST /flows/:flowId/executions (connect.flow.execute)
{
"environment": "sandbox",
"idempotencyKey": "orders-2026-10-07T09:00",
"correlationId": "scheduler-run-8841",
"triggerType": "manual"
}| Field | Notes |
|---|---|
environment | sandbox or production. Production needs an approved, active deployment (otherwise 403). |
idempotencyKey, correlationId | Required, 8–160 characters of A-Z a-z 0-9 . _ : - |
triggerType | manual, schedule or retry |
triggerReference | Optional |
Returns the execution with status: "queued" and replayed: false. Replaying the key returns the original execution with replayed: true; reusing it for another flow or environment returns 409.
| Method | Path | Permission | Description |
|---|---|---|---|
GET | /executions | connect.execution.read | Filters flowId, status; pageSize 1–100 (default 50) |
GET | /executions/:id | connect.execution.read | Execution with steps, errors, executionMode and recovery (eligible and scheduled retries) |
GET | /executions/:id/steps | connect.execution.read | Step results |
GET | /executions/:id/records | connect.execution.read | Up to 1,000 records |
GET | /executions/:id/records/:recordId | connect.execution.read | One record with steps, errors and dead-letter state |
POST | /executions/:id/cancel | connect.execution.cancel | Requests cancellation of an in-progress run |
POST | /executions/:id/retry-failed | connect.execution.retry | Retries up to 100 open dead-letter records from the run |
GET | /monitoring/summary | connect.monitoring.read | 24-hour summary: connections, executions, open dead letters, pending outbox events, enabled schedules |
Schedules
| Method | Path | Permission | Body and notes |
|---|---|---|---|
POST | /flows/:flowId/schedules | connect.schedule.manage | {cronExpression, timezone?, name?, enabled?}. Five-field cron; time zone defaults to UTC. |
GET | /flows/:flowId/schedules | connect.integration.read | Schedules for the flow |
PATCH | /schedules/:id | connect.schedule.manage | Same fields, all optional |
POST | /schedules/:id/pause | connect.schedule.manage | Pauses the schedule |
POST | /schedules/:id/resume | connect.schedule.manage | Resumes it |
DELETE | /schedules/:id | connect.schedule.manage | Returns {deleted: true} |
Dead letter
| Method | Path | Permission | Body and notes |
|---|---|---|---|
GET | /dead-letter?status= | connect.dead_letter.read | Up to 500 records with error and execution record |
GET | /dead-letter/:id | connect.dead_letter.read | One record |
POST | /dead-letter/:id/retry | connect.dead_letter.manage | {idempotencyKey?}. Only open and retry_failed records. |
POST | /dead-letter/retry | connect.dead_letter.manage | {ids: [...]}, 1–100 IDs |
POST | /dead-letter/:id/ignore | connect.dead_letter.manage | {note?} (up to 1,000 characters) |
POST | /dead-letter/:id/resolve | connect.dead_letter.manage | {note?} |
Environments and deployments
| Method | Path | Permission | Body and notes |
|---|---|---|---|
GET | /integrations/:id/environments | connect.deployment.read | The integration's environments |
POST | /integrations/:id/environments | connect.deployment.manage | {key, displayName, lifecycle: development, test, staging or production, connectionBindings?, runtimeSettings?} |
GET | /environments/:id/revisions | connect.deployment.read | Deployment revisions |
POST | /environments/:id/revisions | connect.deployment.manage | {flowId, flowVersionId, configuration?}. The version must be published. |
POST | /deployment-revisions/:id/decision | connect.deployment.approve | {decision: approved or rejected, comment}. 409 for self-approval. |
POST | /deployment-revisions/:id/activate | connect.deployment.manage | Activates an approved revision |
POST | /deployment-revisions/:id/rollback | connect.deployment.manage | Rolls back to the previous revision |
A rejection comment must be 3–500 characters.
Approvals
These paths start with /api/console/approvals.
| Method | Path | Permission | Body and notes |
|---|---|---|---|
GET | /api/console/approvals?status= | approvals.manage, or approvals.request for your own requests | Up to 100 requests |
POST | /api/console/approvals | approvals.request | See the request fields below |
POST | /api/console/approvals/:id/decision | approvals.manage | {decision: approved or rejected, reason} (3–500 characters). 403 for self-approval; 400 if expired. |
POST | /api/console/approvals/:id/cancel | Requester or manager | {reason} |
An approval request has these fields:
| Field | Notes |
|---|---|
action | Required |
resourceType | connector_action, mcp_tool or credential_action |
resourceId | Optional |
environment | sandbox or production |
payload | Required |
idempotencyKey, correlationId | Required |
expiresInMinutes | 1–1,440, default 30 |
requiredApprovals | 1–5, default 1 |
Trading partners (EDI)
/trading-partners manages B2B partners, their SFTP or AS2 channels, document profiles and documents:
profiles: X12 004010 850 and 810, EDIFACT D96A ORDERS, and CSV v1;
permissions: connect.partner.read to read and connect.partner.manage to write.
| Method | Path | Body |
|---|---|---|
GET | /trading-partners | — |
POST | /trading-partners | {name, partnerType?, identifiers?, dataClassification?} |
GET | /trading-partners/:id | — |
POST | /trading-partners/:id/channels | {channelType: sftp or as2, direction, configuration, secretReference} |
POST | /trading-partners/:id/profiles | {standard, version, documentType, direction, validationRules?, mapping?} |
POST | /trading-partners/:id/documents | {profileId, direction, payload, externalId?, storageReference?} |
POST | /trading-partners/:id/documents/:documentId/deliveries | {channelId} |