Send your first request
This quickstart sends a JSON message to Stormedo’s test destination. You will create one durable request, follow its delivery state, and inspect the completed attempt.
Before you begin
Section titled “Before you begin”You need a Stormedo account, a project, and a project API key. You do not need to create a destination endpoint for this quickstart.
Keep the API key in server-side configuration. The examples use STORMEDO_TOKEN:
export STORMEDO_TOKEN='sm_key_...'1. Create a durable request
Section titled “1. Create a durable request”Send a message to Stormedo’s test destination:
curl --request POST \ 'https://api.stormedo.com/send?url=https://api.stormedo.com/ping&retry=3' \ --header "Authorization: Bearer $STORMEDO_TOKEN" \ --header 'Content-Type: application/json' \ --data '{"message":"Hello from Stormedo"}'Stormedo stores the request before starting delivery. The test destination accepts the JSON body and returns 200 OK, so the request should succeed on its first attempt. If a temporary failure occurs, retry=3 allows up to three retries.
2. Keep the request ID
Section titled “2. Keep the request ID”Stormedo responds with 202 Accepted:
{ "success": true, "data": { "id": "req_33uZSQsVaf8aZjDuzkuAq", "project_id": "prj_2Z5mQe7cB9kP4sV8xH1nD", "replayed_from_request_id": null, "status": "queued", "scheduled_at": null, "created_at": "2026-08-24T10:15:30Z" }, "error": null, "meta": null, "request_id": "95c07a5c-3d44-4b89-84a6-c5a71313bff2"}data.id identifies the durable request and every delivery attempt that belongs to it. Keep this req_... value when logging or storing the operation in your application.
The top-level request_id identifies only this API call and is useful when contacting Stormedo support.
3. Follow the delivery
Section titled “3. Follow the delivery”Open Requests in the Stormedo dashboard and search for the data.id value.
The test request should reach succeeded after one attempt. You may briefly see queued or delivering before it completes:
queued → delivering → succeededA newly accepted request can take a short time to appear in request history.
4. Inspect the attempt
Section titled “4. Inspect the attempt”Open the request in the dashboard to see its destination, timing, and completed attempt. A successful test delivery shows an HTTP 200 response with no retry scheduled.
The attempt confirms that Stormedo delivered the request. The earlier 202 Accepted response confirmed only that Stormedo accepted responsibility for it.
Send to your application
Section titled “Send to your application”Replace https://api.stormedo.com/ping in the url parameter with your public destination URL. Stormedo will deliver the same body and Content-Type to that endpoint.
For application code, continue with the JavaScript SDK or Python SDK. For direct HTTP integration, see Send a request. To understand other outcomes, read Request lifecycle and Retries.