Skip to content

Use the quick send endpoint when the body should be forwarded without transformation and the request needs only query-string delivery controls.

POST https://api.stormedo.com/send
Header Required Description
Authorization: Bearer <token> Yes Project API key used to authenticate with Stormedo. It is never forwarded.
Content-Type No Forwarded unchanged to the destination. Maximum 255 bytes.
Idempotency-Key No Stable project-scoped key containing 1 to 255 bytes. Retained for 24 hours.
X-Forward-<name> No Sends <name> to the destination. For example, X-Forward-Authorization becomes Authorization.

Stormedo accepts up to 64 destination headers with at most 32 KiB of combined names and values. Transport-controlled headers and Stormedo-* delivery headers cannot be supplied.

Parameter Required Default Description
url Yes None Public HTTPS destination, up to 2048 bytes. Credentials and fragments are not allowed.
method No POST Destination method: GET, POST, PUT, PATCH, or DELETE.
retry No 0 Additional retries after the first attempt, from 0 through 19.
delay No Immediate Relative delay from 1s through 30d. Use an integer followed by s, m, h, or d.
deliver_at No Immediate RFC 3339 delivery time within 30 days of the current time. Cannot be combined with delay.
timeout No 50s Per-attempt timeout from 1s through 5m. Whole seconds and minutes are accepted.
queue No default Queue label containing 1 to 64 letters, numbers, dots, hyphens, or underscores.

retry=3 allows four total attempts: the first attempt and up to three retries.

A valid deliver_at timestamp that is already in the past starts delivery immediately.

The complete incoming body is forwarded as exact bytes and may contain up to 256 KiB. Stormedo does not parse or re-serialize it.

Terminal window
curl --request POST \
'https://api.stormedo.com/send?url=https://your-app.example/webhooks/orders&retry=3&timeout=45s' \
--header "Authorization: Bearer $STORMEDO_TOKEN" \
--header 'Content-Type: application/json' \
--header 'X-Forward-Authorization: Bearer destination-token' \
--data '{"type":"order.created","order_id":"ord_123"}'

The destination receives the JSON body, Content-Type, and destination Authorization header. It does not receive the Stormedo project API key.

Stormedo returns 202 Accepted after durable handoff:

{
"success": true,
"data": {
"id": "req_33uZSQsVaf8aZjDuzkuAq",
"project_id": "prj_2Z5mQe7cB9kP4sV8xH1nD",
"replayed_from_request_id": null,
"status": "queued",
"scheduled_at": null,
"created_at": "2026-08-28T10:15:30Z"
},
"error": null,
"meta": null,
"request_id": "95c07a5c-3d44-4b89-84a6-c5a71313bff2"
}

Delayed requests initially use status: "scheduled" and include an absolute scheduled_at value. A 202 response confirms acceptance, not destination completion.

Status When it occurs
401 The project API key is missing or invalid.
409 The idempotency key was already used with different request input.
413 The HTTP body exceeds 256 KiB.
422 The destination, method, timing, timeout, headers, queue, or key is invalid.
429 The workspace monthly request allowance has been reached.
502 or 503 Stormedo could not durably accept the request.

Continue with Read requests to retrieve request state and completed attempts.