API and MCP

Endpoint list

Every /api/v1 operation with its method, path and required permission — generated from the API registry.

208 operations, generated from the same registry as the OpenAPI document. Try them in the API Explorer.

Identity

MethodPathSummaryPermission
GET/api/v1/meDescribe the calling credential: tenant, user, auth kind and permissionsany
GET/api/v1/openapi.jsonOpenAPI 3.1 document for this APIpublic

Workflows

MethodPathSummaryPermission
GET/api/v1/workflowsList workflowsworkflows.view
GET/api/v1/workflows/{id}Get a workflow with its recent runsworkflows.view
POST/api/v1/workflowsCreate a workflow from nodes and edgesworkflows.edit
GET/api/v1/workflows/{id}/definitionGet the draft definition in author-payload shape (edit it and send it back to PATCH /workflows/{id})workflows.view
PATCH/api/v1/workflows/{id}Save draft changes to a workflow (publish separately, or with publish: true)workflows.edit
POST/api/v1/workflows/{id}/publishPublish the draft as a new version (runs use it) and activate the workflowworkflows.activate
POST/api/v1/workflows/startStart a workflow run (sync, or async via the queue)workflows.activate
GET/api/v1/workflows/{id}/inputsGet the input parameters a workflow run acceptsworkflows.view
POST/api/v1/workflows/events/{id}/completeResume a run waiting on an external eventworkflows.activate
GET/api/v1/workflows/runsList workflow runsworkflows.view_runs
GET/api/v1/workflows/runs/{id}Get a workflow run with its logsworkflows.view_runs
POST/api/v1/workflows/runs/{id}/actionPause, resume or cancel a runworkflows.activate
GET/api/v1/workflows/queueList queued workflow jobsworkflows.view_runs
POST/api/v1/workflows/queue/{id}/actionCancel or retry a queued jobworkflows.activate
DELETE/api/v1/workflows/{id}Delete a workflow (queued: its versions, runs and spawned tasks go with it)workflows.delete
POST/api/v1/workflows/{id}/activateActivate a workflow (it responds to its trigger)workflows.activate
POST/api/v1/workflows/{id}/deactivateDeactivate a workflow (its trigger is paused)workflows.activate
GET/api/v1/workflows/{id}/versionsList published versions of a workflow (newest first)workflows.view
GET/api/v1/workflows/{id}/versions/{versionId}Get one published version with its full definitionworkflows.view
GET/api/v1/workflows/{id}/instancesList live instances (waiting or paused runs) with their current node and versionworkflows.view_runs
POST/api/v1/workflows/{id}/instances/migrateMigrate live instances to another version (or dry-run the plan)workflows.manage_runs

Tasks

MethodPathSummaryPermission
GET/api/v1/tasksList taskstasks.view_all
GET/api/v1/tasks/assignedList open tasks assigned to a user or teamtasks.view_all
GET/api/v1/tasks/{id}Get a tasktasks.view_all
PATCH/api/v1/tasks/{id}Update task fields and User Task field valuestasks.complete
POST/api/v1/tasks/{id}/actionAccept, hold, reject, complete, escalate or redirect a tasktasks.complete
POST/api/v1/tasks/ingestCreate a task (with optional subtasks) from an external systemtasks.create

Agents

MethodPathSummaryPermission
GET/api/v1/agentsList agentsagents.view
POST/api/v1/agentsCreate an agentagents.create
GET/api/v1/agents/{id}Get an agentagents.view
PUT/api/v1/agents/{id}Update an agentagents.edit
PATCH/api/v1/agents/{id}Update an agent (same as PUT)agents.edit
DELETE/api/v1/agents/{id}Delete an agent (deactivates workflows that reference it)agents.delete
POST/api/v1/agents/{id}/executeRun an agent (sync, or async via the agent queue)agents.test
GET/api/v1/agents/queueList queued agent jobsagents.view

Decision tables

MethodPathSummaryPermission
GET/api/v1/decision-tablesList decision tablesworkflows.view
POST/api/v1/decision-tablesCreate a decision tableworkflows.edit
GET/api/v1/decision-tables/{id}Get a decision tableworkflows.view
PUT/api/v1/decision-tables/{id}Update a decision table (omitted fields are kept)workflows.edit
PATCH/api/v1/decision-tables/{id}Update a decision table (same as PUT)workflows.edit
DELETE/api/v1/decision-tables/{id}Delete a decision table (queued)workflows.delete
POST/api/v1/decision-tables/{id}/testEvaluate a decision table against input valuesworkflows.view
GET/api/v1/decision-tables/{id}/exportExport a decision table as portable JSONworkflows.view
POST/api/v1/decision-tables/importCreate a decision table from an export documentworkflows.create

Data tables

MethodPathSummaryPermission
GET/api/v1/data-tablesList data tablesdata.view
POST/api/v1/data-tablesCreate a data tabledata.create
GET/api/v1/data-tables/{id}Get a data table with its columnsdata.view
PATCH/api/v1/data-tables/{id}Rename a data table or replace its custom columnsdata.edit_schema
DELETE/api/v1/data-tables/{id}Delete a data table and all its rows (queued)data.delete
GET/api/v1/data-tables/{id}/rowsList or search rowsdata.view
POST/api/v1/data-tables/{id}/rowsInsert rows, or replace existing ones by row_id (single or bulk)data.manage_rows
GET/api/v1/data-tables/{id}/rows/{rowId}Get a rowdata.view
PATCH/api/v1/data-tables/{id}/rows/{rowId}Change cells of a row (others are kept)data.manage_rows
DELETE/api/v1/data-tables/{id}/rows/{rowId}Delete a row (queued; fires data_table_event "deleted" workflows)data.manage_rows
POST/api/v1/data-tables/{id}/rows/bulk-deleteDelete up to 500 rows of a table (queued); unknown ids are ignoreddata.manage_rows

Integrations

MethodPathSummaryPermission
GET/api/v1/integrationsList integrationsintegrations.view
POST/api/v1/integrationsCreate an integration (credentials are encrypted at rest)integrations.create
POST/api/v1/integrations/import-openapiCreate an integration with one reference per operation from an OpenAPI 2/3 or Postman documentintegrations.create
GET/api/v1/integrations/{id}Get an integration (masked config) with its referencesintegrations.view
PATCH/api/v1/integrations/{id}Update an integrationintegrations.edit
DELETE/api/v1/integrations/{id}Delete an integration and its referencesintegrations.delete
POST/api/v1/integrations/{id}/testTest the connection (GET base URL with the configured auth)integrations.test

References

MethodPathSummaryPermission
GET/api/v1/integrations/{id}/referencesList an integration's referencesintegrations.view
POST/api/v1/integrations/{id}/referencesCreate a reference on an integrationintegrations.manage_references
GET/api/v1/references/{id}Get a reference (request config, inputs, outputs, response model)integrations.view
PATCH/api/v1/references/{id}Update a referenceintegrations.manage_references
DELETE/api/v1/references/{id}Delete a referenceintegrations.manage_references
POST/api/v1/references/bulk-deleteDelete several references (ids outside the workspace are ignored)integrations.manage_references
POST/api/v1/references/{id}/executeCall a reference with input valuesintegrations.test

Objects

MethodPathSummaryPermission
GET/api/v1/objectsList composite objects with their sourcesintegrations.view
POST/api/v1/objectsCreate a composite object (also generates its callable reference)integrations.edit
GET/api/v1/objects/{id}Get a composite object with its sources and generated referencesintegrations.view
PATCH/api/v1/objects/{id}Update a composite object (name, description, or a full replacement source list)integrations.edit
DELETE/api/v1/objects/{id}Delete a composite object, its sources and generated referencesintegrations.delete

Connectors

MethodPathSummaryPermission
GET/api/v1/connectors/catalogList the built-in connector templatesintegrations.view
GET/api/v1/connectorsList enabled connectors (credentials masked)integrations.view
POST/api/v1/connectorsEnable a connector: creates its integration and templated referencesintegrations.create
GET/api/v1/connectors/{id}Get a connector with its template, integration and referencesintegrations.view
PATCH/api/v1/connectors/{id}Update connector config/credentials (merged) and keep its integration in stepintegrations.edit
DELETE/api/v1/connectors/{id}Delete a connector, its integration and generated referencesintegrations.delete
POST/api/v1/connectors/{id}/testRun the connector preflight and probe with its stored credentialsintegrations.test
POST/api/v1/connectors/{id}/enableRe-enable a connector and its integrationintegrations.edit
POST/api/v1/connectors/{id}/disableDisable a connector and deactivate its integrationintegrations.edit
POST/api/v1/connectors/{id}/regenerate-referencesReplace the generated references with the current template setintegrations.manage_references

Email templates

MethodPathSummaryPermission
GET/api/v1/email-templatesList email templates (without bodies)workflows.view
POST/api/v1/email-templatesCreate an email templateworkflows.create
GET/api/v1/email-templates/{id}Get an email template with its subject and bodiesworkflows.view
PATCH/api/v1/email-templates/{id}Update an email templateworkflows.edit
DELETE/api/v1/email-templates/{id}Delete an email template (409 for the default template)workflows.edit
POST/api/v1/email-templates/{id}/previewRender the subject and bodies with sample variables (nothing is sent)workflows.view

Workflow activities

MethodPathSummaryPermission
GET/api/v1/workflow-activitiesList custom workflow activities (without source code)extensibility.view
POST/api/v1/workflow-activitiesCreate a custom workflow activityextensibility.create
POST/api/v1/workflow-activities/importCreate an activity from a portable exportextensibility.create
GET/api/v1/workflow-activities/{id}Get an activity with source code, manifest and readiness findingsextensibility.view
PATCH/api/v1/workflow-activities/{id}Update an activity (omitted fields are kept)extensibility.edit
DELETE/api/v1/workflow-activities/{id}Delete an activityextensibility.delete
GET/api/v1/workflow-activities/{id}/exportExport an activity as portable JSON (accepted by POST /workflow-activities/import)extensibility.view

Reports

MethodPathSummaryPermission
GET/api/v1/reportsList saved reportsreports.view
POST/api/v1/reportsCreate a saved reportreports.create
GET/api/v1/reports/{id}Get a saved reportreports.view
PUT/api/v1/reports/{id}Update a saved reportreports.edit_own
PATCH/api/v1/reports/{id}Update a saved report (same as PUT)reports.edit_own
DELETE/api/v1/reports/{id}Delete a saved reportreports.delete
POST/api/v1/reports/previewRun a report configuration without saving itreports.view
GET/api/v1/reports/sourcesList report data sourcesreports.view
GET/api/v1/reports/{id}/exportExport a saved report as portable JSONreports.view
POST/api/v1/reports/importCreate a saved report from an export documentreports.create

Retention

MethodPathSummaryPermission
GET/api/v1/retention-policiesList retention policiessettings.view
POST/api/v1/retention-policiesCreate a retention policysettings.edit
GET/api/v1/retention-policies/{id}Get a retention policysettings.view
PUT/api/v1/retention-policies/{id}Update a retention policysettings.edit
PATCH/api/v1/retention-policies/{id}Update a retention policy (same as PUT)settings.edit
DELETE/api/v1/retention-policies/{id}Delete a retention policysettings.edit
GET/api/v1/retention-policies/{id}/assetsList assets governed by a retention policysettings.view
POST/api/v1/retention-policies/assignAssign (or clear) the retention policy on an assetsettings.edit

Roles & users

MethodPathSummaryPermission
GET/api/v1/rolesList system and custom roles with their permissionsteam.view_members
POST/api/v1/rolesCreate a custom roleteam.change_roles
GET/api/v1/roles/{id}Get a roleteam.view_members
PATCH/api/v1/roles/{id}Update a roleteam.change_roles
DELETE/api/v1/roles/{id}Delete a custom role (its assignments are removed; 409 for system roles)team.change_roles
GET/api/v1/usersList workspace usersteam.view_members
PUT/api/v1/users/{id}/roles/{roleId}Give a user a role (idempotent)team.change_roles
DELETE/api/v1/users/{id}/roles/{roleId}Remove a role from a userteam.change_roles

Teams

MethodPathSummaryPermission
GET/api/v1/teamsList teams with member countsteam.view_members
POST/api/v1/teamsCreate a teamteam.invite
GET/api/v1/teams/{id}Get a team with its membersteam.view_members
PATCH/api/v1/teams/{id}Update a teamteam.invite
DELETE/api/v1/teams/{id}Delete a team and its membershipsteam.remove
PUT/api/v1/teams/{id}/members/{userId}Add a user to a team (idempotent)team.invite
DELETE/api/v1/teams/{id}/members/{userId}Remove a user from a teamteam.remove

Invitations

MethodPathSummaryPermission
GET/api/v1/invitationsList invitations (pending by default)team.invite
POST/api/v1/invitationsInvite someone to the workspace by emailteam.invite
DELETE/api/v1/invitations/{id}Revoke an invitation (its link stops working)team.invite
POST/api/v1/invitations/{id}/resendEmail a pending invitation again with a fresh link and expiryteam.invite

Audit log

MethodPathSummaryPermission
GET/api/v1/audit-logQuery the object audit log (newest first)settings.view

Workspace theme

MethodPathSummaryPermission
GET/api/v1/workspace-themeGet the workspace theme (any member)any
PUT/api/v1/workspace-themeReplace the workspace themesettings.edit
POST/api/v1/workspace-theme/apply-presetReplace the workspace theme with a built-in templatesettings.edit
GET/api/v1/workspace-theme/presetsList the built-in theme templatesany
POST/api/v1/workspace-theme/fontsUpload a woff2 font for the workspace themesettings.edit

API keys

MethodPathSummaryPermission
GET/api/v1/api-keysList API keys (never the key itself)settings.manage_api_keys
POST/api/v1/api-keysCreate an API key (the key is shown once)settings.manage_api_keys
POST/api/v1/api-keys/{id}/revokeRevoke an API key (kept for history, stops authenticating)settings.manage_api_keys
DELETE/api/v1/api-keys/{id}Delete an API keysettings.manage_api_keys

Webhooks

MethodPathSummaryPermission
GET/api/v1/workflows/{id}/webhooksList the inbound webhooks of a workflow (secrets are never returned)settings.manage_webhooks
POST/api/v1/workflows/{id}/webhooksCreate an inbound webhook that triggers the workflowsettings.manage_webhooks
GET/api/v1/webhooks/{id}Get a webhook (the secret is never returned)settings.manage_webhooks
PATCH/api/v1/webhooks/{id}Update a webhook slug, payload mapping or active flagsettings.manage_webhooks
DELETE/api/v1/webhooks/{id}Delete a webhooksettings.manage_webhooks
POST/api/v1/webhooks/{id}/rotateReplace a webhook secret (the old one stops working)settings.manage_webhooks

GitHub sync

MethodPathSummaryPermission
GET/api/v1/github-sync/statusConnection status, pending changes and latest run/deploymentsync.view
POST/api/v1/github-sync/commitCommit pending changes to the repositorysync.manage
GET/api/v1/github-sync/runsList sync runssync.view
POST/api/v1/github-sync/runsEnqueue a full, pending-change or scoped syncsync.manage
GET/api/v1/github-sync/runs/{id}Get a sync runsync.view
POST/api/v1/github-sync/deployDeploy the repository manifest into this workspacesync.deploy
GET/api/v1/github-sync/deploymentsList deploymentssync.view
GET/api/v1/github-sync/deployments/{id}Get a deploymentsync.view
GET/api/v1/github-sync/scheduleGet the scheduled sync configurationsync.view
PUT/api/v1/github-sync/scheduleSet the scheduled sync configurationsync.manage
DELETE/api/v1/github-sync/scheduleDisable scheduled syncsync.manage

Directory sync

MethodPathSummaryPermission
GET/api/v1/directory-sync/connectionsList directory connections (Entra ID, Okta, LDAP, Google Workspace, SCIM) with sync statesettings.view
POST/api/v1/directory-sync/connectionsConnect a directory (the connection is verified before it is saved)settings.edit
GET/api/v1/directory-sync/connections/{provider}Get a directory connection (credentials masked)settings.view
PATCH/api/v1/directory-sync/connections/{provider}Update a directory connection (re-verified when settings or credentials change)settings.edit
DELETE/api/v1/directory-sync/connections/{provider}Disconnect a directory: syncing stops and credentials are removed (SCIM: every token is revoked). Links and accounts are kept.settings.edit
POST/api/v1/directory-sync/connections/{provider}/testTest a directory connection (optionally with unsaved settings/credentials)settings.edit
POST/api/v1/directory-sync/connections/{provider}/syncStart a sync run now (runs in the background)settings.edit
GET/api/v1/directory-sync/runsList directory sync runs, newest firstsettings.view
GET/api/v1/directory-sync/scim-tokensList SCIM tokens (never the tokens themselves)settings.view
POST/api/v1/directory-sync/scim-tokensCreate a SCIM token for the identity provider (shown once); enables SCIM provisioningsettings.edit
DELETE/api/v1/directory-sync/scim-tokens/{id}Revoke and delete a SCIM tokensettings.edit
POST/api/v1/directory-sync/scim-tokens/{id}/rotateReplace a SCIM token with a new one (same name and scopes); the old one stops working now or after grace_minutessettings.edit

Config

MethodPathSummaryPermission
GET/api/v1/config/exportExport workspace configuration as config-as-code filesany
POST/api/v1/config/applyApply config-as-code files (create or update; never deletes)any

Packages

MethodPathSummaryPermission
GET/api/v1/packagesList packages authored in this workspacepackages.view
POST/api/v1/packagesCreate a package from root artifacts (dependencies are included automatically)packages.manage
POST/api/v1/packages/previewPreview what a package of these roots would contain (dependencies and requirements)packages.view
POST/api/v1/packages/inspectVerify and describe a .utpkg file (nothing is installed)packages.view
GET/api/v1/packages/{id}Get a package and its recent versionspackages.view
PATCH/api/v1/packages/{id}Update a package (metadata, items, data modes)packages.manage
DELETE/api/v1/packages/{id}Delete a package and its built versions (installs elsewhere are unaffected)packages.manage
GET/api/v1/packages/{id}/contentsWhat the package contains now: artifacts (and why), data modes, requirementspackages.view
GET/api/v1/packages/{id}/versionsList built versions of a packagepackages.view
POST/api/v1/packages/{id}/versionsBuild, sign and publish a new version (.utpkg)packages.manage
GET/api/v1/packages/{id}/versions/{versionId}Get a built version (its manifest: requirements, files, checksum, signature)packages.view
GET/api/v1/packages/{id}/versions/{versionId}/downloadDownload a built version as a .utpkg file (base64 in JSON)packages.view
GET/api/v1/package-installsThe package library: installed packages with version, source and statuspackages.view
POST/api/v1/package-installs/planDry run: verify a package and show what installing or upgrading it would dopackages.view
POST/api/v1/package-installsInstall or upgrade a package (upgrade in place when it is installed already)packages.install
GET/api/v1/package-installs/{id}An installed package: requirement checklist and installed assetspackages.view
POST/api/v1/package-installs/{id}/upgradeUpgrade an installed package to the version in the file (dry_run for the diff)packages.install
POST/api/v1/package-installs/{id}/completeComplete setup: fill missing requirement values and enable what they unblockpackages.install
POST/api/v1/package-installs/{id}/uninstallUninstall: remove package-owned assets (dry_run lists them; locally changed assets and tables with rows are kept unless force / delete_data)packages.install
GET/api/v1/package-eventsPackage history: every install, upgrade, reconfigure (complete setup) and uninstall, failed attempts included (newest first)packages.view
GET/api/v1/package-events/{id}One package history event with the full plan / diff that was applied (secrets masked)packages.view

Events

MethodPathSummaryPermission
GET/api/v1/eventsList events from the unified event stream (oldest first, cursor paged)observability.view
GET/api/v1/events/streamStream events live (Server-Sent Events)observability.view

Log export

MethodPathSummaryPermission
GET/api/v1/log-destinationsList log export destinations (credentials masked)observability.view
POST/api/v1/log-destinationsCreate a log export destination (Splunk HEC, Datadog, OTLP/HTTP, webhook, syslog, Azure Monitor, Event Hubs, Cloud Logging, Pub/Sub, CloudWatch Logs)settings.edit
GET/api/v1/log-destinations/{id}Get a log export destination (credentials masked)observability.view
PATCH/api/v1/log-destinations/{id}Update a log export destinationsettings.edit
DELETE/api/v1/log-destinations/{id}Delete a log export destinationsettings.edit
POST/api/v1/log-destinations/{id}/reset-cursorMove a destination's cursor to now or to the start of retentionsettings.edit
GET/api/v1/log-destinations/{id}/statusDelivery status of a destination: lag, last success and last errorobservability.view
POST/api/v1/log-destinations/{id}/testSend one synthetic system.test event through the destination's formatter and connectionsettings.edit