Read requests and attempts
Read endpoints use the project selected by the bearer API key. A request belonging to another project is returned as 404 Not Found.
List requests
Section titled “List requests”GET https://api.stormedo.com/requestsQuery parameters
Section titled “Query parameters”| Parameter | Description |
|---|---|
status |
scheduled, queued, delivering, succeeded, failed, or cancelled. |
search |
Exact req_ ID or case-insensitive destination URL fragment, up to 2048 bytes. |
method |
GET, POST, PUT, PATCH, or DELETE. |
source |
api, recurring, or replay. |
from |
Inclusive RFC 3339 creation-time boundary. |
to |
Exclusive RFC 3339 creation-time boundary. Must be later than from. |
cursor |
Opaque cursor returned by the previous page. |
limit |
Items per page from 1 through 100. Defaults to 50. |
Requests are ordered newest first.
curl \ 'https://api.stormedo.com/requests?status=failed&method=POST&limit=25' \ --header "Authorization: Bearer $STORMEDO_TOKEN"Response
Section titled “Response”{ "success": true, "data": { "items": [ { "id": "req_33uZSQsVaf8aZjDuzkuAq", "replayed_from_request_id": null, "schedule_id": null, "url": "https://your-app.example/webhooks/orders", "method": "POST", "queue": "default", "status": "failed", "scheduled_at": null, "created_at": "2026-08-28T10:15:30Z", "started_at": "2026-08-28T10:15:31Z", "completed_at": "2026-08-28T10:16:20Z" } ], "next_cursor": "AZv4h7Q2AACW2hJvR8WmC1p0YK9sP3nLqT5eX8aB2cQ", "history_retention_days": 30, "history_cutoff_at": "2026-07-29T10:20:00Z", "has_hidden_history": false }, "error": null, "meta": null, "request_id": "95c07a5c-3d44-4b89-84a6-c5a71313bff2"}Pass next_cursor unchanged to retrieve the next page. A null cursor means there is no next page.
Terminal history older than the workspace retention period is not returned. Active requests remain visible even when they were created before the cutoff.
Retrieve a request
Section titled “Retrieve a request”GET https://api.stormedo.com/requests/{request_id}curl \ 'https://api.stormedo.com/requests/req_33uZSQsVaf8aZjDuzkuAq' \ --header "Authorization: Bearer $STORMEDO_TOKEN"The response includes the request definition, lifecycle timestamps, metadata, header names with redacted values, and completed attempts:
{ "success": true, "data": { "id": "req_33uZSQsVaf8aZjDuzkuAq", "replayed_from_request_id": null, "schedule_id": null, "url": "https://your-app.example/webhooks/orders", "method": "POST", "max_attempts": 4, "timeout_seconds": 45, "queue": "default", "metadata": { "order_id": "ord_123" }, "content_type": "application/json", "headers": { "authorization": "[REDACTED]" }, "status": "succeeded", "scheduled_at": null, "created_at": "2026-08-28T10:15:30Z", "updated_at": "2026-08-28T10:15:32Z", "started_at": "2026-08-28T10:15:31Z", "completed_at": "2026-08-28T10:15:32Z", "cancelled_at": null, "attempts": [ { "attempt_number": 1, "status": "succeeded", "response_status_code": 204, "error_message": null, "duration_ms": 412, "started_at": "2026-08-28T10:15:31Z", "completed_at": "2026-08-28T10:15:32Z", "retry": null } ] }, "error": null, "meta": null, "request_id": "95c07a5c-3d44-4b89-84a6-c5a71313bff2"}Request history omits delivery bodies and redacts destination header values. Schedule detail returns its configured JSON body.
List completed attempts
Section titled “List completed attempts”GET https://api.stormedo.com/requests/{request_id}/attemptsThis endpoint returns the same completed attempt objects without the surrounding request definition. The 200 response wraps them in data; before the first attempt completes it is:
{ "success": true, "data": [], "error": null, "meta": null, "request_id": "95c07a5c-3d44-4b89-84a6-c5a71313bff2"}After an attempt completes, data contains the attempt objects shown in the detail example above. Attempts are completed records, so an in-flight attempt is not included yet.
When another attempt is scheduled, retry contains the decision:
{ "reason": "http_429", "retry_after_raw": "120", "retry_after_truncated": false, "retry_after_escaped": false, "retry_after_status": "valid", "retry_after_delay_ms": 120000, "backoff_delay_ms": 1000, "selected_delay_ms": 120000, "delay_source": "retry_after", "next_attempt_at": "2026-08-28T10:17:32Z"}Consistency and errors
Section titled “Consistency and errors”A newly accepted request can take a short time to appear in list and detail responses. The original 202 Accepted response remains confirmation that Stormedo accepted it durably. For an initial 404, retry the read once per second for up to 30 seconds, then stop and investigate the project, ID, and history window. This is a diagnostic bound, not a promised projection deadline; do not create replacement work because a read is temporarily missing.
401indicates a missing or invalid API key.404indicates a missing, malformed, cross-project, or expired-retention request ID.422indicates invalid filters, timestamps, cursor, method, or limit.