API reference
Ten endpoints, documented the way you want yours documented.
Search, filter by resource group and expand any endpoint for parameters, response codes and a runnable example in four languages.
Base URL and authentication
Every request goes to the host for its environment and carries a bearer token. Keys are environment-scoped: a sandbox key cannot read production wakes, whatever scopes it holds.
curl https://api.flintwake.com/v2/wakes \
-H "Authorization: Bearer $FLINTWAKE_API_KEY" \
-H "Accept: application/json"Endpoints
Resource reference
10 of 10 endpoints
Returns a cursor-paginated list of wakes, newest first. Filters compose: every parameter you add narrows the result. Wakes are retained for the period configured on the environment.
Required scope:
wakes:readParameters
Parameters for GET /v2/wakes Name Type Description environmentstring Environment name. Defaults to the key's own environment. statusinteger Exact HTTP status to match, for example 500. status_classenum One of 2xx, 3xx, 4xx or 5xx. Mutually exclusive with status. pathstring Path template to match, for example /v2/payments/intents. consumerstring Consumer identifier or name. min_latency_msinteger Only return wakes slower than this many milliseconds. limitinteger Between 1 and 100. Defaults to 20. cursorstring Opaque cursor returned as next_cursor by the previous page. Responses
- 200A list of wakes with a cursor for the next page.
- 401The key is missing, malformed or revoked.
- 403The key does not carry the wakes:read scope.
Requestcurl https://api.flintwake.com/v2/wakes?status_class=5xx&limit=20 \ -H "Authorization: Bearer $FLINTWAKE_API_KEY"Example response{ "object": "list", "has_more": true, "next_cursor": "cur_8f2a", "data": [ { "id": "wk_0c41f2f4", "method": "GET", "path": "/v2/reports/settlements", "status": 504, "latency_ms": 30012, "consumer": "Pelham Freight", "region": "syd1", "captured_at": "2026-09-16T12:04:16.312Z" } ] }
Errors
Every type we return
Branch on type, never on message.
| Type | Status | Recovery |
|---|---|---|
invalid_request | 400 | Fix the request shape. The param field names the offending key. |
authentication_required | 401 | Send an Authorization header with a live key. |
key_revoked | 401 | Issue a replacement key. Revocation is not reversible. |
insufficient_scope | 403 | Reissue the key with the scope named in the message. |
resource_missing | 404 | Check the identifier and the environment. Identifiers are environment-scoped. |
conflict | 409 | Re-read the resource and retry with the current version. |
unprocessable | 422 | The shape is valid but the values are not. See param. |
rate_limit_exceeded | 429 | Back off for retry_after seconds. Do not retry immediately. |
internal_error | 500 | Retry once with backoff, then report the wake_id to support. |
upstream_timeout | 504 | Your origin did not answer in time. Retry is safe for idempotent calls. |
Events
Webhook event types
Subscribe to what you need, or to everything.
wake.errorA captured request returned a 5xx status.
wake.slowA captured request exceeded the endpoint's latency objective.
replay.finishedA replay completed. The payload carries the response diff.
consumer.quota.warningA consumer crossed 80% or 95% of its allowance.
slo.burnAn availability or latency objective is burning error budget too fast.
key.rotatedA key was issued as a replacement for another key.
key.revokedA key was revoked, manually or on schedule.
webhook.disabledAn endpoint was disabled after seven days of 410 responses.
Rate limits
| Scope | Window | Limit | Burst | Note |
|---|---|---|---|---|
| Default consumer | per minute | 6,000 | 9,000 | Applies to every key without an override. |
| Reports endpoints | per minute | 600 | 600 | Report generation is deliberately slower and cheaper. |
| Webhook registration | per hour | 120 | 120 | Protects consumers from accidental fan-out. |
| Sandbox | per minute | 1,200 | 1,200 | Shared across every sandbox key on the account. |
x-ratelimit-limit: 6000
x-ratelimit-remaining: 5842
x-ratelimit-reset: 38
retry-after: 12Try any of these endpoints without writing code.
The playground runs the same operations against sandbox fixtures and writes the snippet for you.