Cancel a workflow’s waiting runs
This page needs your own installation with an Embed license.
POST/
Cancels all of a workflow’s runs waiting in line, in one step.
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.
What it takes, and what it leaves
Every run that hasn’t started, the customer’s test runs too. Each becomes cancelled with no duration. Runs that started are left: cancel those one by one. A run a worker takes at that moment is either cancelled or runs, never both.
The account’s audit log gets one embed.run.cancel row with the count, or none when nothing waited.
Responses
- 200OK
How many were cancelled; 0 when none waited.
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
CONFLICTA request with this
Idempotency-Keyis still running. Retry shortly. 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/cancel-waiting"
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}/` +
`cancel-waiting`,
{
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}/"
f"cancel-waiting",
headers={
"Authorization": f"Bearer {KEY}",
"Idempotency-Key": str(uuid.uuid4()),
},
)
data = res.json()["data"]Response · 200 OK
{
"data": {
"cancelled": 3
}
}Every field
It takes no body.
Response · 200 OK
dataobjectcancelledintegerThe runs this call took out of the line and settled
cancelled.