Cloudflare Queues API

The Cloudflare Queues API enables developers to create and manage message queues that integrate with Cloudflare Workers. Queues support guaranteed delivery, work offloading from requests, worker-to-worker communication, and data buffering and batching.

OpenAPI Specification

cloudflare-queues-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cloudflare Queues API
  description: >-
    The Cloudflare Queues API enables developers to create and manage message
    queues that integrate with Cloudflare Workers. Queues support guaranteed
    delivery, work offloading from requests, worker-to-worker communication,
    and data buffering and batching. The API provides endpoints for queue
    management, consumer configuration, message operations, and purging.
  version: '4.0'
  contact:
    name: Cloudflare Support
    url: https://support.cloudflare.com/
  termsOfService: https://www.cloudflare.com/terms/
externalDocs:
  description: Cloudflare Queues API Documentation
  url: https://developers.cloudflare.com/api/resources/queues/
servers:
- url: https://api.cloudflare.com/client/v4
  description: Cloudflare API v4 Production Server
tags:
- name: Consumers
  description: >-
    Manage consumers that process messages from queues.
- name: Messages
  description: >-
    Send, pull, and acknowledge messages.
- name: Purge
  description: >-
    Purge all messages from a queue.
- name: Queues
  description: >-
    Create, list, update, and delete message queues.
security:
- bearerAuth: []
paths:
  /accounts/{account_id}/queues:
    get:
      operationId: listQueues
      summary: Cloudflare List Queues
      description: >-
        Returns all queues owned by the account.
      tags:
      - Queues
      parameters:
      - $ref: '#/components/parameters/AccountId'
      responses:
        '200':
          description: List of queues.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueListResponse'
              examples:
                Listqueues200Example:
                  summary: Default listQueues 200 response
                  x-microcks-default: true
                  value:
                    result:
                    - queue_id: '500123'
                      queue_name: example_value
                      created_on: '2026-01-15T10:30:00Z'
                      modified_on: '2026-01-15T10:30:00Z'
                      producers_total_count: 10
                      consumers_total_count: 10
                    success: true
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createQueue
      summary: Cloudflare Create Queue
      description: >-
        Create a new message queue for the account.
      tags:
      - Queues
      parameters:
      - $ref: '#/components/parameters/AccountId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - queue_name
              properties:
                queue_name:
                  type: string
                  description: The name of the queue.
            examples:
              CreatequeueRequestExample:
                summary: Default createQueue request
                x-microcks-default: true
                value:
                  queue_name: example_value
      responses:
        '200':
          description: Queue created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueResponse'
              examples:
                Createqueue200Example:
                  summary: Default createQueue 200 response
                  x-microcks-default: true
                  value:
                    result:
                      queue_id: '500123'
                      queue_name: example_value
                      created_on: '2026-01-15T10:30:00Z'
                      modified_on: '2026-01-15T10:30:00Z'
                      producers_total_count: 10
                      consumers_total_count: 10
                    success: true
                    errors:
                    - {}
                    messages:
                    - {}
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}:
    get:
      operationId: getQueue
      summary: Cloudflare Get Queue
      description: >-
        Retrieve details of a specific queue.
      tags:
      - Queues
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      responses:
        '200':
          description: Queue details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueueResponse'
              examples:
                Getqueue200Example:
                  summary: Default getQueue 200 response
                  x-microcks-default: true
                  value:
                    result:
                      queue_id: '500123'
                      queue_name: example_value
                      created_on: '2026-01-15T10:30:00Z'
                      modified_on: '2026-01-15T10:30:00Z'
                      producers_total_count: 10
                      consumers_total_count: 10
                    success: true
                    errors:
                    - {}
                    messages:
                    - {}
        '401':
          description: Unauthorized.
        '404':
          description: Queue not found.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: replaceQueue
      summary: Cloudflare Replace Queue Configuration
      description: >-
        Overwrite the queue configuration.
      tags:
      - Queues
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                queue_name:
                  type: string
                  description: The new name of the queue.
            examples:
              ReplacequeueRequestExample:
                summary: Default replaceQueue request
                x-microcks-default: true
                value:
                  queue_name: example_value
      responses:
        '200':
          description: Queue replaced successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateQueue
      summary: Cloudflare Update Queue Settings
      description: >-
        Partially update queue settings.
      tags:
      - Queues
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                queue_name:
                  type: string
                  description: The new name of the queue.
            examples:
              UpdatequeueRequestExample:
                summary: Default updateQueue request
                x-microcks-default: true
                value:
                  queue_name: example_value
      responses:
        '200':
          description: Queue updated successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteQueue
      summary: Cloudflare Delete Queue
      description: >-
        Remove a queue and all its messages.
      tags:
      - Queues
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      responses:
        '200':
          description: Queue deleted successfully.
        '401':
          description: Unauthorized.
        '404':
          description: Queue not found.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/consumers:
    get:
      operationId: listQueueConsumers
      summary: Cloudflare List Queue Consumers
      description: >-
        Returns the consumers configured for a queue.
      tags:
      - Consumers
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      responses:
        '200':
          description: List of consumers.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createQueueConsumer
      summary: Cloudflare Create Queue Consumer
      description: >-
        Add a new consumer to a queue to process messages.
      tags:
      - Consumers
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerInput'
            examples:
              CreatequeueconsumerRequestExample:
                summary: Default createQueueConsumer request
                x-microcks-default: true
                value:
                  script_name: example_value
                  settings:
                    batch_size: 10
                    max_retries: 10
                    max_wait_time_ms: 10
      responses:
        '200':
          description: Consumer created successfully.
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/consumers/{consumer_id}:
    get:
      operationId: getQueueConsumer
      summary: Cloudflare Get Queue Consumer
      description: >-
        Retrieve details of a specific queue consumer.
      tags:
      - Consumers
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      - $ref: '#/components/parameters/ConsumerId'
      responses:
        '200':
          description: Consumer details.
        '401':
          description: Unauthorized.
        '404':
          description: Consumer not found.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: replaceQueueConsumer
      summary: Cloudflare Replace Queue Consumer
      description: >-
        Update or create a consumer for the queue.
      tags:
      - Consumers
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      - $ref: '#/components/parameters/ConsumerId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerInput'
            examples:
              ReplacequeueconsumerRequestExample:
                summary: Default replaceQueueConsumer request
                x-microcks-default: true
                value:
                  script_name: example_value
                  settings:
                    batch_size: 10
                    max_retries: 10
                    max_wait_time_ms: 10
      responses:
        '200':
          description: Consumer replaced successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteQueueConsumer
      summary: Cloudflare Delete Queue Consumer
      description: >-
        Remove a consumer from the queue.
      tags:
      - Consumers
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      - $ref: '#/components/parameters/ConsumerId'
      responses:
        '200':
          description: Consumer deleted successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/messages:
    post:
      operationId: sendMessage
      summary: Cloudflare Send Message
      description: >-
        Send a single message to the queue.
      tags:
      - Messages
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageInput'
            examples:
              SendmessageRequestExample:
                summary: Default sendMessage request
                x-microcks-default: true
                value:
                  body: example_value
                  content_type: json
      responses:
        '200':
          description: Message sent successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/messages/batch:
    post:
      operationId: sendMessageBatch
      summary: Cloudflare Send Message Batch
      description: >-
        Send multiple messages to the queue in a single request.
      tags:
      - Messages
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                messages:
                  type: array
                  items:
                    $ref: '#/components/schemas/MessageInput'
            examples:
              SendmessagebatchRequestExample:
                summary: Default sendMessageBatch request
                x-microcks-default: true
                value:
                  messages:
                  - body: example_value
                    content_type: json
      responses:
        '200':
          description: Messages sent successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/messages/pull:
    post:
      operationId: pullMessages
      summary: Cloudflare Pull Messages
      description: >-
        Retrieve a batch of messages from the queue for processing.
      tags:
      - Messages
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                visibility_timeout_ms:
                  type: integer
                  description: >-
                    How long the pulled messages should be invisible to other
                    consumers, in milliseconds.
                batch_size:
                  type: integer
                  description: Maximum number of messages to pull.
            examples:
              PullmessagesRequestExample:
                summary: Default pullMessages request
                x-microcks-default: true
                value:
                  visibility_timeout_ms: 10
                  batch_size: 10
      responses:
        '200':
          description: Messages pulled successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/messages/ack:
    post:
      operationId: ackMessages
      summary: Cloudflare Acknowledge Messages
      description: >-
        Acknowledge and optionally retry messages from the queue. Acknowledged
        messages are permanently removed from the queue.
      tags:
      - Messages
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                acks:
                  type: array
                  items:
                    type: object
                    properties:
                      lease_id:
                        type: string
                        description: The lease ID from the pulled message.
                retries:
                  type: array
                  items:
                    type: object
                    properties:
                      lease_id:
                        type: string
                        description: The lease ID of the message to retry.
                      delay_seconds:
                        type: integer
                        description: Delay before the message becomes visible again.
            examples:
              AckmessagesRequestExample:
                summary: Default ackMessages request
                x-microcks-default: true
                value:
                  acks:
                  - lease_id: '500123'
                  retries:
                  - lease_id: '500123'
                    delay_seconds: 10
      responses:
        '200':
          description: Messages acknowledged successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /accounts/{account_id}/queues/{queue_id}/purge:
    get:
      operationId: getPurgeStatus
      summary: Cloudflare Get Purge Status
      description: >-
        Check the status of a queue purge operation.
      tags:
      - Purge
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      responses:
        '200':
          description: Purge status.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: purgeQueue
      summary: Cloudflare Purge Queue
      description: >-
        Delete all messages from the queue.
      tags:
      - Purge
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/QueueId'
      responses:
        '200':
          description: Purge initiated successfully.
        '401':
          description: Unauthorized.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API token with Queues permissions.
  parameters:
    AccountId:
      name: account_id
      in: path
      required: true
      description: The unique identifier of the Cloudflare account.
      schema:
        type: string
    QueueId:
      name: queue_id
      in: path
      required: true
      description: The unique identifier of the queue.
      schema:
        type: string
    ConsumerId:
      name: consumer_id
      in: path
      required: true
      description: The unique identifier of the consumer.
      schema:
        type: string
  schemas:
    Queue:
      type: object
      properties:
        queue_id:
          type: string
          description: The unique identifier of the queue.
          example: '500123'
        queue_name:
          type: string
          description: The name of the queue.
          example: example_value
        created_on:
          type: string
          format: date-time
          description: When the queue was created.
          example: '2026-01-15T10:30:00Z'
        modified_on:
          type: string
          format: date-time
          description: When the queue was last modified.
          example: '2026-01-15T10:30:00Z'
        producers_total_count:
          type: integer
          description: Number of producers attached.
          example: 10
        consumers_total_count:
          type: integer
          description: Number of consumers attached.
          example: 10
    QueueResponse:
      type: object
      properties:
        result:
          $ref: '#/components/schemas/Queue'
        success:
          type: boolean
          example: true
        errors:
          type: array
          items:
            type: object
          example: []
        messages:
          type: array
          items:
            type: object
          example: []
    QueueListResponse:
      type: object
      properties:
        result:
          type: array
          items:
            $ref: '#/components/schemas/Queue'
          example: []
        success:
          type: boolean
          example: true
    ConsumerInput:
      type: object
      properties:
        script_name:
          type: string
          description: The Worker script name that will consume messages.
          example: example_value
        settings:
          type: object
          properties:
            batch_size:
              type: integer
              description: Maximum number of messages per batch.
            max_retries:
              type: integer
              description: Maximum number of retries for failed messages.
            max_wait_time_ms:
              type: integer
              description: Maximum time to wait for a full batch in milliseconds.
          example: example_value
    MessageInput:
      type: object
      properties:
        body:
          description: The message body content.
          example: example_value
        content_type:
          type: string
          description: The content type of the message body.
          enum:
          - json
          - text
          - bytes
          example: json