RabbitMQ Management HTTP API

HTTP-based API for management and monitoring of RabbitMQ nodes and clusters. Allows you to manage exchanges, queues, bindings, users, virtual hosts, permissions, and more.

OpenAPI Specification

rabbitmq-management.yml Raw ↑
openapi: 3.1.0
info:
  title: RabbitMQ Management HTTP API
  description: >-
    The RabbitMQ Management Plugin provides an HTTP-based API for management and
    monitoring of RabbitMQ nodes and clusters. It allows management of exchanges,
    queues, bindings, virtual hosts, users, permissions, policies, and more.
  version: 3.13.0
  contact:
    name: RabbitMQ
    url: https://www.rabbitmq.com/
  license:
    name: MPL 2.0
    url: https://www.mozilla.org/en-US/MPL/2.0/
servers:
  - url: http://localhost:15672/api
    description: Default RabbitMQ Management API
security:
  - basicAuth: []
paths:
  /overview:
    get:
      summary: Get cluster overview
      operationId: getOverview
      tags:
        - Overview
      responses:
        '200':
          description: Cluster overview including message rates and queue totals
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Overview'
  /cluster-name:
    get:
      summary: Get cluster name
      operationId: getClusterName
      tags:
        - Overview
      responses:
        '200':
          description: Cluster name
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
    put:
      summary: Set cluster name
      operationId: setClusterName
      tags:
        - Overview
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      responses:
        '204':
          description: Cluster name updated
  /nodes:
    get:
      summary: List nodes
      operationId: listNodes
      tags:
        - Nodes
      responses:
        '200':
          description: List of cluster nodes
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Node'
  /nodes/{name}:
    get:
      summary: Get node details
      operationId: getNode
      tags:
        - Nodes
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Node details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Node'
  /connections:
    get:
      summary: List connections
      operationId: listConnections
      tags:
        - Connections
      responses:
        '200':
          description: List of connections
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Connection'
  /connections/{name}:
    get:
      summary: Get connection
      operationId: getConnection
      tags:
        - Connections
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Connection details
    delete:
      summary: Close connection
      operationId: deleteConnection
      tags:
        - Connections
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Connection closed
  /channels:
    get:
      summary: List channels
      operationId: listChannels
      tags:
        - Channels
      responses:
        '200':
          description: List of channels
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Channel'
  /vhosts:
    get:
      summary: List virtual hosts
      operationId: listVhosts
      tags:
        - Virtual Hosts
      responses:
        '200':
          description: List of virtual hosts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Vhost'
  /vhosts/{vhost}:
    get:
      summary: Get virtual host
      operationId: getVhost
      tags:
        - Virtual Hosts
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Virtual host details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vhost'
    put:
      summary: Create virtual host
      operationId: createVhost
      tags:
        - Virtual Hosts
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                tags:
                  type: string
                tracing:
                  type: boolean
      responses:
        '201':
          description: Virtual host created
        '204':
          description: Virtual host updated
    delete:
      summary: Delete virtual host
      operationId: deleteVhost
      tags:
        - Virtual Hosts
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Virtual host deleted
  /exchanges:
    get:
      summary: List all exchanges
      operationId: listExchanges
      tags:
        - Exchanges
      responses:
        '200':
          description: List of exchanges
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Exchange'
  /exchanges/{vhost}:
    get:
      summary: List exchanges in a virtual host
      operationId: listExchangesInVhost
      tags:
        - Exchanges
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of exchanges
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Exchange'
  /exchanges/{vhost}/{exchange}:
    get:
      summary: Get exchange
      operationId: getExchange
      tags:
        - Exchanges
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: exchange
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Exchange details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Exchange'
    put:
      summary: Create exchange
      operationId: createExchange
      tags:
        - Exchanges
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: exchange
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExchangeCreate'
      responses:
        '201':
          description: Exchange created
        '204':
          description: Exchange updated
    delete:
      summary: Delete exchange
      operationId: deleteExchange
      tags:
        - Exchanges
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: exchange
          in: path
          required: true
          schema:
            type: string
        - name: if-unused
          in: query
          schema:
            type: boolean
      responses:
        '204':
          description: Exchange deleted
  /exchanges/{vhost}/{exchange}/publish:
    post:
      summary: Publish message to exchange
      operationId: publishMessage
      tags:
        - Exchanges
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: exchange
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishMessage'
      responses:
        '200':
          description: Publish result
          content:
            application/json:
              schema:
                type: object
                properties:
                  routed:
                    type: boolean
  /queues:
    get:
      summary: List all queues
      operationId: listQueues
      tags:
        - Queues
      responses:
        '200':
          description: List of queues
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Queue'
  /queues/{vhost}:
    get:
      summary: List queues in virtual host
      operationId: listQueuesInVhost
      tags:
        - Queues
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of queues
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Queue'
  /queues/{vhost}/{queue}:
    get:
      summary: Get queue
      operationId: getQueue
      tags:
        - Queues
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Queue details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Queue'
    put:
      summary: Create queue
      operationId: createQueue
      tags:
        - Queues
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueueCreate'
      responses:
        '201':
          description: Queue created
        '204':
          description: Queue updated
    delete:
      summary: Delete queue
      operationId: deleteQueue
      tags:
        - Queues
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
        - name: if-empty
          in: query
          schema:
            type: boolean
        - name: if-unused
          in: query
          schema:
            type: boolean
      responses:
        '204':
          description: Queue deleted
  /queues/{vhost}/{queue}/get:
    post:
      summary: Get messages from queue
      operationId: getMessages
      tags:
        - Queues
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                count:
                  type: integer
                ackmode:
                  type: string
                  enum: [ack_requeue_true, ack_requeue_false, reject_requeue_true, reject_requeue_false]
                encoding:
                  type: string
                  enum: [auto, base64]
      responses:
        '200':
          description: Messages from queue
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Message'
  /queues/{vhost}/{queue}/purge:
    delete:
      summary: Purge queue
      operationId: purgeQueue
      tags:
        - Queues
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Queue purged
  /bindings:
    get:
      summary: List all bindings
      operationId: listBindings
      tags:
        - Bindings
      responses:
        '200':
          description: List of bindings
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Binding'
  /bindings/{vhost}/e/{exchange}/q/{queue}:
    get:
      summary: List bindings between exchange and queue
      operationId: listBindingsBetween
      tags:
        - Bindings
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: exchange
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of bindings
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Binding'
    post:
      summary: Create binding
      operationId: createBinding
      tags:
        - Bindings
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: exchange
          in: path
          required: true
          schema:
            type: string
        - name: queue
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                routing_key:
                  type: string
                arguments:
                  type: object
      responses:
        '201':
          description: Binding created
  /users:
    get:
      summary: List users
      operationId: listUsers
      tags:
        - Users
      responses:
        '200':
          description: List of users
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
  /users/{user}:
    get:
      summary: Get user
      operationId: getUser
      tags:
        - Users
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
    put:
      summary: Create or update user
      operationId: createUser
      tags:
        - Users
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
                password_hash:
                  type: string
                tags:
                  type: string
      responses:
        '201':
          description: User created
        '204':
          description: User updated
    delete:
      summary: Delete user
      operationId: deleteUser
      tags:
        - Users
      parameters:
        - name: user
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: User deleted
  /permissions/{vhost}/{user}:
    get:
      summary: Get user permissions
      operationId: getUserPermissions
      tags:
        - Permissions
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: user
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
    put:
      summary: Set user permissions
      operationId: setUserPermissions
      tags:
        - Permissions
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: user
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Permission'
      responses:
        '204':
          description: Permissions set
    delete:
      summary: Delete user permissions
      operationId: deleteUserPermissions
      tags:
        - Permissions
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: user
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Permissions deleted
  /policies/{vhost}:
    get:
      summary: List policies in vhost
      operationId: listPolicies
      tags:
        - Policies
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of policies
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Policy'
  /policies/{vhost}/{policy}:
    get:
      summary: Get policy
      operationId: getPolicy
      tags:
        - Policies
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: policy
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Policy details
    put:
      summary: Create or update policy
      operationId: createPolicy
      tags:
        - Policies
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: policy
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Policy'
      responses:
        '204':
          description: Policy set
    delete:
      summary: Delete policy
      operationId: deletePolicy
      tags:
        - Policies
      parameters:
        - name: vhost
          in: path
          required: true
          schema:
            type: string
        - name: policy
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Policy deleted
  /health/checks/alarms:
    get:
      summary: Health check - alarms
      operationId: healthCheckAlarms
      tags:
        - Health
      responses:
        '200':
          description: No alarms
        '503':
          description: Alarms in effect
  /health/checks/local-alarms:
    get:
      summary: Health check - local alarms
      operationId: healthCheckLocalAlarms
      tags:
        - Health
      responses:
        '200':
          description: No local alarms
        '503':
          description: Local alarms in effect
  /whoami:
    get:
      summary: Get current user
      operationId: whoami
      tags:
        - Users
      responses:
        '200':
          description: Current authenticated user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /definitions:
    get:
      summary: Export definitions
      operationId: getDefinitions
      tags:
        - Definitions
      responses:
        '200':
          description: Server definitions (users, vhosts, permissions, queues, exchanges, bindings, policies)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Definitions'
    post:
      summary: Import definitions
      operationId: postDefinitions
      tags:
        - Definitions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Definitions'
      responses:
        '200':
          description: Definitions imported
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
  schemas:
    Overview:
      type: object
      properties:
        management_version:
          type: string
        rates_mode:
          type: string
        exchange_types:
          type: array
          items:
            type: object
        rabbitmq_version:
          type: string
        cluster_name:
          type: string
        erlang_version:
          type: string
        queue_totals:
          type: object
          properties:
            messages:
              type: integer
            messages_ready:
              type: integer
            messages_unacknowledged:
              type: integer
        message_stats:
          type: object
          properties:
            publish:
              type: integer
            deliver_get:
              type: integer
            ack:
              type: integer
        node:
          type: string
    Node:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          enum: [disc, ram]
        running:
          type: boolean
        os_pid:
          type: string
        fd_used:
          type: integer
        fd_total:
          type: integer
        mem_used:
          type: integer
        mem_limit:
          type: integer
        disk_free:
          type: integer
        disk_free_limit:
          type: integer
        proc_used:
          type: integer
        proc_total:
          type: integer
        uptime:
          type: integer
    Connection:
      type: object
      properties:
        name:
          type: string
        node:
          type: string
        state:
          type: string
        type:
          type: string
        protocol:
          type: string
        host:
          type: string
        port:
          type: integer
        peer_host:
          type: string
        peer_port:
          type: integer
        user:
          type: string
        vhost:
          type: string
        channels:
          type: integer
    Channel:
      type: object
      properties:
        name:
          type: string
        node:
          type: string
        connection_details:
          type: object
        number:
          type: integer
        user:
          type: string
        vhost:
          type: string
        state:
          type: string
        consumer_count:
          type: integer
        messages_unacknowledged:
          type: integer
        prefetch_count:
          type: integer
    Vhost:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        tracing:
          type: boolean
        messages:
          type: integer
        messages_ready:
          type: integer
        messages_unacknowledged:
          type: integer
    Exchange:
      type: object
      properties:
        name:
          type: string
        vhost:
          type: string
        type:
          type: string
          enum: [direct, fanout, topic, headers, x-consistent-hash, x-modulus-hash]
        durable:
          type: boolean
        auto_delete:
          type: boolean
        internal:
          type: boolean
        arguments:
          type: object
    ExchangeCreate:
      type: object
      properties:
        type:
          type: string
          enum: [direct, fanout, topic, headers]
        durable:
          type: boolean
          default: true
        auto_delete:
          type: boolean
          default: false
        internal:
          type: boolean
          default: false
        arguments:
          type: object
      required:
        - type
    Queue:
      type: object
      properties:
        name:
          type: string
        vhost:
          type: string
        durable:
          type: boolean
        auto_delete:
          type: boolean
        exclusive:
          type: boolean
        arguments:
          type: object
        node:
          type: string
        state:
          type: string
        type:
          type: string
          enum: [classic, quorum, stream]
        messages:
          type: integer
        messages_ready:
          type: integer
        messages_unacknowledged:
          type: integer
        consumers:
          type: integer
    QueueCreate:
      type: object
      properties:
        durable:
          type: boolean
          default: true
        auto_delete:
          type: boolean
          default: false
        arguments:
          type: object
          properties:
            x-queue-type:
              type: string
              enum: [classic, quorum, stream]
            x-max-length:
              type: integer
            x-message-ttl:
              type: integer
            x-dead-letter-exchange:
              type: string
            x-dead-letter-routing-key:
              type: string
    Binding:
      type: object
      properties:
        source:
          type: string
        vhost:
          type: string
        destination:
          type: string
        destination_type:
          type: string
          enum: [queue, exchange]
        routing_key:
          type: string
        arguments:
          type: object
        properties_key:
          type: string
    User:
      type: object
      properties:
        name:
          type: string
        tags:
          type: string
        password_hash:
          type: string
        hashing_algorithm:
          type: string
    Permission:
      type: object
      properties:
        user:
          type: string
        vhost:
          type: string
        configure:
          type: string
          description: Regex for configure permissions
        write:
          type: string
          description: Regex for write permissions
        read:
          type: string
          description: Regex for read permissions
    Policy:
      type: object
      properties:
        vhost:
          type: string
        name:
          type: string
        pattern:
          type: string
        apply-to:
          type: string
          enum: [queues, exchanges, all, classic_queues, quorum_queues, streams]
        priority:
          type: integer
        definition:
          type: object
    Message:
      type: object
      properties:
        payload:
          type: string
        payload_bytes:
          type: integer
        payload_encoding:
          type: string
        redelivered:
          type: boolean
        exchange:
          type: string
        routing_key:
          type: string
        message_count:
          type: integer
        properties:
          type: object
          properties:
            content_type:
              type: string
            delivery_mode:
              type: integer
            headers:
              type: object
            priority:
              type: integer
            correlation_id:
              type: string
            reply_to:
              type: string
            expiration:
              type: string
            message_id:
              type: string
            timestamp:
              type: integer
            type:
              type: string
            app_id:
              type: string
    PublishMessage:
      type: object
      required:
        - routing_key
        - payload
        - payload_encoding
        - properties
      properties:
        routing_key:
          type: string
        payload:
          type: string
        payload_encoding:
          type: string
          enum: [string, base64]
        properties:
          type: object
          properties:
            delivery_mode:
              type: integer
            headers:
              type: object
            content_type:
              type: string
    Definitions:
      type: object
      properties:
        rabbit_version:
          type: string
        users:
          type: array
          items:
            $ref: '#/components/schemas/User'
        vhosts:
          type: array
          items:
            $ref: '#/components/schemas/Vhost'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
        queues:
          type: array
          items:
            $ref: '#/components/schemas/Queue'
        exchanges:
          type: array
          items:
            $ref: '#/components/schemas/Exchange'
        bindings:
          type: array
          items:
            $ref: '#/components/schemas/Binding'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/Policy'