Sume schedule invoke command: check the host before you paste it
The curl command on a Sume schedule's trigger card uses api.dev.sume.com when you copy it from a *.dev.sume.com dashboard. Check the host before production.

The trigger card on a schedule shows the invoke endpoint, the scopes and a copyable request. The Create a schedule page warns about one detail: the host depends on the dashboard you copied it from.
| Dashboard host | Invoke host in the copied command |
|---|---|
| Any *.dev.sume.com host | https://api.dev.sume.com |
| All other dashboards | https://api.sume.com |
Why it bites
A key made for one environment does not belong in the other, and a schedule id from a development workspace does not exist in production. Pasting a dev command into production code gives a 404 or 403, depending on the key. Pasting a production key into a dev command sends a real credential to the wrong host. The docs say to examine the host before you paste a copied command into production code.
A habit that avoids it
Read the schedule's invoke_url from GET /v1/actions/{action_id} instead of copying shell text: the object carries it. Keep the base URL in one environment variable, and fail your deploy if it is not https://api.sume.com in production.
The command itself needs three things: the key, Content-Type: application/json and an Idempotency-Key, plus a body of {} when the schedule needs no input.
export SUME_API_BASE="https://api.sume.com"
case "$SUME_API_BASE" in
*dev*) echo "dev host in production config" >&2; exit 1;;
esac
curl -sS -X POST "$SUME_API_BASE/v1/actions/$ACTION_ID/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{}'For the full list of errors the invoke path returns, see Advanced: run a schedule via API.
Sources
Related posts
More in Developers
- Sume schedule run input limits: 64 properties and 2 MiB
The input object on a Sume schedule or Agent Completion run takes up to 64 properties and 2 MiB of UTF-8. Where it lands and how to keep large data out of it.
- Sume SDK error classes: HTTP status, class and action in TypeScript
Map 401, 402, 403, 404, 409, 429 and 5xx to the SumeApiError subclass and the right action, and read code, requestId, retryable and retryAfterSeconds.
- Sume SDK retries: which requests it repeats and how long it waits
createSumeClient retries 408, 429 and 5xx up to maxRetries (default 2), honours retry-after up to 60 seconds, and replays a POST only with an Idempotency-Key.
- Sume STT silence split: it only runs after the last sentence end
Sume STT cuts at terminal punctuation first; the 0.5 s silence rule only splits the unpunctuated run after the last terminal, not earlier pauses.
Written by Sume