Disable a workflow
This page needs your own installation with an Embed license.
POST/
Turns a workflow’s trigger off. It keeps its published version and can be enabled again.
Needs a partner key: Authorization: Bearer gre_…, from Platform › Partner keys. Call it from your server only.
Parameters
Path
accountIdRequired · stringYour ID for the customer’s account: 1 to 255 bytes of UTF-8, case-sensitive. URL-encode it: it may contain
/.workflowIdRequired · UUIDThe workflow’s ID, as the install or the list answered it.
Headers
Idempotency-KeyOptional · stringUp to 255 characters. The same request with the same key within 24 hours answers the first result again, with
Idempotency-Replayed: true.
Runs waiting in line
They stay. Cancel them too if you don’t want them to run.
Responses
- 200OK
The workflow. Disabling one that isn’t live changes nothing.
The account ID isn’t allowed as written.
details.fieldnames it.- 404
NOT_FOUNDNo such account, or no such workflow in it.
The account is deleted. Restore it first, within 30 days.
- 409
CONFLICTAnother change to this workflow is being saved. Try again in a moment.
This
Idempotency-Keywas already used with a different request.Something failed on the installation’s side. Try again.
Any call can also answer: 401 UNAUTHORIZED · 403 EMBED_NOT_LICENSED · 403 IP_NOT_ALLOWED · 413 PAYLOAD_TOO_LARGE · 415 INVALID_CONTENT_TYPE · 429 RATE_LIMITED · 503 BUSY. See Errors.
Request
GORUNNER="https://automations.example.com"
GORUNNER_EMBED_KEY="YOUR_PARTNER_KEY" # gre_…
ACCOUNT_ID="acct-bakery"
WORKFLOW_ID="your-workflow-id"
URL="$GORUNNER/api/embed/v1/accounts/$ACCOUNT_ID/"
URL="${URL}workflows/$WORKFLOW_ID/disable"
curl -X POST "$URL" \
-H "Authorization: Bearer $GORUNNER_EMBED_KEY" \
-H "Idempotency-Key: $(uuidgen)"const GORUNNER = "https://automations.example.com";
const KEY = process.env.GORUNNER_EMBED_KEY; // gre_…
const ACCOUNT_ID = encodeURIComponent("acct-bakery");
const WORKFLOW_ID = encodeURIComponent("your-workflow-id");
const res = await fetch(
`${GORUNNER}/api/embed/v1/accounts/` +
`${ACCOUNT_ID}/workflows/${WORKFLOW_ID}/` +
`disable`,
{
method: "POST",
headers: {
Authorization: `Bearer ${KEY}`,
"Idempotency-Key": crypto.randomUUID(),
},
},
);
const { data } = await res.json();import os, uuid, requests
from urllib.parse import quote
GORUNNER = "https://automations.example.com"
KEY = os.environ["GORUNNER_EMBED_KEY"] # gre_…
ACCOUNT_ID = quote("acct-bakery", safe="")
WORKFLOW_ID = quote("your-workflow-id", safe="")
res = requests.post(
f"{GORUNNER}/api/embed/v1/accounts/"
f"{ACCOUNT_ID}/workflows/{WORKFLOW_ID}/disable",
headers={
"Authorization": f"Bearer {KEY}",
"Idempotency-Key": str(uuid.uuid4()),
},
)
data = res.json()["data"]Response · 200 OK
{
"data": {
"id": "3b1e5c2a-7d4f-4e8b-a1c6-5f2d9b0e7a31",
"name": "New orders to Sheets",
"description": "Adds each new order as a row.",
"status": "paused",
"triggerType": "webhook",
"workspace": {
"id": null,
"default": true
},
"templateId": "9c4e2a17-3d5b-4f86-b0e2-8a1c7d3f5e29",
"createdAt": "2026-10-20T08:00:00Z",
"updatedAt": "2026-10-25T09:00:00Z"
}
}Every field
It takes no body.
Response · 200 OK
dataobjectidUUIDnamestringdescriptionstringstatusstringdraft: never published;live: its trigger is on;paused: published, trigger off.One of
draft,live,paused.triggerTypestringworkspaceobjectidstring or nullThe partner’s workspace id; null for the default workspace.
defaultbooleantemplateIdUUID or nullThe template it was installed from.
webhookUrlURLWhere this workflow takes deliveries (
POST /api/webhooks/{token}): on a webhook-triggered workflow, once its first publish or save has made the address, and only in the two reads,GET .../workflowsandGET .../workflows/{workflowId}(Cache-Control: no-store), never in a write’s answer, which anIdempotency-Keycan keep for a day. It takes deliveries while the workflow isliveand answers 404 otherwise. It starts production runs with no other credential: hold it as you hold this key. It stays the same across enable and disable, and changes only when a token rotates it (POST /api/workflows/{id}/webhook/rotate). Absent otherwise.createdAttimeupdatedAttime