Take the workflow offline
Requires scope
workflow:publishSets status to paused. Triggers stop firing: the scheduler skips it, and its public webhook URL answers 404 to the outside world.
What a caller must know:
- The webhook token is NOT revoked or changed — it is retained so re-publishing restores the same public URL. Only
POST /api/workflows/{id}/webhook/rotaterevokes it. latestVersionIdand the version history are untouched; the draft is untouched.- Any self-registered external webhook is de-registered with the provider (best-effort — a provider error is logged, never surfaced).
- Any polling-trigger baseline is reset, so a later re-publish starts from "now" rather than replaying everything that happened while paused.
- Runs already in flight are not cancelled.
- No request body is read. Repeating it on an already-paused workflow is a 200 no-op, which is why it carries no
Idempotency-Key.
Authorization
bearerAuth AuthorizationBearer <token>
An API token: Authorization: Bearer grt_…. Mint one in the app under Settings → Workspace → API tokens; the raw value is shown once. Scopes confine the token — see x-permission on each operation.
In: header
Path Parameters
id*string
Workflow id (UUID).
Format
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/workflows/497f6eca-6276-4993-bfeb-53cbbbba6f08/unpublish"{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "description": "string", "definition": { "schemaVersion": 2, "trigger": { "name": "string", "displayName": "string", "type": "manual", "pieceId": "string", "pieceVersion": "string", "actionId": "string", "config": {}, "connectionId": "string", "valid": true, "nextAction": { "name": "string", "displayName": "string", "type": "PIECE", "pieceId": "string", "pieceVersion": "string", "actionId": "string", "config": {}, "connectionId": "string", "valid": true, "skip": true, "nextAction": {}, "branches": [ { "name": "string", "conditions": [ [ { "field": "string", "operator": "string", "value": null } ] ], "firstAction": {} } ], "firstLoopAction": {}, "onErrorAction": {} } }, "settings": { "timeoutSeconds": 0, "errorWorkflowId": "string", "concurrencyLimit": 0, "maintenanceMode": true, "autoPublishFixes": true }, "variables": {}, "annotations": null, "pinnedData": {} }, "status": "draft", "triggerType": "manual", "cronExpression": "string", "webhookToken": "string", "latestVersionId": "750445c5-7ad9-40bd-a593-bb37d7d846db", "definitionRev": 0, "hasUnpublishedChanges": true, "folderId": "5b6379a4-2a6c-4085-b184-45838a3b8e7e", "tags": [ "string" ], "testPayloads": {}, "pinnedData": {}, "workspaceId": "ef0efa32-d1c1-43d4-a5e2-fe7b4f00403c", "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa", "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}