API reference / Introspection

Introspection scope: read

Trace any message's full lifecycle, inspect per-key lanes, scheduled messages, retries, and node-wide stats.
Message ids (msg_…) are globally unique — no project parameter needed to look one up.
GET/v1/messages/{id}Envelope + per-subscription state
Response · 200
{ …envelope fields…,
  "subscriptions": [ { "name": "billing-worker", "state": "acked", "attempt_count": 1 } ] }
Errors
404no message with id {id}
403a project API key naming a resource outside its project
GET/v1/messages/{id}/traceFull lifecycle: every attempt, consumer, error, duration, blocked_by
Response · 200
{ "message_id": "msg_…", "stream": "orders", "project": "payments",
  "key": "tenant_42", "status": "available",
  "published_at": "…", "scheduled_for": null, "deduplicated": false,
  "subscriptions": [ {
    "name": "billing-worker", "state": "retrying", "attempt_count": 2,
    "next_attempt_at": "…", "last_error": "downstream 500",
    "attempts": [ { "n": 1, "consumer": "worker-1", "started": "…",
                    "outcome": "nack", "error": "downstream 500", "duration_ms": 812 } ],
    "blocked_by": { "message_id": "msg_earlier", "reason": "earlier message on the same key is retrying" }
  } ],
  "events": [ { "type": "published", "sub": null, "ts": "…", "data": { … } } ],
  "envelope": { … } }
Errors
404no message with id {id}
403a project API key naming a resource outside its project
GET/v1/streams/{stream}/keysActive keys: pending counts, oldest age, lane state
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "keys": [ { "key": "tenant_42", "pending": 3, "in_flight": 1,
    "retrying": 0, "oldest_pending": "…",
    "lane_state": "flowing" } ] }
GET/v1/streams/{stream}/scheduledMessages waiting on deliver_at
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "scheduled": [ …envelopes, soonest first… ] }
GET/v1/subscriptions/{sub}/lanesPer-key lanes with retry state
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "lanes": [ { "key": "tenant_7", "state": "retrying", "pending": 4,
    "oldest_pending": "…", "in_flight_message": null,
    "retrying_message": "msg_…", "attempts": 2, "next_attempt_at": "…" } ] }
Errors
404no subscription named {sub} in project {project}
GET/v1/subscriptions/{sub}/keys/{key}One lane's full delivery history
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "sub": "billing-worker", "project": "payments", "key": "tenant_7",
  "lane_state": "retrying", "next_retry_at": "…",
  "deliveries": [ { "delivery_id": "dlv_…", "message_id": "msg_…", "offset": 12,
    "state": "retrying", "attempt_count": 2, "next_attempt_at": "…",
    "last_error": "downstream 500" } ] }
GET/v1/subscriptions/{sub}/retriesDeliveries waiting out their backoff
Query parameters
projectProject the name is scoped to. Omitted = "default". Ignored for project API keys — their project is enforced server-side.
Response · 200
{ "retries": [ { "delivery_id": "dlv_…", "message_id": "msg_…",
    "key": "tenant_7", "attempt_count": 2,
    "next_attempt_at": "…", "last_error": "downstream 500" } ] }
Errors
404no subscription named {sub} in project {project}
GET/v1/stats/overviewNode-wide rates, backlogs, blocked keys, newest failures (feeds the dashboard)
Response · 200
{ "rates_last_minute": { "published": 120, "delivered": 118, "failed": 2 },
  "rates_prev_minute": { … },
  "totals": { "backlog": 14, "dead": 41, "scheduled": 2, "subscriptions": 3 },
  "streams": [ { "name": "orders", "project": "payments", "messages": 1204 } ],
  "subscriptions": [ { "name": "billing-worker", "project": "payments",
    "stream": "orders", "paused": false, "backlog": 12, "oldest_pending": "…" } ],
  "blocked_keys": [ { "sub": "billing-worker", "project": "payments",
    "key": "tenant_7", "state": "retrying", "next_retry_at": "…" } ],
  "recent_dead_letters": [ { "sub": "…", "project": "…", "message_id": "msg_…",
    "key": "…", "error": "…", "dead_at": "…" } ] }
Failed messages (DLQ)All topicsOperations