# queues-api ## Pages - [Queues API](https://docs.ezghcloud.com/queues-api/index.md) — Manage EZGH Queues: standard and FIFO message queues with dead-letter queues, delays and retention; HTTPS push subscriptions; purge and redrive. Send and peek messages here; receive, acknowledge and change visibility on https://queues-live.ezghcloud.com. Every path is under an organization and a project; lists are paged with limit, cursor and nextCursor. - [Create a queue](https://docs.ezghcloud.com/queues-api/CreateQueue/index.md) — Every setting is optional and takes its default. 409 when the project has a queue with this name. 400 queue_type_mismatch when the dead-letter queue is of the other type; the dead-letter queue is in the same project. - [Create a queue's push subscription](https://docs.ezghcloud.com/queues-api/CreateSubscription/index.md) — Checked on the queue (queues.subscriptions.create), and for a workflow target workflows.runs.start on the workflow too, in one check; 400 at target.appId for an app that isn't in the queue's project, at target.workflow for a workflow the app has synced without, and 503 integration_unavailable while EZGH Workflows isn't connected. A queue has at most one subscription (409 subscription_exists). The answer holds an https target's signing secret, once; pull receivers can still receive from the queue, competing with the subscription. - [Delete a queue, its subscription and its messages](https://docs.ezghcloud.com/queues-api/DeleteQueue/index.md) — 409 queue_in_use while another queue names it as its dead-letter queue. Its messages are deleted in the background; receipt handles for them stop working at once. - [Delete a subscription](https://docs.ezghcloud.com/queues-api/DeleteSubscription/index.md) — Deliveries stop; the queue's messages stay for pull receivers. - [The project's Queues data-plane limits](https://docs.ezghcloud.com/queues-api/GetLimits/index.md) — Rate limits and caps, with any overrides: what the console's Service quotas shows beside the allocation quotas. The defaults include 2 GiB of stored messages per project (storedBytesPerProject). - [Get a queue and its approximate counts](https://docs.ezghcloud.com/queues-api/GetQueue/index.md) - [Get a redrive and its progress](https://docs.ezghcloud.com/queues-api/GetRedrive/index.md) - [Get a subscription and its delivery status](https://docs.ezghcloud.com/queues-api/GetSubscription/index.md) - [List a project's queues, oldest first](https://docs.ezghcloud.com/queues-api/ListQueues/index.md) - [List a dead-letter queue's redrives, newest first](https://docs.ezghcloud.com/queues-api/ListRedrives/index.md) — The running redrive, if any, and those that finished in the last 30 days. - [List a project's subscriptions, oldest first](https://docs.ezghcloud.com/queues-api/ListSubscriptions/index.md) - [Pause a subscription's deliveries](https://docs.ezghcloud.com/queues-api/PauseSubscription/index.md) — Messages wait in the queue, or go to pull receivers. Pausing a paused subscription changes nothing. - [Browse a queue's messages without consuming them](https://docs.ezghcloud.com/queues-api/PeekMessages/index.md) — In the order they were sent. Claims nothing, changes nothing and returns no receipt handles: for dead-letter queues and debugging. A page ends at limit messages or 4 MiB of them, whichever comes first (follow nextCursor). At most 10 requests per second per queue (429); 503 with Retry-After when the server is busy. - [Delete every message sent before now](https://docs.ezghcloud.com/queues-api/PurgeQueue/index.md) — Messages sent before purgedBefore disappear at once and are deleted in the background; later sends are kept. At most one purge per queue every 60 seconds (429). - [Receive 1-10 messages (long poll)](https://docs.ezghcloud.com/queues-api/ReceiveMessages/index.md) — Served on https://queues-live.ezghcloud.com. Claims up to maxMessages visible messages and hides them for the visibility timeout, waiting up to waitSeconds for messages to arrive; an empty list after the wait is a 200. Acknowledge or extend each message with its receiptHandle on the live host's receipt endpoints (POST /v1/receipts/ack, POST /v1/receipts/visibility), which take no credentials. Not recorded in Trails unless refused. - [Resume a paused subscription's deliveries](https://docs.ezghcloud.com/queues-api/ResumeSubscription/index.md) — Checked as queues.subscriptions.pause. Resuming an active subscription changes nothing. - [Rotate a subscription's signing secret](https://docs.ezghcloud.com/queues-api/RotateSubscriptionSecret/index.md) — The answer holds the new secret, once. Deliveries are signed with both the new and the previous secret for 24 hours, then with the new one only. A workflow target has no secret (409 not_https_subscription). - [Send 1-10 messages](https://docs.ezghcloud.com/queues-api/SendMessages/index.md) — One request commits all its messages, or none: any invalid message refuses the whole request with an issue per field (messages..). On a FIFO queue a message whose dedupId was sent in the last 5 minutes isn't stored again: it answers the original messageId with duplicate: true. 429 storage_limit_exceeded when the project's stored bytes are at their limit (2 GiB by default). Not recorded in Trails unless refused. - [Move a dead-letter queue's messages back](https://docs.ezghcloud.com/queues-api/StartRedrive/index.md) — Moves the messages dead-lettered before now back to the queues they came from, or all of them to destinationQueueId (same project and type), in the background at a bounded rate. Messages whose source queue is gone are skipped and counted. 409 redrive_active while another redrive of this queue runs. - [Change a queue's settings or tags](https://docs.ezghcloud.com/queues-api/UpdateQueue/index.md) — Every field is optional, and only the ones given change; name and type are fixed (400). New visibility and retention settings apply to messages from then on; messages in flight keep their deadlines. redrive: null removes the dead-letter policy. - [Change a subscription's target, batch size or concurrency](https://docs.ezghcloud.com/queues-api/UpdateSubscription/index.md) — Every field is optional, and only the ones given change. - [Attributes](https://docs.ezghcloud.com/queues-api/schemas/Attributes/index.md) — At most 10. Keys match ^[A-Za-z0-9_.-]{1,64}$ and don't start with ezgh. (reserved for the ones Queues adds, such as ezgh.sourceQueue on a dead-lettered message); values are at most 1,024 bytes. - [ContentBasedDedup](https://docs.ezghcloud.com/queues-api/schemas/ContentBasedDedup/index.md) — FIFO only: a message without a dedupId is deduplicated by the SHA-256 of its body. - [Counts](https://docs.ezghcloud.com/queues-api/schemas/Counts/index.md) — Approximate message counts. Each is exact up to 100,000; beyond that truncated is true. - [DelaySeconds](https://docs.ezghcloud.com/queues-api/schemas/DelaySeconds/index.md) — The queue's default delivery delay. - [DeliveryError](https://docs.ezghcloud.com/queues-api/schemas/DeliveryError/index.md) - [Error](https://docs.ezghcloud.com/queues-api/schemas/Error/index.md) — Every non-2xx answer. Clients branch on code, never on message. - [HttpsTarget](https://docs.ezghcloud.com/queues-api/schemas/HttpsTarget/index.md) — HTTPS on port 443, to a public host. Deliveries are signed (EZGH-Signature) with the subscription's signing secret. - [Limits](https://docs.ezghcloud.com/queues-api/schemas/Limits/index.md) - [MessageGroupId](https://docs.ezghcloud.com/queues-api/schemas/MessageGroupId/index.md) — FIFO only: messages of one group are delivered in order, one batch at a time. - [Peeked](https://docs.ezghcloud.com/queues-api/schemas/Peeked/index.md) - [PeekedList](https://docs.ezghcloud.com/queues-api/schemas/PeekedList/index.md) - [PurgeResult](https://docs.ezghcloud.com/queues-api/schemas/PurgeResult/index.md) - [Queue](https://docs.ezghcloud.com/queues-api/schemas/Queue/index.md) - [QueueCreate](https://docs.ezghcloud.com/queues-api/schemas/QueueCreate/index.md) - [QueueList](https://docs.ezghcloud.com/queues-api/schemas/QueueList/index.md) - [QueueName](https://docs.ezghcloud.com/queues-api/schemas/QueueName/index.md) — Unique in the project; fixed at creation. - [QueueType](https://docs.ezghcloud.com/queues-api/schemas/QueueType/index.md) — standard: at-least-once, best-effort order. fifo: strict order per message group and send deduplication. Fixed at creation. - [QueueUpdate](https://docs.ezghcloud.com/queues-api/schemas/QueueUpdate/index.md) - [QuotaExceeded](https://docs.ezghcloud.com/queues-api/schemas/QuotaExceeded/index.md) — quota_exceeded: the quota that refused the request. Never with Retry-After. - [ReceiveRequest](https://docs.ezghcloud.com/queues-api/schemas/ReceiveRequest/index.md) - [ReceiveResponse](https://docs.ezghcloud.com/queues-api/schemas/ReceiveResponse/index.md) - [ReceiveWaitSeconds](https://docs.ezghcloud.com/queues-api/schemas/ReceiveWaitSeconds/index.md) — The default long-poll wait of a receive. - [ReceivedMessage](https://docs.ezghcloud.com/queues-api/schemas/ReceivedMessage/index.md) - [Redrive](https://docs.ezghcloud.com/queues-api/schemas/Redrive/index.md) - [RedriveList](https://docs.ezghcloud.com/queues-api/schemas/RedriveList/index.md) - [RedrivePolicy](https://docs.ezghcloud.com/queues-api/schemas/RedrivePolicy/index.md) — Where messages go after maxReceiveCount receives: a queue of the same project and type. - [RedriveStart](https://docs.ezghcloud.com/queues-api/schemas/RedriveStart/index.md) - [RetentionSeconds](https://docs.ezghcloud.com/queues-api/schemas/RetentionSeconds/index.md) — How long a message is kept after it's sent. - [SendMessage](https://docs.ezghcloud.com/queues-api/schemas/SendMessage/index.md) - [SendRequest](https://docs.ezghcloud.com/queues-api/schemas/SendRequest/index.md) - [SendResponse](https://docs.ezghcloud.com/queues-api/schemas/SendResponse/index.md) - [Subscription](https://docs.ezghcloud.com/queues-api/schemas/Subscription/index.md) - [SubscriptionCreate](https://docs.ezghcloud.com/queues-api/schemas/SubscriptionCreate/index.md) - [SubscriptionCreated](https://docs.ezghcloud.com/queues-api/schemas/SubscriptionCreated/index.md) - [SubscriptionList](https://docs.ezghcloud.com/queues-api/schemas/SubscriptionList/index.md) - [SubscriptionStatus](https://docs.ezghcloud.com/queues-api/schemas/SubscriptionStatus/index.md) - [SubscriptionUpdate](https://docs.ezghcloud.com/queues-api/schemas/SubscriptionUpdate/index.md) — A target given replaces the current one, of the same kind. - [Tags](https://docs.ezghcloud.com/queues-api/schemas/Tags/index.md) — At most 50; keys 1-128 characters, values at most 256, keys starting with ezgh: are reserved. - [Target](https://docs.ezghcloud.com/queues-api/schemas/Target/index.md) — Where deliveries go: an HTTPS endpoint, or an EZGH Workflows workflow. The kind is fixed when the subscription is created; clients treat other kinds as unknown. - [VisibilityTimeoutSeconds](https://docs.ezghcloud.com/queues-api/schemas/VisibilityTimeoutSeconds/index.md) — How long a received message stays hidden from other receivers. - [WorkflowTarget](https://docs.ezghcloud.com/queues-api/schemas/WorkflowTarget/index.md) — An EZGH Workflows workflow in the queue's project: each message starts a run, its input the message ({messageId, body, attributes, sentAt, queueId, groupId?, seq?}); the message is acknowledged once the start is accepted, and a redelivered message reaches the run its first delivery started. One message per call (batchSize 1); on a FIFO queue a group's next message waits for the previous start. Configuring it needs queues.subscriptions.create (or update) and workflows.runs.start (resume: workflows.runs.resume) on the workflow (/). No signing secret.