API reference
The complete REST API: 534 endpoints in 46 groups. Every endpoint below is also in the OpenAPI spec, with full request and response schemas, and both are checked against the application source on every build.
Authentication
Every request carries a bearer token in the Authorization header: either an API key (long-lived, per user, optional expiry) or a JWT from POST /v1/token-auth/issue.
Authorization: Bearer YOUR_TOKEN
JWTs last 8 hours by default; on-premise installations can change that with integrator.jwt.exp.period. Refresh a token that has not expired with POST /v1/token-auth/refresh. A few download and export endpoints also accept the token as an Authorization query parameter, so the URL can be opened directly.
A token carries the role of the user it belongs to. The API User role can call the Messages and CLI endpoints and HTTP listeners, but not flows, schedules or connections: generate the key for an Operator, Editor or Administrator for those. See the quickstart for setup.
Base URL
https://app.etlworks.com/rest
That is Etlworks Cloud. On-premise, use your own hostname: https://your-host/rest. Every path in this reference is relative to /rest.
Errors
Errors use standard HTTP status codes. The body depends on the status:
- 400: the message as
text/plain, or as JSON:{"error": "Field 'name' is required"}. - 401 and 403: an empty body. 401 means the token is missing, invalid or expired; 403 means the role does not allow the call.
- 404: not found.
- 500: the message as
text/plain, or an empty body for database errors.
Status code reference table: see quickstart errors.
Lists and pagination
List endpoints are not paginated: each returns everything in scope in one response. The exception is execution history, GET /v1/executions/{flowId}/history, which caps the result, reports how many records it left out in the X-Truncated-Count header, and takes lastAuditId to page back further. Timestamps are Unix epoch milliseconds.
For connections, formats, flows, and listeners, the connectionType / formatType / flowType discriminator is not an arbitrary string and the properties bag is not an arbitrary object. Both are defined per-connector by JSON descriptors in the platform's connector library (src/main/resources/di/…): e.g. PostgreSQL is connection.db.postgres and its property keys are field.connection.template.host, field.connection.template.port, field.connection.template.database, etc.
Reliable way to discover the right shape for any connector: create one in the Etlworks UI, then GET /v1/connections/{id} (or /v1/formats/{id}, /v1/flows/{id}) and copy the resulting connectionType + properties verbatim into your script. Parameterize the values, leave the keys alone.
Authentication 7 endpoints
Tokens, refresh and tenant switching.
| Method | Path | Description |
|---|---|---|
POST | /v1/token-auth/impersonate/exit | Stop acting as another user. |
POST | /v1/token-auth/impersonate/{principalId} | Start acting as another user. |
POST | /v1/token-auth/issue | Exchange a login and password for a JWT. The token lasts 8 hours by default (integrator.jwt.exp.period, configurable on-premise). |
POST | /v1/token-auth/refresh | Refresh a JWT that has not expired. |
POST | /v1/token-auth/revoke | Revoke a JWT. |
GET | /v1/token-auth/tenants | Tenants the caller can switch to. |
POST | /v1/token-auth/tenants/{tenantId} | Switch tenant. Returns a new JWT scoped to the tenant. |
Users and API keys 23 endpoints
Users, their long-lived keys for scripts and CI, and recovery of two-factor authentication.
| Method | Path | Description |
|---|---|---|
GET | /v1/users | List users. |
POST | /v1/users | Add new user. |
GET | /v1/users/metadata | Get users metadata (list of roles and tenants). |
GET | /v1/users/metadata/nonadmin/roles | Get list of non admin roles. |
GET | /v1/users/{userId} | Get user by ID. |
PUT | /v1/users/{userId} | Edit user with given ID. |
POST | /v1/users/{userId}/2fa/disable | Disable a user's two-factor authentication. For a user locked out of their authenticator. |
GET | /v1/users/{userId}/acl | Get user access list. |
PUT | /v1/users/{userId}/acl | Save user access list. |
GET | /v1/users/{userId}/ai-access | A user's AI access, and whether you may change it. |
PUT | /v1/users/{userId}/ai-access | Set a user's AI access. |
GET | /v1/users/{userId}/artifact-access | Get user artifact access. |
PUT | /v1/users/{userId}/artifact-access | Save user artifact access. |
PUT | /v1/users/{userId}/cost-access | Allow or deny a user seeing AI cost. |
GET | /v1/users/{userId}/effective-access | Get effective access. |
GET | /v1/users/{userId}/get-api-key | Get a user's current API key. |
GET | /v1/users/{userId}/groups | Get user groups. |
PUT | /v1/users/{userId}/groups | Save user groups. |
POST | /v1/users/{userId}/invite | Resend user invite. |
POST | /v1/users/{userId}/new-api-key | Generate or rotate a user's API key. Replaces any existing key for the user. |
POST | /v1/users/{userId}/revoke-api-key | Revoke a user's API key. |
PUT | /v1/users/{userId}/transcript-access | Allow or deny a user reading Simba transcripts. |
PUT | /v1/users/{userId}/unattended-actions | Allow or deny unattended Simba changes for a user. Whether scheduled and triggered Simba tasks owned by this user may make changes. |
Security groups 9 endpoints
Groups of users with shared permissions and artifact access.
| Method | Path | Description |
|---|---|---|
GET | /v1/security-groups | Get groups. |
POST | /v1/security-groups | Create group. |
GET | /v1/security-groups/{groupId} | Get group. |
PUT | /v1/security-groups/{groupId} | Update group. |
DELETE | /v1/security-groups/{groupId} | Delete group. |
GET | /v1/security-groups/{groupId}/acl | Get access list. |
PUT | /v1/security-groups/{groupId}/acl | Save access list. |
GET | /v1/security-groups/{groupId}/artifact-access | Get artifact access. |
PUT | /v1/security-groups/{groupId}/artifact-access | Save artifact access. |
Tenants 5 endpoints
Tenants of a multi-tenant account.
| Method | Path | Description |
|---|---|---|
GET | /v1/tenants | Get all tenants. |
POST | /v1/tenants | Add new tenant. |
GET | /v1/tenants/metadata | Get the metadata. |
GET | /v1/tenants/{tenantId} | Get a tenant. |
PUT | /v1/tenants/{tenantId} | Edit the tenant. |
Your profile 24 endpoints
The calling user's profile, notifications, OpenAI key and two-factor authentication.
| Method | Path | Description |
|---|---|---|
GET | /v1/2fa | Start setting up two-factor authentication. |
POST | /v1/2fa | QR code for adding another authenticator device. |
GET | /v1/2fa/codes | Your recovery codes. |
PUT | /v1/2fa/codes | Generate new recovery codes. |
POST | /v1/2fa/disable | Turn off your two-factor authentication. |
POST | /v1/2fa/enable | Turn on two-factor authentication. |
GET | /v1/userprofile | Get the user profile. |
GET | /v1/userprofile/company-account | Get company account. |
POST | /v1/userprofile/company-account | Update company account. |
GET | /v1/userprofile/current-tenant-account | Get current tenant account. |
POST | /v1/userprofile/current-tenant-account | Update current tenant account. |
POST | /v1/userprofile/default-tenant/{defaultTenantId} | Set your default tenant. |
POST | /v1/userprofile/email | Change your email. |
POST | /v1/userprofile/name | Change your first and last name. |
GET | /v1/userprofile/notifications | Get notifications. |
POST | /v1/userprofile/notifications/read | Mark notifications read. |
POST | /v1/userprofile/notifications/read-all | Mark all notifications read. |
GET | /v1/userprofile/openai-key | Get the current user's personal OpenAI API key status. |
POST | /v1/userprofile/openai-key | Set the current user's personal OpenAI API key. |
DELETE | /v1/userprofile/openai-key | Clear the current user's personal OpenAI API key. |
POST | /v1/userprofile/openai-key/preference | Use or stop using your personal OpenAI key. |
POST | /v1/userprofile/preferences | Save a preference. |
GET | /v1/userprofile/usage | Your Simba token usage and estimated cost this month. |
DELETE | /v1/userprofile/users/{userId}/openai-key | Clear another user's personal OpenAI key. |
Flows 28 endpoints
Create, edit, inspect, version, import and export flows.
| Method | Path | Description |
|---|---|---|
GET | /v1/flows | List flows. Returns every flow in scope in one response; there is no pagination. |
POST | /v1/flows | Create a flow. |
POST | /v1/flows/bulk | Bulk-edit flows. Rename, retag, delete or run many flows in one call. |
GET | /v1/flows/bulk-load-methods | Functions available in the Bulk Load SQL editor. |
GET | /v1/flows/documentation/diagram | Get flow documentation diagram. |
GET | /v1/flows/documentation/md | Get flow documentation Markdown. |
GET | /v1/flows/export | Export flows as a bundle. Returns a text bundle to pass to an import endpoint. |
GET | /v1/flows/flow-parameters | Get flow parameter options. |
POST | /v1/flows/import | Import flows. Preview first. |
POST | /v1/flows/import/preview | Preview a flow import. |
POST | /v1/flows/inspect | Run Flow Findings on a flow definition. Checks a flow against the built-in heuristics without saving it. |
GET | /v1/flows/metadata | Get the flows metadata. |
POST | /v1/flows/patch | Apply a patch to flows across tenants. |
GET | /v1/flows/recent | Recently opened flows. |
POST | /v1/flows/search | Search flow hierarchy. |
GET | /v1/flows/{flowId} | Get a flow. |
PUT | /v1/flows/{flowId} | Update a flow. Replaces the whole flow. |
DELETE | /v1/flows/{flowId} | Delete a flow. Moves it to the recycle bin. |
GET | /v1/flows/{flowId}/documentation | Generated documentation for a flow. |
POST | /v1/flows/{flowId}/execution-preview | Predict the execution plan of an unsaved transformation. |
GET | /v1/flows/{flowId}/history | Version history of a flow. |
GET | /v1/flows/{flowId}/history/{uuidFrom}/diff/{uuidTo} | Diff two versions of a flow. |
GET | /v1/flows/{flowId}/history/{uuid} | Get one saved version of a flow. |
PUT | /v1/flows/{flowId}/history/{uuid}/message | Edit the save message of a flow version. |
POST | /v1/flows/{flowId}/recent | Mark a flow as recently used. |
POST | /v1/flows/{flowId}/transformation-test | Test transformation. |
GET | /v1/flows/{flowId}/usage | Where a flow is referenced. Schedules, parent flows and listeners that reference it. |
GET | /v1/flows/{flowId}/xml | The flow's scenario XML. |
Runs 3 endpoints
Start and stop flow executions.
| Method | Path | Description |
|---|---|---|
POST | /v1/flows/flow-name/{flowName}/run | Run a flow by name. Every query parameter other than the ones listed is passed to the flow as a flow parameter. |
POST | /v1/flows/{flowId}/run | Run a flow. The body is a flat map of flow parameters, or {}. |
POST | /v1/flows/{flowId}/stop | Stop a running flow. |
Executions 13 endpoints
Status, history, logs and dbt results of executions.
| Method | Path | Description |
|---|---|---|
GET | /v1/executions/console/download | Download an execution log. Accepts the token in the Authorization query parameter so the URL can be opened directly. |
GET | /v1/executions/{flowId} | Get one execution. Look up by auditId, or by messageId for listener-triggered runs. |
GET | /v1/executions/{flowId}/audit/{auditId}/console | The log of one execution. |
GET | /v1/executions/{flowId}/audit/{auditId}/console/live | Tail the log of a running execution. |
GET | /v1/executions/{flowId}/audit/{auditId}/dbt | dbt results of an execution. Model and test outcomes, timings, sources and freshness from a dbt flow run. |
GET | /v1/executions/{flowId}/audit/{auditId}/dbt/artifacts/{artifactName} | Download a dbt artifact. Only the four artifact names listed are served; any other name returns 404. |
GET | /v1/executions/{flowId}/audit/{auditId}/running-tasks | Transformations in flight. |
GET | /v1/executions/{flowId}/dbt/retry/executions | List failed executions whose run_results.json is still retained for native retry. |
POST | /v1/executions/{flowId}/dbt/state | Upload one immutable manifest for later state/defer selection. |
GET | /v1/executions/{flowId}/dbt/state/executions | List successful executions whose manifest is still retained for state use. |
DELETE | /v1/executions/{flowId}/dbt/state/{uploadId} | Delete one flow-scoped uploaded state manifest. |
GET | /v1/executions/{flowId}/history | Execution history of a flow. Returns up to 100 records per call. |
GET | /v1/executions/{flowId}/statuses | Execution counts by status. |
Schedules 14 endpoints
Timers, cron schedules and their history.
| Method | Path | Description |
|---|---|---|
GET | /v1/schedules | List schedules. |
POST | /v1/schedules | Create a schedule. |
POST | /v1/schedules/bulk | Bulk-edit schedules. |
GET | /v1/schedules/flows/{flowId} | Schedules that run a flow. |
GET | /v1/schedules/metadata | Get schedules metadata. |
GET | /v1/schedules/{scheduleId} | Get a schedule. |
PUT | /v1/schedules/{scheduleId} | Update a schedule. Send the full schedule. |
DELETE | /v1/schedules/{scheduleId} | Delete a schedule. Moves it to the recycle bin. |
POST | /v1/schedules/{scheduleId}/disable | Disable a schedule. Pauses it without deleting it. |
POST | /v1/schedules/{scheduleId}/enable | Enable a schedule. |
POST | /v1/schedules/{scheduleId}/flows/{flowId}/run | Run a scheduled flow now. Runs the flow with the schedule's parameters and settings applied. |
GET | /v1/schedules/{scheduleId}/history | Version history of a schedule. |
GET | /v1/schedules/{scheduleId}/history/{uuidFrom}/diff/{uuidTo} | Diff two versions of a schedule. |
GET | /v1/schedules/{scheduleId}/history/{uuid} | Get one saved version of a schedule. |
Composer 9 endpoints
Flows built in Composer, the visual workflow builder, and its drafts.
| Method | Path | Description |
|---|---|---|
POST | /v1/composer/flows | Add composer flow. |
POST | /v1/composer/flows/drafts | Create composer draft. |
GET | /v1/composer/flows/drafts/{draftKey} | Get composer draft. |
PUT | /v1/composer/flows/drafts/{draftKey} | Save composer draft. |
POST | /v1/composer/flows/import-template | Import template as composer. |
POST | /v1/composer/flows/resolve-pair | Resolve pair. |
POST | /v1/composer/flows/search | Search composer flow. |
GET | /v1/composer/flows/{flowId} | Get composer flow. |
PUT | /v1/composer/flows/{flowId} | Edit composer flow. |
Connections 21 endpoints
Database, storage, API and queue connections.
| Method | Path | Description |
|---|---|---|
GET | /v1/connections | List connections. |
POST | /v1/connections | Create a connection. |
POST | /v1/connections/bulk | Bulk-edit connections. Applies the listed actions to every id in the request, in order. |
GET | /v1/connections/recent | Recently opened connections. Recently opened by the calling user. |
GET | /v1/connections/sshkeys | List uploaded SSH keys. |
DELETE | /v1/connections/sshkeys/{fileName} | Delete an uploaded SSH key. |
POST | /v1/connections/test | Test a connection. Tests the connection in the body without saving it. |
GET | /v1/connections/{connectionId} | Get a connection. |
PUT | /v1/connections/{connectionId} | Update a connection. The body replaces the stored object; send the full object, not a patch. |
DELETE | /v1/connections/{connectionId} | Delete a connection. Moves it to the recycle bin; restore it with POST /v1/recycle-bin/{type}/{id}/restore. |
POST | /v1/connections/{connectionId}/explorer-objects | Objects behind a connection, for Explorer. |
POST | /v1/connections/{connectionId}/fields | List the fields of an object. |
PUT | /v1/connections/{connectionId}/fields | Clear the cached fields of a connection object. |
GET | /v1/connections/{connectionId}/history | Version history of a connection. |
GET | /v1/connections/{connectionId}/history/{uuidFrom}/diff/{uuidTo} | Diff two versions of a connection. |
GET | /v1/connections/{connectionId}/history/{uuid} | Get one saved version of a connection. |
PUT | /v1/connections/{connectionId}/history/{uuid}/message | Edit the save message of a connection version. |
POST | /v1/connections/{connectionId}/objects | List tables, files or endpoints. Lists the objects reachable through a connection. |
DELETE | /v1/connections/{connectionId}/objects | Clear the cached object list of a connection. |
POST | /v1/connections/{connectionId}/recent | Mark a connection as recently used. |
GET | /v1/connections/{connectionId}/usage | Where a connection is used. |
Formats 14 endpoints
File and message formats.
| Method | Path | Description |
|---|---|---|
GET | /v1/formats | List formats. |
POST | /v1/formats | Create a format. |
POST | /v1/formats/bulk | Bulk-edit formats. Applies the listed actions to every id in the request, in order. |
GET | /v1/formats/recent | Recently opened formats. Recently opened by the calling user. |
GET | /v1/formats/{formatId} | Get a format. |
PUT | /v1/formats/{formatId} | Update a format. The body replaces the stored object; send the full object, not a patch. |
DELETE | /v1/formats/{formatId} | Delete a format. Moves it to the recycle bin; restore it with POST /v1/recycle-bin/{type}/{id}/restore. |
GET | /v1/formats/{formatId}/history | Version history of a format. |
GET | /v1/formats/{formatId}/history/{uuidFrom}/diff/{uuidTo} | Diff two versions of a format. |
GET | /v1/formats/{formatId}/history/{uuid} | Get one saved version of a format. |
PUT | /v1/formats/{formatId}/history/{uuid}/message | Edit the save message of a format version. |
POST | /v1/formats/{formatId}/recent | Mark a format as recently used. |
GET | /v1/formats/{formatId}/usage | Where a format is used. |
GET | /v1/formats/{formatId}/x12-message-schema | Get the normalized X12 message schema for the selected format. |
Listeners 8 endpoints
HTTP, queue and other inbound listeners.
| Method | Path | Description |
|---|---|---|
GET | /v1/listeners | List listeners. |
POST | /v1/listeners | Create a listener. |
POST | /v1/listeners/bulk | Bulk-edit listeners. Applies the listed actions to every id in the request, in order. |
GET | /v1/listeners/recent | Recently opened listeners. Recently opened by the calling user. |
GET | /v1/listeners/{listenerId} | Get a listener. |
PUT | /v1/listeners/{listenerId} | Update a listener. The body replaces the stored object; send the full object, not a patch. |
DELETE | /v1/listeners/{listenerId} | Delete a listener. Moves it to the recycle bin; restore it with POST /v1/recycle-bin/{type}/{id}/restore. |
POST | /v1/listeners/{listenerId}/recent | Mark a listener as recently used. |
CDC offsets 12 endpoints
Read, set, back up and restore the change data capture position of a flow or connection.
| Method | Path | Description |
|---|---|---|
GET | /v1/connections/{connectionId}/cdc-offset | Get CDC offset. |
PUT | /v1/connections/{connectionId}/cdc-offset | Update CDC offset. |
DELETE | /v1/connections/{connectionId}/cdc-offset | Delete CDC offset. |
GET | /v1/connections/{connectionId}/cdc-offset-file | Get CDC offset file. |
PUT | /v1/connections/{connectionId}/cdc-offset-file | Update CDC offset file. |
DELETE | /v1/connections/{connectionId}/cdc-offset-file | Delete CDC offset file. |
POST | /v1/connections/{connectionId}/cdc-offset-file/restore | Restore CDC offset file. |
POST | /v1/connections/{connectionId}/cdc-offset/restore | Restore CDC offset. |
GET | /v1/flows/{flowId}/cdc-offset | Get CDC offset. |
PUT | /v1/flows/{flowId}/cdc-offset | Update CDC offset. |
DELETE | /v1/flows/{flowId}/cdc-offset | Delete CDC offset. |
POST | /v1/flows/{flowId}/cdc-offset/restore | Restore CDC offset. |
Import and export 4 endpoints
Move connections and formats between tenants.
| Method | Path | Description |
|---|---|---|
GET | /v1/io/export | Export connections and formats as a bundle. Returns a text bundle. |
POST | /v1/io/import | Import connections and formats. |
POST | /v1/io/import/preview | Preview a connection and format import. |
GET | /v1/io/list | Connections and formats available to export. |
SQL 5 endpoints
Run SQL against a connection.
| Method | Path | Description |
|---|---|---|
GET | /v1/explorer/sql/connection/{connectionId}/history | Get the SQL execution history for the given connection ID. |
POST | /v1/explorer/sql/data | Run SQL against a connection. |
GET | /v1/explorer/sql/data/executions/{executionId}/console | The log of a SQL execution. |
GET | /v1/explorer/sql/data/executions/{executionId}/download | Download data execution log. |
POST | /v1/explorer/sql/format | Format SQL or script code. |
Explorer 15 endpoints
Explorer, the built-in data browser: objects, data and files behind a connection.
| Method | Path | Description |
|---|---|---|
GET | /v1/explorer/connections | Get all connections and their metadata. |
POST | /v1/explorer/connections/delete/{connectionId}/files | Delete connection files. |
DELETE | /v1/explorer/connections/delete/{connectionId}/files/{objectName} | Delete connection file. |
GET | /v1/explorer/connections/download/{connectionId}/{formatId}/{objectName} | Download connection file. |
GET | /v1/explorer/connections/export | Export data for a given connection/format combination in a given format. |
GET | /v1/explorer/connections/metadata | Get the connections metadata. |
GET | /v1/explorer/connections/{connectionId} | Get the connection by ID. |
POST | /v1/explorer/connections/{connectionId}/files | Save file. |
POST | /v1/explorer/connections/{connectionId}/files/rename | Rename file. |
POST | /v1/explorer/connections/{connectionId}/folders | Create folder. |
POST | /v1/explorer/connections/{connectionId}/folders/delete | Delete folder. |
POST | /v1/explorer/connections/{connectionId}/folders/rename | Rename folder. |
PUT | /v1/explorer/connections/{connectionId}/{formatId} | Set the format Explorer uses for a connection. |
GET | /v1/explorer/connections/{connectionId}/{formatId}/{objectName}/data | Read the data of an object. |
POST | /v1/explorer/connections/{connectionId}/{formatId}/{objectName}/data | Read the data of an object, with options. |
Connector metadata 4 endpoints
The parameter keys each connector, format and flow type accepts.
| Method | Path | Description |
|---|---|---|
GET | /v1/di/metadata/connections/{key} | Describe one connection type. Lists the parameter keys accepted in properties, with type, default and whether required. |
GET | /v1/di/metadata/flows/{key} | Describe one flow type. Lists the parameter keys accepted in properties, with type, default and whether required. |
GET | /v1/di/metadata/formats/{key} | Describe one format type. Lists the parameter keys accepted in properties, with type, default and whether required. |
GET | /v1/di/metadata/{type} | List connector, format or flow types. |
Macros 10 endpoints
Reusable parameterized snippets.
| Method | Path | Description |
|---|---|---|
GET | /v1/macros | List macros. |
POST | /v1/macros | Create a macro. |
GET | /v1/macros/{macroId} | Get a macro. |
PUT | /v1/macros/{macroId} | Update a macro. |
DELETE | /v1/macros/{macroId} | Delete a macro. Refused with 409 while a flow still uses it. |
GET | /v1/macros/{macroId}/history | Version history of a macro. |
GET | /v1/macros/{macroId}/history/{uuidFrom}/diff/{uuidTo} | Diff two versions of a macro. |
GET | /v1/macros/{macroId}/history/{uuid} | Get one saved version of a macro. |
PUT | /v1/macros/{macroId}/star | Star or unstar a macro. |
GET | /v1/macros/{macroId}/usage | Where a macro is used. |
Functions 1 endpoint
Built-in transformation functions.
| Method | Path | Description |
|---|---|---|
GET | /v1/functions | List transformation functions. |
Templates 10 endpoints
Flow templates.
| Method | Path | Description |
|---|---|---|
GET | /v1/templates | List flow templates. |
POST | /v1/templates | Add new template. |
POST | /v1/templates/custom-dump | Build a template from selected flows. |
GET | /v1/templates/icons/{templateId} | Get the template icon. |
GET | /v1/templates/metadata | Get templates metadata. |
POST | /v1/templates/search | Search flow templates. |
POST | /v1/templates/searchDescriptors | Search template descriptors with AI. |
GET | /v1/templates/{templateId} | Get a flow template. |
PUT | /v1/templates/{templateId} | Edit the template. |
DELETE | /v1/templates/{templateId} | Delete the template. |
Icons 2 endpoints
Icons for flows and other artifacts.
| Method | Path | Description |
|---|---|---|
GET | /v1/images | Get all available icons grouped by type. |
POST | /v1/images/generate | Generate icon image from request. |
Agents 31 endpoints
Integration Agents, the workers installed next to on-premise data: configuration, status, actions and updates.
| Method | Path | Description |
|---|---|---|
GET | /v1/agents | Get all agents. |
POST | /v1/agents | Add agent. |
GET | /v1/agents/artifacts/metadata | Get artifacts metadata. |
POST | /v1/agents/bulk | Bulk action agents. |
POST | /v1/agents/bulk-update | Bulk update agents. |
POST | /v1/agents/bulk-update/clear-status | Clear bulk update statuses. |
POST | /v1/agents/bulk-update/preview | Preview bulk update agents. |
POST | /v1/agents/disable/{agentId} | Disable the agent. |
GET | /v1/agents/download/{agentId}/actions/{actionId} | Download agent action file. |
GET | /v1/agents/download/{agentId}/artifacts | Download agent artifact. |
GET | /v1/agents/download/{agentId}/license | Download agent license. |
POST | /v1/agents/enable/{agentId} | Enable the agent. |
GET | /v1/agents/light | List agents (id, name and status only). |
GET | /v1/agents/metadata | Get metadata. |
GET | /v1/agents/recent | Get recent agents. |
GET | /v1/agents/update-requests | Get recent update requests. |
GET | /v1/agents/update-requests/{requestId} | Get update request. |
GET | /v1/agents/{agentId} | Get agent. |
PUT | /v1/agents/{agentId} | Edit agent. |
DELETE | /v1/agents/{agentId} | Delete the agent. |
GET | /v1/agents/{agentId}/actions | Get agent actions. |
POST | /v1/agents/{agentId}/actions | Add agent action. |
GET | /v1/agents/{agentId}/actions/{actionId} | Get agent action result. |
PUT | /v1/agents/{agentId}/actions/{actionId} | Cancel agent action. |
GET | /v1/agents/{agentId}/history | Get agent change history. |
GET | /v1/agents/{agentId}/history/{uuidFrom}/diff/{uuidTo} | Get agent history diff. |
GET | /v1/agents/{agentId}/history/{uuid} | Get agent history item by ID. |
GET | /v1/agents/{agentId}/ping | Agent status, pending actions and flow metadata. |
POST | /v1/agents/{agentId}/recent | Mark an Agent as recently used. |
GET | /v1/agents/{agentId}/status | Get agent status. |
GET | /v1/agents/{agentId}/update-check | Check whether an update is available for an Agent. |
Simba in the app 20 endpoints
The endpoints behind the in-app chat with Simba, the Etlworks AI agent, and its tenant settings. For programmatic use, prefer the AI Agent API.
| Method | Path | Description |
|---|---|---|
GET | /v1/ai-agent/api-key | Check if an OpenAI API key is configured. |
POST | /v1/ai-agent/api-key | Save an OpenAI API key. |
POST | /v1/ai-agent/api-key/delete | Delete a stored OpenAI API key. |
POST | /v1/ai-agent/chat/{sessionId} | Send a chat message; the reply streams as Server-Sent Events. |
GET | /v1/ai-agent/client-config | Configuration for the in-app chat. |
POST | /v1/ai-agent/composer/session | Initialize or resume a Composer-linked chat session. |
GET | /v1/ai-agent/health | Whether Simba is available. |
POST | /v1/ai-agent/session | Initialize an authenticated chat session. |
GET | /v1/ai-agent/session/history | Get chat session history for the current user. |
POST | /v1/ai-agent/session/new | Force a new chat session, ignoring any existing session. |
GET | /v1/ai-agent/session/{sessionId}/messages | Messages of a chat session. |
POST | /v1/ai-agent/session/{sessionId}/resume | Resume a specific chat session by ID. |
GET | /v1/ai-agent/session/{sessionId}/scheduled-flow | Draft a scheduled Simba task from a chat. Proposes the flow name, reusable prompt and schedule that POST on the same path creates. |
POST | /v1/ai-agent/session/{sessionId}/scheduled-flow | Create a scheduled Simba task from a chat. Creates a Run Simba Prompt flow and its schedule from the conversation. |
GET | /v1/ai-agent/session/{sessionId}/usage | Token usage of a chat session. |
POST | /v1/ai-agent/support-ticket | Create support ticket. |
GET | /v1/ai-agent/wallet/my | Your AI wallet balance. |
GET | /v1/ai-agent/wallet/{billingKey} | Get wallet balance and summary for a billing key. |
POST | /v1/ai-agent/wallet/{billingKey}/recharge | Recharge an AI wallet. |
GET | /v1/ai-agent/wallet/{billingKey}/transactions | AI wallet transactions. |
AI assistance 21 endpoints
AI helpers used by the editors: mapping, template matching and schedule analysis.
| Method | Path | Description |
|---|---|---|
POST | /v1/intelligence/descriptors | Matches flow descriptors based on the provided prompt and context. |
POST | /v1/intelligence/insights/resource-usage/ask | Ask resource usage. |
POST | /v1/intelligence/insights/scheduled-activity/analyze | Analyze scheduled activity. |
POST | /v1/intelligence/insights/scheduled-activity/ask | Ask scheduled activity. |
POST | /v1/intelligence/insights/scheduled-activity/optimize | Optimize scheduled activity. |
POST | /v1/intelligence/mapping | Creates a mapping between source and destination datasets using AI. |
POST | /v1/intelligence/schedule/after | Finds all scheduled entries that start strictly after the given time. |
POST | /v1/intelligence/schedule/analyze/from-prompt | Uses a natural language prompt to analyze schedules and return matching results. |
POST | /v1/intelligence/schedule/at-or-after | Finds scheduled entries that start at or after the given time. |
POST | /v1/intelligence/schedule/at-or-before | Finds scheduled entries that end at or before the given time. |
POST | /v1/intelligence/schedule/before | Finds all scheduled entries that end strictly before the given time. |
POST | /v1/intelligence/schedule/between | Finds all scheduled entries within the specified start and end time. |
POST | /v1/intelligence/schedule/execution-map | Map when scheduled flows run over a period. |
POST | /v1/intelligence/schedule/gaps | Identifies gaps (unscheduled periods) between scheduled entries. |
POST | /v1/intelligence/schedule/gaps/after | Identifies gaps that start strictly after a given time. |
POST | /v1/intelligence/schedule/gaps/at-or-after | Identifies gaps starting at or after a given time. |
POST | /v1/intelligence/schedule/gaps/at-or-before | Identifies gaps ending at or before a given time. |
POST | /v1/intelligence/schedule/gaps/before | Identifies gaps that end strictly before a given time. |
POST | /v1/intelligence/schedule/gaps/between | Identifies gaps strictly between a given start and end time. |
POST | /v1/intelligence/schedule/suggest-optimized | Suggests an optimized schedule based on available times and execution patterns. |
POST | /v1/intelligence/templates | Matches templates based on a natural language prompt and context. |
AI usage 11 endpoints
Token usage and cost of Simba by user, tenant and day.
| Method | Path | Description |
|---|---|---|
GET | /v1/metrics/ai-agent/conversation-export | Download one Simba conversation with per-turn tokens and cost. |
GET | /v1/metrics/ai-agent/daily-usage | Simba usage by day. |
GET | /v1/metrics/ai-agent/rag-status | Status of the knowledge-base index Simba searches. |
POST | /v1/metrics/ai-agent/rag-sync | Rebuild the knowledge-base index Simba searches. |
POST | /v1/metrics/ai-agent/rag-sync/cancel | Cancel a knowledge-base index rebuild. |
GET | /v1/metrics/ai-agent/rag-sync/progress | Progress of a knowledge-base index rebuild. |
GET | /v1/metrics/ai-agent/summary | Simba usage summary. |
GET | /v1/metrics/ai-agent/tenant-usage | Simba usage by tenant. |
GET | /v1/metrics/ai-agent/user-sessions | One user's Simba sessions on a day, heaviest first. |
GET | /v1/metrics/ai-agent/user-transcript-export | Download all of one user's Simba transcripts for a day. |
GET | /v1/metrics/ai-agent/user-usage | Simba usage by user. |
Webhooks 9 endpoints
Outbound notifications on flow events.
| Method | Path | Description |
|---|---|---|
GET | /v1/webhooks | List webhooks. |
POST | /v1/webhooks | Create a webhook. Deliveries carry X-Etl-Webhook-Event, X-Etl-Webhook-Event-Id, X-Etl-Webhook-Id and X-Etl-Webhook-Entity-Id headers, plus X-Etl-Webhook-Signature when a secret is set. |
GET | /v1/webhooks/metadata | Webhook event types. |
GET | /v1/webhooks/{webhookId} | Get a webhook. |
PUT | /v1/webhooks/{webhookId} | Update a webhook. |
DELETE | /v1/webhooks/{webhookId} | Delete a webhook. |
PUT | /v1/webhooks/{webhookId}/enabled | Enable or disable a webhook. Switches deliveries on or off without editing the rest of the webhook. |
GET | /v1/webhooks/{webhookId}/events | Recent deliveries. |
GET | /v1/webhooks/{webhookId}/events/{eventId} | One delivery, with payload and response. |
Messages 3 endpoints
Payloads received by listeners.
| Method | Path | Description |
|---|---|---|
GET | /v1/messages | List listener messages. Available to the API User role. |
POST | /v1/messages | Search listener messages. Available to the API User role. |
GET | /v1/messages/{messageId} | Get a message body. Available to the API User role. |
CLI 2 endpoints
The built-in command line.
| Method | Path | Description |
|---|---|---|
POST | /v1/cli | Run CLI commands. Runs one or more built-in CLI commands and returns their output. |
GET | /v1/cli/commands | List CLI commands. |
Tags and search 9 endpoints
Tags, tag views and name search.
| Method | Path | Description |
|---|---|---|
GET | /v1/search | Search. Searches flows, connections, formats, schedules, webhooks, agents, macros and templates by name. |
POST | /v1/search | Search with filters. |
GET | /v1/tags | List tags in use. |
POST | /v1/tags/update | Update tags within the current principal scope. |
POST | /v1/tags/update-all | Update tags in every tenant. |
POST | /v1/tags/update/{tenantId} | Update tags for a given tenant. |
GET | /v1/tags/views | List all saved tag views. |
POST | /v1/tags/views | Replace the saved tag views. |
DELETE | /v1/tags/views/{name} | Delete a single view by name. |
Audit 5 endpoints
Audit trail of API calls.
| Method | Path | Description |
|---|---|---|
GET | /v1/audit | Recent API audit records. |
POST | /v1/audit | Search API audit records. |
GET | /v1/audit/summary | Compact audit summary. |
GET | /v1/audit/{auditId} | Details of one audit record. |
GET | /v1/audit/{auditId}/parameters | Get the audit record parameters. |
Recycle bin 3 endpoints
Deleted objects.
| Method | Path | Description |
|---|---|---|
GET | /v1/recycle-bin | List deleted objects. |
GET | /v1/recycle-bin/{type}/{id}/preview | Preview restoring a deleted object. Whether the object can be restored, why not if it cannot, and the dependencies a restore would bring back or reuse. |
POST | /v1/recycle-bin/{type}/{id}/restore | Restore a deleted object. |
Support 2 endpoints
Open a support ticket about a flow.
| Method | Path | Description |
|---|---|---|
GET | /v1/support/flows/{flowId}/preview | Preview a support ticket about a flow. |
POST | /v1/support/flows/{flowId}/ticket | Send a support ticket about a flow. |
Metrics 14 endpoints
Execution counts, heatmaps, running tasks and flow findings.
| Method | Path | Description |
|---|---|---|
GET | /v1/metrics | Get metrics. |
GET | /v1/metrics/aggregated | Get aggregated metrics. |
GET | /v1/metrics/api/stats | HTTP listener throttling statistics. |
GET | /v1/metrics/executions | Get the list of flow executions for specified day. |
GET | /v1/metrics/executions-heatmap | Get execution heatmap for the selected period. |
GET | /v1/metrics/executions-heatmap/aggregated | Get aggregated execution heatmap for the selected period. |
GET | /v1/metrics/executions/aggregated | Flow executions on a day, across tenants. |
GET | /v1/metrics/flow-findings | Get flow inspection findings. |
POST | /v1/metrics/home/widgets/refresh | Start a refresh of the dashboard widgets. |
GET | /v1/metrics/home/widgets/refresh/{requestId} | Results of a dashboard widget refresh. |
GET | /v1/metrics/monthly | Get specified month's metrics. |
GET | /v1/metrics/monthly/aggregated | Get specified month's aggregated metrics. |
GET | /v1/metrics/running-tasks | Get the list of running flow tasks. |
GET | /v1/metrics/running-tasks/aggregated | Running flow tasks across all application nodes. |
Resource usage 9 endpoints
CPU, memory and thread usage by flow, and resource incidents.
| Method | Path | Description |
|---|---|---|
GET | /v1/metrics/resource-usage/config | Get resource usage config. |
GET | /v1/metrics/resource-usage/execution-threads | Get resource usage execution thread tree. |
GET | /v1/metrics/resource-usage/executions | Get resource usage executions. |
GET | /v1/metrics/resource-usage/incidents | Get resource usage incidents. |
GET | /v1/metrics/resource-usage/incidents/{incidentId}/impact | Get resource usage incident impact. |
GET | /v1/metrics/resource-usage/summary | Get resource usage summary. |
GET | /v1/metrics/resource-usage/threads | Get resource usage thread samples. |
GET | /v1/metrics/resource-usage/timeline | Get resource usage timeline. |
GET | /v1/metrics/resource-usage/top-flows | Get resource usage top flows. |
System 12 endpoints
Health, license, suspend and resume, releases, threads and heap dumps.
| Method | Path | Description |
|---|---|---|
GET | /v1/modules | Get the list of modules. |
GET | /v1/modules/{moduleName} | Get the module with the given name. |
GET | /v1/system/health | Health of the application nodes. |
POST | /v1/system/license/refresh | Request an immediate license-property refresh on all application nodes. |
GET | /v1/system/metrics/core-dump | Write a heap dump on the ETL engine. |
GET | /v1/system/metrics/etl-threads | ETL engine threads. |
POST | /v1/system/redis/persist | Persist Redis state to disk before a backup or migration. |
GET | /v1/system/release-status | Release notice status. |
GET | /v1/system/releases | Releases. |
POST | /v1/system/resume | Resume all nodes. |
GET | /v1/system/running-flows | Get the list of running flows. |
POST | /v1/system/suspend | Suspend all nodes. |
Maintenance 9 endpoints
Scheduled maintenance tasks such as cleanup and backup.
| Method | Path | Description |
|---|---|---|
GET | /v1/maintenance | Get all maintenance tasks. |
POST | /v1/maintenance | Add maintenance task. |
POST | /v1/maintenance/app-data-backup-preview | Get app.data backup preview. |
POST | /v1/maintenance/app-data-cleanup-test | Get app.data cleanup test results. |
GET | /v1/maintenance/metadata | Get the maintenance metadata. |
PUT | /v1/maintenance/{taskId} | Edit maintenance task. |
DELETE | /v1/maintenance/{taskId} | Delete maintenance task. |
GET | /v1/maintenance/{taskId}/executions | Get maintenance task executions. |
GET | /v1/maintenance/{taskId}/run | Run maintenance task on demand. |
Settings 5 endpoints
Global application settings.
| Method | Path | Description |
|---|---|---|
GET | /v1/settings | All settings, with their descriptors. |
POST | /v1/settings | Save the values of one settings category. |
GET | /v1/settings/force-streaming-policy | Force Streaming policy of your tenant. |
GET | /v1/settings/mail/test | Test email settings. |
GET | /v1/settings/sso/test | Test the OpenID Connect settings and show the callback URL. |
Billing 32 endpoints
Subscriptions, plans, invoices, payment cards and the AI wallet of an Etlworks Cloud account. The billing pages of the application call these; you can too, with an administrator's token.
| Method | Path | Description |
|---|---|---|
GET | /v1/billing/account | Get billing account info for the current tenant. |
PUT | /v1/billing/account | Update billing account information. |
POST | /v1/billing/account/create | Create a billing account and link it to this tenant. |
POST | /v1/billing/account/link | Link an existing billing account. |
POST | /v1/billing/account/unlink | Unlink the billing account from this tenant. |
GET | /v1/billing/cards | Get cards. |
POST | /v1/billing/cards | Add a payment method using a Stripe token. |
DELETE | /v1/billing/cards/{cardId} | Delete a payment method. |
PUT | /v1/billing/cards/{cardId}/default | Set the default payment method. |
GET | /v1/billing/email | Get billing email. |
GET | /v1/billing/invoices | Get invoices. |
GET | /v1/billing/invoices/{invoiceId} | Get invoice. |
GET | /v1/billing/plans | Get plans. |
GET | /v1/billing/plans/all | Get all plans. |
GET | /v1/billing/plans/{planId} | Get plan. |
GET | /v1/billing/subscriptions | Get subscriptions. |
POST | /v1/billing/subscriptions | Subscribe to a plan. |
GET | /v1/billing/subscriptions/all-linked | All active subscriptions of the linked billing account, marked by environment. |
POST | /v1/billing/subscriptions/claim | Assign subscriptions to this environment. |
GET | /v1/billing/subscriptions/unassigned | Active subscriptions not yet assigned to an environment. |
POST | /v1/billing/subscriptions/upgrade | Upgrade subscription. |
GET | /v1/billing/subscriptions/upgrades | Get upgrade plans. |
POST | /v1/billing/subscriptions/{subscriptionId} | Update a subscription. |
DELETE | /v1/billing/subscriptions/{subscriptionId} | Cancel a subscription. |
GET | /v1/billing/subscriptions/{subscriptionId}/invoices | Get subscription invoices. |
POST | /v1/billing/subscriptions/{subscriptionId}/pause | Pause a subscription. |
POST | /v1/billing/subscriptions/{subscriptionId}/unlink | Unassign a subscription from this environment. |
POST | /v1/billing/subscriptions/{subscriptionId}/unpause | Unpause (reactivate) a subscription. |
GET | /v1/billing/wallet | Get wallet. |
PUT | /v1/billing/wallet/auto-recharge | Update auto recharge. |
POST | /v1/billing/wallet/recharge | Recharge wallet. |
GET | /v1/billing/wallet/transactions | Get wallet transactions. |
OAuth authorization 31 endpoints
Connect a connection to a SaaS account with OAuth. The browser follows metadata to the provider, which redirects back to callback; revoke disconnects. Callbacks take no bearer token.
| Method | Path | Description |
|---|---|---|
GET | /v1/io/oauth/amazon/seller/callback | Process authentication callback. |
GET | /v1/io/oauth/amazon/seller/callback/oauth-redirect | Redirect to custom app OAuth screen. |
GET | /v1/io/oauth/amazon/seller/metadata | Get Amazon Seller connector metadata. |
GET | /v1/io/oauth/atlassian/callback | Process authentication callback. |
GET | /v1/io/oauth/atlassian/metadata | Get Atlassian connector metadata. |
GET | /v1/io/oauth/dropbox/callback | Process authentication callback. |
GET | /v1/io/oauth/dropbox/metadata | Get Dropbox connector metadata. |
POST | /v1/io/oauth/dropbox/revoke | Revoke OAuth token. |
GET | /v1/io/oauth/facebook/callback | Process authentication callback. |
GET | /v1/io/oauth/facebook/metadata | Get Facebook connector metadata. |
POST | /v1/io/oauth/facebook/revoke | Revoke OAuth token. |
GET | /v1/io/oauth/google/callback | Process authentication callback. |
GET | /v1/io/oauth/google/metadata | Get Google connector metadata. |
POST | /v1/io/oauth/google/revoke | Revoke OAuth token. |
GET | /v1/io/oauth/hubspot/callback | Process authentication callback. |
GET | /v1/io/oauth/hubspot/metadata | Get HubSpot connector metadata. |
POST | /v1/io/oauth/hubspot/revoke | Revoke OAuth token. |
GET | /v1/io/oauth/mailchimp/callback | Process authentication callback. |
GET | /v1/io/oauth/mailchimp/metadata | Get Mailchimp connector metadata. |
GET | /v1/io/oauth/microsoft/callback | Process authentication callback. |
GET | /v1/io/oauth/microsoft/metadata | Get Microsoft connector metadata. |
POST | /v1/io/oauth/microsoft/revoke | Revoke OAuth token. |
GET | /v1/io/oauth/quickbooks/callback | Process authentication callback. |
POST | /v1/io/oauth/quickbooks/consent-url | Get OAuth consent screen URL. |
POST | /v1/io/oauth/quickbooks/revoke | Revoke OAuth token. |
GET | /v1/io/oauth/zoho/callback | Process authentication callback. |
GET | /v1/io/oauth/zoho/callback/custom-app | Redirect to custom app OAuth screen. |
GET | /v1/io/oauth/zoho/metadata | Get ZOHO connector metadata. |
GET | /v1/salesforce/callback | Process authentication callback. |
GET | /v1/salesforce/metadata | Get salesforce connector metadata. |
POST | /v1/salesforce/revoke | Revoke OAuth token. |
Single sign-on 15 endpoints
SAML and OpenID Connect sign-in and the social sign-in providers. These are browser redirect flows and take no bearer token.
| Method | Path | Description |
|---|---|---|
POST | /v1/social-auth/exchange | Exchange a completed social sign-in for a token. |
POST | /v1/social-auth/link | Link a social sign-in to an existing account. |
GET | /v1/social-auth/pending/{ticket} | State of a social sign-in in progress. |
POST | /v1/social-auth/signup | Sign up with a social account. |
GET | /v1/social-auth/{provider}/callback | Social sign-in callback from the provider. |
GET | /v1/social-auth/{provider}/start | Start social sign-in with a provider. |
GET | /v1/sso/callback | SSO callback from the identity provider. |
POST | /v1/sso/callback | SSO callback where the identity provider posts its token. |
POST | /v1/sso/exchange | Exchange a one-time SSO ticket for a session. |
GET | /v1/sso/logout | Finish an SSO logout. |
GET | /v1/sso/logout/start | Start logout using the provider which is enabled now. |
GET | /v1/sso/oidc/callback | Process the direct OpenID Connect callback. |
GET | /v1/sso/oidc/logout | Finish the local session at the provider when RP-initiated logout is available. |
GET | /v1/sso/oidc/start | Start a direct OpenID Connect authorization-code flow. |
GET | /v1/sso/pending/{ticket} | Details shown before exchanging an SSO ticket. |
Sign-up and passwords 9 endpoints
Account sign-up, accepting an invitation, and password reset by emailed link. No bearer token, except changing your own password.
| Method | Path | Description |
|---|---|---|
POST | /v1/passreset | Set a new password with a reset token. |
POST | /v1/passreset/token | Check a password reset token. |
POST | /v1/passreset/{email} | Request a password reset email. |
POST | /v1/passupdate | Change your own password. |
GET | /v1/signup | Check if signup is allowed and get login page config. |
POST | /v1/signup | Sign up a new tenant and its administrator. |
GET | /v1/signup/invite | Get the user invite for a given token. |
POST | /v1/signup/invite | Finish user setup for a given invite. |
GET | /v1/signup/metadata | Get the signup metadata. |
Agent protocol 14 endpoints
How an Integration Agent talks to the application: configuration, polling for actions, uploading results, logs and dbt artifacts. The Agent authenticates with its own credentials in Authorization and identifies the connection with X-Agent-Session, not with a user token. Listed for completeness; manage Agents with the Agents endpoints instead.
| Method | Path | Description |
|---|---|---|
POST | /v1/agents/socket/{agentId} | Agent fetches its configuration. |
GET | /v1/agents/socket/{agentId}/actions | Agent polls for pending actions. |
POST | /v1/agents/socket/{agentId}/actions/{actionId} | Agent reports the result of an action. |
GET | /v1/agents/socket/{agentId}/actions/{actionId}/download/{fileUuid} | Agent downloads a file for an action. |
POST | /v1/agents/socket/{agentId}/audit | Agent uploads flow execution statistics. |
POST | /v1/agents/socket/{agentId}/audit/{auditId} | Agent uploads an execution log. |
POST | /v1/agents/socket/{agentId}/audit/{auditId}/dbt/artifact | Agent uploads a dbt artifact. |
POST | /v1/agents/socket/{agentId}/audit/{auditId}/dbt/finalize | Agent finishes a dbt artifact upload. |
GET | /v1/agents/socket/{agentId}/dbt/input/{token} | Agent downloads the input of a dbt run. |
POST | /v1/agents/socket/{agentId}/explorer-data-logs/{executionId} | Agent uploads an Explorer data log. |
POST | /v1/agents/socket/{agentId}/notify | Agent asks the application to send an email. |
POST | /v1/agents/socket/{agentId}/ping | Agent heartbeat with metrics. |
POST | /v1/agents/socket/{agentId}/updater-ping | Agent updater heartbeat. |
POST | /v1/agents/socket/{agentId}/updater-status | Agent updater reports its status. |
Cluster coordination 13 endpoints
Draining, replacing and reconciling application nodes in a managed cluster. Used by the cluster tooling and the host CLI during upgrades; Super Admin.
| Method | Path | Description |
|---|---|---|
POST | /v1/system/member/bootstrap | Bootstrap a managed cluster member. |
GET | /v1/system/member/drain | Drain status of this node. |
POST | /v1/system/member/drain | Drain this node: stop taking new work. |
GET | /v1/system/member/drain-plan/{operation} | Inspect a drain plan. |
POST | /v1/system/member/drain-plan/{operation} | Prepare a drain plan. |
POST | /v1/system/member/drain-plan/{operation}/advance | Advance a drain plan to its next step. |
POST | /v1/system/member/flows/{flowId} | Run a flow on this node. |
GET | /v1/system/member/identity | Managed identity of this node. |
POST | /v1/system/member/identity/adopt | Adopt a managed identity. |
POST | /v1/system/member/lost | Confirm a cluster member is lost. |
POST | /v1/system/member/reconcile | Reconcile this node with the cluster. |
GET | /v1/system/member/replacements/{item} | Receipt of a node replacement. |
POST | /v1/system/member/replacements/{item} | Accept a node replacement. |
Internal 3 endpoints
Calls from the ETL engine back into the application, for example when a flow runs an application-side step. Authenticated with an internal token, not a user token.
| Method | Path | Description |
|---|---|---|
POST | /v1/internal/app-flows/cancel | Cancel an application-side flow step. |
POST | /v1/internal/app-flows/invoke | Run an application-side flow step for the engine. |
POST | /v1/internal/app-flows/status | Status of an application-side flow step. |
Website and support desk 11 endpoints
Endpoints behind the etlworks.com website (the public chat and the contact forms) and the support-desk integration. No bearer token.
| Method | Path | Description |
|---|---|---|
POST | /v1/ai-agent/zendesk/ticket-webhook | Receive a new support ticket for an AI-drafted answer. |
POST | /v1/mailer/sales | Send email to sales. |
POST | /v1/mailer/sales-json | Send arbitrary email to sales. |
POST | /v1/mailer/support | Send email to support. |
POST | /v1/mailer/support-json | Send arbitrary email to support. |
GET | /v1/public/agent/info | Configuration of the website chat. |
POST | /v1/public/agent/sessions | Start a website chat session. |
DELETE | /v1/public/agent/sessions/{id} | End a website chat session. |
POST | /v1/public/agent/sessions/{id}/chat/stream | Send a website chat message; the reply streams as Server-Sent Events. |
GET | /v1/public/zendesk/solve | Confirmation page for solving a support ticket from an emailed link. |
POST | /v1/public/zendesk/solve | Solve a support ticket from an emailed link. |
AI Agent API Separate subsite
The AI agent (Simba) has its own API surface, distinct from the platform CRUD endpoints. Documented separately:
This reference lists every REST endpoint of the application. The groups under Not for automation (billing, OAuth and SSO redirects, sign-up and password reset, the Integration Agent protocol, cluster coordination, internal calls, and the etlworks.com website) exist and can be called, but they are meant for the browser, the Agent or the platform itself, and each group says who calls it. The AI Agent API and the MCP server have their own documentation. Endpoints that mainly serve the application’s screens (recent lists, editor helpers, dashboard widgets) change more often than the rest. Missing something? Email product@etlworks.com.