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.

Every request
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:read

    Parameters

    Parameters for GET /v2/wakes
    NameTypeDescription
    environmentstringEnvironment name. Defaults to the key's own environment.
    statusintegerExact HTTP status to match, for example 500.
    status_classenumOne of 2xx, 3xx, 4xx or 5xx. Mutually exclusive with status.
    pathstringPath template to match, for example /v2/payments/intents.
    consumerstringConsumer identifier or name.
    min_latency_msintegerOnly return wakes slower than this many milliseconds.
    limitintegerBetween 1 and 100. Defaults to 20.
    cursorstringOpaque 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.
    Request
    curl 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.

Error types, their HTTP status and the expected recovery.
TypeStatusRecovery
invalid_request400Fix the request shape. The param field names the offending key.
authentication_required401Send an Authorization header with a live key.
key_revoked401Issue a replacement key. Revocation is not reversible.
insufficient_scope403Reissue the key with the scope named in the message.
resource_missing404Check the identifier and the environment. Identifiers are environment-scoped.
conflict409Re-read the resource and retry with the current version.
unprocessable422The shape is valid but the values are not. See param.
rate_limit_exceeded429Back off for retry_after seconds. Do not retry immediately.
internal_error500Retry once with backoff, then report the wake_id to support.
upstream_timeout504Your 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.error

    A captured request returned a 5xx status.

  • wake.slow

    A captured request exceeded the endpoint's latency objective.

  • replay.finished

    A replay completed. The payload carries the response diff.

  • consumer.quota.warning

    A consumer crossed 80% or 95% of its allowance.

  • slo.burn

    An availability or latency objective is burning error budget too fast.

  • key.rotated

    A key was issued as a replacement for another key.

  • key.revoked

    A key was revoked, manually or on schedule.

  • webhook.disabled

    An endpoint was disabled after seven days of 410 responses.

Rate limits

Default rate limits by scope and window.
ScopeWindowLimitBurstNote
Default consumerper minute6,0009,000Applies to every key without an override.
Reports endpointsper minute600600Report generation is deliberately slower and cheaper.
Webhook registrationper hour120120Protects consumers from accidental fan-out.
Sandboxper minute1,2001,200Shared across every sandbox key on the account.
Rate limit headers on every response
x-ratelimit-limit: 6000
x-ratelimit-remaining: 5842
x-ratelimit-reset: 38
retry-after: 12

Try any of these endpoints without writing code.

The playground runs the same operations against sandbox fixtures and writes the snippet for you.