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'