Skip to main content

Overview

Per-user; requires Authorization: Bearer nv_sk_…. Each queue is a managed Amazon SQS queue (standard or FIFO, with an optional dead-letter queue), namespaced and tagged per tenant — your agents never hold an AWS key. Routes are available both company-scoped (/v1/queue/..., acting as the operator’s default user) and per-user (/v1/users/:user_id/queue/...). Gated by the queue primitive in the user’s AccountKit and metered per request against the tenant’s plan.

Endpoints

MethodPathDescription
GET/v1/queueList the user’s queues
POST/v1/queueCreate a queue (type: standard | fifo, optional dlq)
GET/v1/queue/:idGet a queue + attributes
DELETE/v1/queue/:idDelete the queue (and its dead-letter queue)
GET/v1/queue/:id/attributesApproximate depth / in-flight / delayed counts
POST/v1/queue/:id/messagesSend a message ({ body, group_id?, dedup_id?, delay_seconds? })
GET/v1/queue/:id/messagesLong-poll for messages (?max=&wait=&visibility=)
DELETE/v1/queue/:id/messagesAck (delete) a message (?receipt_handle=)
POST/v1/queue/:id/purgeDelete all messages

Produce & consume

# Send
curl -X POST https://api.usenaive.ai/v1/queue/<id>/messages \
  -H "Authorization: Bearer $NAIVE_KEY" -H "Content-Type: application/json" \
  -d '{ "body": "{\"task\":\"resize\"}" }'

# Receive (long-poll) — each message includes a receipt_handle
curl "https://api.usenaive.ai/v1/queue/<id>/messages?max=10&wait=20" \
  -H "Authorization: Bearer $NAIVE_KEY"

# Ack once processed
curl -X DELETE "https://api.usenaive.ai/v1/queue/<id>/messages?receipt_handle=<rh>" \
  -H "Authorization: Bearer $NAIVE_KEY"
Messages that aren’t acked reappear after the visibility timeout (at-least-once with retries). FIFO queues require a group_id on send. The natural pairing for a compute worker. See the Queue guide and the SDK sub-client.