Cloudflare Queues Queue API

Operations for managing Cloudflare Queues and their configuration

OpenAPI Specification

cloudflare-queues-queue-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Cloudflare Queues Consumer Queue API
  description: REST API for creating and managing Cloudflare Queues, sending and receiving messages, configuring consumers (Worker push or HTTP pull), managing dead letter queues, purging queues, and retrieving queue metrics and event subscriptions. Authenticated with Cloudflare API tokens via Bearer authorization.
  version: 1.0.0
  contact:
    name: Cloudflare Developer Docs
    url: https://developers.cloudflare.com/queues/
  license:
    name: Cloudflare Terms of Service
    url: https://www.cloudflare.com/terms/
servers:
- url: https://api.cloudflare.com/client/v4
  description: Cloudflare API v4
security:
- api_token: []
tags:
- name: Queue
  description: Operations for managing Cloudflare Queues and their configuration
paths:
  /accounts/{account_id}/queues:
    get:
      description: Returns the queues owned by an account.
      operationId: queues-list
      summary: List Queues
      tags:
      - Queue
      parameters:
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      items:
                        $ref: '#/components/schemas/mq_queue'
                      type: array
                    result_info:
                      properties:
                        count:
                          description: Total number of queues
                          example: 1
                          type: number
                        page:
                          description: Current page within paginated list of queues
                          example: 1
                          type: number
                        per_page:
                          description: Number of queues per page
                          example: 20
                          type: number
                        total_count:
                          description: Total queues available without any search parameters
                          example: 2000
                          type: number
                        total_pages:
                          description: Total pages available without any search parameters
                          example: 100
                          type: number
                      type: object
                  type: object
                type: object
          description: List of all Queues that belong to this account
    post:
      description: Create a new queue
      operationId: queues-create
      summary: Create Queue
      tags:
      - Queue
      parameters:
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                queue_name:
                  $ref: '#/components/schemas/mq_queue-name'
              required:
              - queue_name
              type: object
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      $ref: '#/components/schemas/mq_queue'
                  type: object
                type: object
          description: Created Queue
  /accounts/{account_id}/queues/{queue_id}:
    delete:
      description: Deletes a queue
      operationId: queues-delete
      summary: Delete Queue
      tags:
      - Queue
      parameters:
      - in: path
        name: queue_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-success'
          description: Successful delete
    get:
      description: Get details about a specific queue.
      operationId: queues-get
      summary: Get Queue
      tags:
      - Queue
      parameters:
      - in: path
        name: queue_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      $ref: '#/components/schemas/mq_queue'
                  type: object
                type: object
          description: Details of the requested Queue
    patch:
      description: Updates a Queue (partial update).
      operationId: queues-update-partial
      summary: Update Queue (Partial)
      tags:
      - Queue
      parameters:
      - in: path
        name: queue_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mq_queue'
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      allOf:
                      - $ref: '#/components/schemas/mq_queue'
                      type: object
                  type: object
                type: object
          description: Updated Queue
    put:
      description: Updates a Queue. Note that this endpoint does not support partial updates. If successful, the Queue's configuration is overwritten with the supplied configuration.
      operationId: queues-update
      summary: Update Queue
      tags:
      - Queue
      parameters:
      - in: path
        name: queue_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mq_queue'
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      allOf:
                      - $ref: '#/components/schemas/mq_queue'
                      type: object
                  type: object
                type: object
          description: Updated Queue
  /accounts/{account_id}/queues/{queue_id}/purge:
    get:
      description: Get details about a Queue's purge status.
      operationId: queues-purge-get
      summary: Get Queue Purge Status
      tags:
      - Queue
      parameters:
      - in: path
        name: queue_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      properties:
                        completed:
                          description: Indicates if the last purge operation completed successfully.
                          readOnly: true
                          type: string
                        started_at:
                          description: Timestamp when the last purge operation started.
                          readOnly: true
                          type: string
                      type: object
                  type: object
                type: object
          description: Details of the requested Queue purge status
    post:
      description: Deletes all messages from the Queue.
      operationId: queues-purge
      summary: Purge Queue
      tags:
      - Queue
      parameters:
      - in: path
        name: queue_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      - in: path
        name: account_id
        required: true
        schema:
          $ref: '#/components/schemas/mq_identifier'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                delete_messages_permanently:
                  description: Confirmation that all messages will be deleted permanently.
                  example: true
                  type: boolean
              type: object
      responses:
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mq_api-v4-failure'
          description: Failure response
        '200':
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/mq_api-v4-success'
                - properties:
                    result:
                      allOf:
                      - $ref: '#/components/schemas/mq_queue'
                      type: object
                  type: object
                type: object
          description: Updated Queue after purge
components:
  schemas:
    mq_queue-name:
      example: example-queue
      type: string
    mq_api-v4-failure:
      properties:
        errors:
          $ref: '#/components/schemas/mq_api-v4-error'
        messages:
          $ref: '#/components/schemas/mq_api-v4-message'
        success:
          description: Indicates if the API call was successful or not.
          enum:
          - false
          example: false
          type: boolean
      type: object
    mq_api-v4-message:
      example: []
      items:
        type: string
      type: array
    mq_identifier:
      description: A Resource identifier.
      example: 023e105f4ecef8ad9ca31a8372d0c353
      maxLength: 32
      readOnly: true
      type: string
    mq_api-v4-error:
      example:
      - code: 7003
        message: No route for the URI
      items:
        properties:
          code:
            minimum: 1000
            type: integer
          message:
            type: string
        required:
        - code
        - message
        type: object
        uniqueItems: true
      minLength: 1
      type: array
    mq_retry-delay:
      description: The number of seconds to delay before making the message available for another attempt.
      example: 10
      type: number
    mq_producer:
      oneOf:
      - $ref: '#/components/schemas/mq_worker-producer'
      - $ref: '#/components/schemas/mq_r2-producer'
      type: object
    mq_queue-settings:
      properties:
        delivery_delay:
          description: Number of seconds to delay delivery of all messages to consumers.
          example: 5
          type: number
        delivery_paused:
          description: Indicates if message delivery to consumers is currently paused.
          example: true
          type: boolean
        message_retention_period:
          description: Number of seconds after which an unconsumed message will be delayed.
          example: 345600
          type: number
      type: object
    mq_max-wait-time:
      description: The number of milliseconds to wait for a batch to fill up before attempting to deliver it
      example: 5000
      type: number
    mq_batch-size:
      description: The maximum number of messages to include in a batch.
      example: 50
      type: number
    mq_queue:
      properties:
        consumers:
          items:
            $ref: '#/components/schemas/mq_consumer-response'
          readOnly: true
          type: array
        consumers_total_count:
          readOnly: true
          type: number
        created_on:
          readOnly: true
          type: string
        modified_on:
          readOnly: true
          type: string
        producers:
          items:
            $ref: '#/components/schemas/mq_producer'
          readOnly: true
          type: array
        producers_total_count:
          readOnly: true
          type: number
        queue_id:
          readOnly: true
          type: string
        queue_name:
          $ref: '#/components/schemas/mq_queue-name'
        settings:
          $ref: '#/components/schemas/mq_queue-settings'
      type: object
    mq_worker-producer:
      properties:
        script:
          type: string
        type:
          enum:
          - worker
          type: string
      type: object
    mq_script-name:
      description: Name of a Worker
      example: my-consumer-worker
      type: string
    mq_max-retries:
      description: The maximum number of retries
      example: 3
      type: number
    mq_api-v4-success:
      properties:
        errors:
          $ref: '#/components/schemas/mq_api-v4-error'
        messages:
          $ref: '#/components/schemas/mq_api-v4-message'
        success:
          description: Indicates if the API call was successful or not.
          enum:
          - true
          type: boolean
      type: object
    mq_max-concurrency:
      description: Maximum number of concurrent consumers that may consume from this Queue. Set to null to automatically opt in to the platform's maximum (recommended).
      example: 10
      type: number
    mq_r2-producer:
      properties:
        bucket_name:
          type: string
        type:
          enum:
          - r2_bucket
          type: string
      type: object
    mq_worker-consumer-response:
      properties:
        consumer_id:
          $ref: '#/components/schemas/mq_identifier'
        created_on:
          format: date-time
          type: string
        dead_letter_queue:
          description: Name of the dead letter queue, or empty string if not configured
          type: string
        queue_name:
          $ref: '#/components/schemas/mq_queue-name'
        script_name:
          $ref: '#/components/schemas/mq_script-name'
        settings:
          properties:
            batch_size:
              $ref: '#/components/schemas/mq_batch-size'
            max_concurrency:
              $ref: '#/components/schemas/mq_max-concurrency'
            max_retries:
              $ref: '#/components/schemas/mq_max-retries'
            max_wait_time_ms:
              $ref: '#/components/schemas/mq_max-wait-time'
            retry_delay:
              $ref: '#/components/schemas/mq_retry-delay'
          type: object
        type:
          enum:
          - worker
          type: string
      type: object
    mq_http-consumer-response:
      properties:
        consumer_id:
          $ref: '#/components/schemas/mq_identifier'
        created_on:
          format: date-time
          type: string
        dead_letter_queue:
          description: Name of the dead letter queue, or empty string if not configured
          type: string
        queue_name:
          $ref: '#/components/schemas/mq_queue-name'
        settings:
          properties:
            batch_size:
              $ref: '#/components/schemas/mq_batch-size'
            max_retries:
              $ref: '#/components/schemas/mq_max-retries'
            retry_delay:
              $ref: '#/components/schemas/mq_retry-delay'
            visibility_timeout_ms:
              $ref: '#/components/schemas/mq_visibility-timeout'
          type: object
        type:
          enum:
          - http_pull
          type: string
      type: object
    mq_consumer-response:
      description: Response body representing a consumer
      discriminator:
        mapping:
          http_pull: '#/components/schemas/mq_http-consumer-response'
          worker: '#/components/schemas/mq_worker-consumer-response'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/mq_worker-consumer-response'
      - $ref: '#/components/schemas/mq_http-consumer-response'
      type: object
    mq_visibility-timeout:
      description: The number of milliseconds that a message is exclusively leased. After the timeout, the message becomes available for another attempt.
      example: 6000
      type: number
  securitySchemes:
    api_token:
      type: http
      scheme: bearer
      description: Cloudflare API Token (Bearer)
    api_email:
      type: apiKey
      in: header
      name: X-Auth-Email
      description: Cloudflare account email address
    api_key:
      type: apiKey
      in: header
      name: X-Auth-Key
      description: Cloudflare Global API Key
externalDocs:
  description: Cloudflare Queues Documentation
  url: https://developers.cloudflare.com/queues/