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.
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: 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'