Reference

Headers & status codes

The headers Queuey reads on ingress and sends on delivery, and the HTTP status codes you can get back when you POST an event.

Headers Queuey reads (ingress)

HeaderMeaning
Content-Typeapplication/json for JSON event bodies.
X-Api-KeyAPI-key authentication. Format: qak_<keyId>.<secret> (when the queue's ingress auth is API key).
Idempotency-KeyProducer-asserted idempotency key. A duplicate within the dedup window short-circuits to the already-accepted event.
X-Queuey-Key-IdSigned-request: the HMAC signing key id.
X-Queuey-TimestampSigned-request: Unix seconds, checked for skew (replay protection).
X-Queuey-NonceSigned-request: a unique value, single-use (replay protection).
X-Queuey-Content-SHA256Signed-request: lowercase hex SHA-256 of the raw body.
X-Queuey-SignatureSigned-request: lowercase hex HMAC-SHA256 of the canonical string.
X-Queuey-PathLoop-prevention chain. Refused past the configured hop budget or on a cycle.

Headers Queuey sends (delivery)

HeaderMeaning
AuthorizationBearer / Basic — set per the target's auth mode (incl. OAuth2).
Idempotency-KeyThreaded from the event so an idempotent receiver can dedupe across retries.
X-Queuey-PathQueuey appends its segment, so a downstream Queuey can detect loops.
X-Queuey-Signature (+ Key-Id / Timestamp / Nonce)Present when the queue signs outbound deliveries (HMAC).

Ingress status codes

Errors return a consistent envelope so clients can branch on the code: { "error": { "code": "queue_paused", "message": "…" } }.

StatusMeaning
202 AcceptedThe event was accepted and persisted. The body returns the eventId; delivery is asynchronous. A duplicate Idempotency-Key returns 202 with replayed:true.
400 Bad RequestValidation error — code is queue_paused, invalid_context_key, or sandbox_query_not_allowed.
401 UnauthorizedMissing or invalid credentials — missing_api_key, invalid_api_key, invalid_signature, timestamp_out_of_range, replayed_request.
403 ForbiddenValid but denied — ip_not_allowed, client_scope_denied, missing_permission.
404 Not FoundUnknown tenant or queue — not_found.
409 ConflictThe queue is paused — queue_paused.
422 Unprocessable EntityThe X-Queuey-Path chain exceeded the hop budget or formed a cycle — loop_detected / max_hops_exceeded.

Related