NAV
shell

Instance API🔗

Documentation for CloudAMQP Instance API. Use it to manage alarms, integrations, RabbitMQ, the firewall, VPC peering and more.

You can also use Terraform to manage your CloudAMQP resources. See the documentation at the Terraform Registry.

Nodes🔗

curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  https://api.cloudamqp.com/api/nodes

The above command returns JSON structured like this:

[
  {
    "name": "some-server-01",
    "hostname": "some-server-01.rmq.cloudamqp.com",
    "configured": true,
    "hipe": false,
    "rabbitmq_version": "3.10.5",
    "erlang_version": "24.1.7",
    "running": true,
    "disk_size": 20,
    "additional_disk_size": 0,
    "availability_zone": "availability_zone_id",
    "hostname_internal": "some-server-01.in.rmq.cloudamqp.com"
  }
]

GET https://api.cloudamqp.com/api/nodes

Lists versions to which the instance can be upgraded

curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  https://api.cloudamqp.com/api/nodes/available-versions

The above command returns JSON structured like this:

{
  "rabbitmq_versions": ["3.9.11", "3.9.9", "3.9.7"],
  "erlang_versions": ["24.0.4"]
}

GET https://api.cloudamqp.com/api/nodes/available-versions

Plugins🔗

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/plugins

The above command returns JSON structured like this:

[
  {
    "name": "amqp_client",
    "version": "3.6.12",
    "description": "RabbitMQ AMQP Client",
    "enabled": true
  }
]

GET https://api.cloudamqp.com/api/plugins

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "plugin_name=rabbitmq_top" \
  https://api.cloudamqp.com/api/plugins?async=true

POST https://api.cloudamqp.com/api/plugins

Parameter Description
async Asynchronous API mode, the request will return directly and not wait for the plugin to be enabled. Poll List plugins to see the result.
Parameter Description
plugin_name The name of the plugin to enable
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/plugins/rabbitmq_top?async=true

DELETE https://api.cloudamqp.com/api/plugins/PLUGIN_NAME

Parameter Description
async Asynchronous API mode, the request will return directly and not wait for the plugin to be disabled. Poll List plugins to see the result.
Parameter Description
PLUGIN_NAME The name of the plugin to disable
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/plugins/community

The above command returns JSON structured like this:

[
  {
    "name": "rabbitmq_management_themes",
    "description": "Adds the possibility to customize the management web UI look.",
    "require": "3.5.0"
  }
]

GET https://api.cloudamqp.com/api/plugins/community

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "plugin_name=rabbitmq_top" \
  https://api.cloudamqp.com/api/plugins/community?async=true

POST https://api.cloudamqp.com/api/plugins/community

Parameter Description
async Asynchronous API mode, the request will return directly and not wait for the plugin to be enabled. Poll List plugins to see the result.
Parameter Description
plugin_name The name of the plugin to enable
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/plugins/community/rabbitmq_top?async=true
Parameter Description
async Asynchronous API mode, the request will return directly and not wait for the plugin to be disabled. Poll List plugins to see the result.

DELETE https://api.cloudamqp.com/api/plugins/community/PLUGIN_NAME

Parameter Description
PLUGIN_NAME The name of the plugin to disable

Custom Domain🔗

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/custom-domain

The above command returns JSON structured like this:

{
  "hostname": "myname.mydomain",
  "configured": true,
}

Shows the current custom domain the cluster is currently configured for, if any.

GET https://api.cloudamqp.com/api/custom-domain

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -H "content-type: application/json" \
  -d '{"hostname": "myname.mydomain"}' \
  https://api.cloudamqp.com/api/custom-domain

Generates and installs a Let's Encrypt certificate on the cluster as SNI with your custom domain. This requires that your provided SNI host point towards the RabbitMQ cluster. Otherwise the generation and renewal of the certificate will fail.

POST https://api.cloudamqp.com/api/custom-domain

Parameter Description
hostname The custom hostname. This DNS record must point towards the Rabbit cluster
  curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/custom-domain

Restores current custom domain configuration. Also stops future renewal process of the certificate.

DELETE https://api.cloudamqp.com/api/custom-domain

Firewall🔗

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/security/firewall

The above command returns JSON structured like this:

[
  {
    "description": "My rule",
    "ip": "0.0.0.0/0",
    "ports": [80],
    "services": ["AMQP", "AMQPS", "MQTT"]
  }
]

This response shows that services AMQP, AMQPS, MQTT and port 80 are open all all.

GET https://api.cloudamqp.com/api/security/firewall

When configuring the firewall you can choose to specify which ports that you want to have open, or you can specify which services that you would like to access. The benefits of specifying services instead of the ports is that we automatically map these to correct ports or port ranges.

Available services to specify

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -H "content-type: application/json" \
  -d '[{"ip": "0.0.0.0/0", "services": ["AMQP", "AMQPS"], "ports": [80]}]' \
  https://api.cloudamqp.com/api/security/firewall

POST https://api.cloudamqp.com/api/security/firewall

Parameter Description
ip A CIDR for which to open the ports for
services Which services to open up for in the firewall
ports Which ports to open in the firewall

Providing an already existing CIDR will overwrite the current rule. If provided CIDR does not yet exist, it is added upon the other rules. To delete a specific rule, provide the CIDR with empty services and ports.

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -X PATCH \
  -H "content-type: application/json" \
  -d '[{"ip": "0.0.0.0/0", "services": ["MQTT"]}]' \
  https://api.cloudamqp.com/api/security/firewall

PATCH https://api.cloudamqp.com/api/security/firewall

Parameter Description
ip A CIDR for which to open the ports for
services Which services to open up for in the firewall
ports Which ports to open in the firewall

Alarms🔗

Information about both alarms, notifications and recipients. When creating a new instance, a set of default alarms and recipient will be created.

Recipient: There will always be a default recipient created, using the team email set during sign up. This recipient is used to receive notifications from the default alarms.

Alarm: There will always be four default alarms created, cpu, memory, disk and notice alarms.

To use another recipient than the default recipient, a new one needs to be created.

Available recipients types:

POST https://api.cloudamqp.com/api/alarms/recipients

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=email&value=notification@example.com&name=low"
  https://api.cloudamqp.com/api/alarms/recipients

This creates an email recipient for notification@example.com that can be used to receive alarm notifications. The returned JSON structured look like this:

{
  "id": 2,
  "type": "email",
  "value": "notification@example.com",
  "name": "Low",
  "options": {},
}
Parameter Required Type Description
type true string The type of notification to be sent
value true string Endpoint to where the notification will be sent
name false string Optional, name for the recipient

Retrieve all recipients for an instance that can receive notifications

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/alarms/recipients

The above command returns JSON structured like this:

[
  {
    "id": 1,
    "type": "email",
    "value": "team@84codes.com",
    "name": "Default",
    "options": null
  },
  {
    "id": 2,
    "type": "email",
    "value": "notification@example.com",
    "name": "Low",
    "options": null
  }
]

GET https://api.cloudamqp.com/api/alarms/recipients

Use the id of a recipient to retrieve it

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/alarms/recipients/1

The above command returns JSON structured like this:

{
  "id": 1,
  "type": "email",
  "value": "team@example.com",
  "name": "Default",
  "options": null
}

GET https://api.cloudamqp.com/api/alarms/recipients/<id>

Update a specific recipient with new information

PUT https://api.cloudamqp.com/api/alarms/recipients/<id>

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=email&value=alarms@example.com&name=High"
  https://api.cloudamqp.com/api/alarms/recipients/2

This updates an email recipient for notification@example.com that can be used to receive alarm notifications. The returned JSON structured look like this:

{
  "id": 2,
  "type": "email",
  "value": "alarm@example.com",
  "name": "High",
  "options": {},
}
Parameter Description
id The recipient identifier
Parameter Required Type Description
type true string The type of notification to be sent
value true string Endpoint to where the notification will be sent
name false string Optional, name for the recipient

Use the id of a specific recipient to remove it

curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/alarms/recipients/2

DELETE https://api.cloudamqp.com/api/alarms/recipients/<id>

Parameter Description
id Use the id of the recipient that you want to delete

You can create one or more alarms per type, which for example, lets you setup an low urgency alarm on a low threshold first and then another alarm with higher urgency to be triggered later.

Parameters enabled, recipients and reminder_interval are optional. enabled defaults to true, recipients defaults to all and reminder_interval defaults to disabled.

Available alarms types:

Name Type Dedicated Shared Description
CPU cpu yes - Alarm if CPU usage is above a certain level for a period of time
Memory memory yes - Alarm if memory usage is above a certain level for a period of time
Disk space disk yes - Alarm id disk usage is above a certain level for a period of time
Queue length queue yes yes Alarm if a queue get longer than count for a period of time
Connection count connection yes yes Alarm if connection count is above count for a period of time
Connection flow flow yes yes Alarm if a connection has been in flow state for a period of time
Consumer count consumer yes yes Alarm if a consumer count is below count for a period of time
Channel count channel yes yes Alarm if channel count is above count for a period of time
Net split netsplit yes - Alarm if net split occurs and isn't resolved for a period of time
Server unreachable server_unreachable yes - Alarm if server is unreachable
Notice notice yes yes Notifications on events such as planned or emergency maintenance

POST https://api.cloudamqp.com/api/alarms

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=cpu&value_threshold=90&time_threshold=600&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if the CPU usage is above 90% for 10 minutes or more.

{
  "type": "cpu",
  "enabled": true,
  "value_threshold": 90,
  "time_threshold": 600,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
value_threshold int The value threshold to trigger the alarm
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=memory&value_threshold=90&time_threshold=600&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if the memory usage is above 90% for 10 minutes or more.

{
  "type": "memory",
  "enabled": true,
  "value_threshold": 90,
  "time_threshold": 600,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
value_threshold int The value threshold to trigger the alarm
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=disk&value_threshold=5&time_threshold=600&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if available disk space is above 5Gb for 10 minutes or more.

{
  "type": "disk",
  "enabled": true,
  "value_threshold": 5,
  "time_threshold": 600,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
value_threshold int The value threshold to trigger the alarm (unit is gigabytes if calculation fixed)
value_calculation string How to treat value threshold, possible values: fixed (default), percentage
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=queue&value_threshold=10&time_threshold=600&queue_regex=[a-z]%2B&vhost_regex=[a-z]%2B&message_type=total&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if a queue which matches the regex has more than 10 messages for 10 minutes.

{
  "type": "queue",
  "enabled": true,
  "value_threshold": 10,
  "time_threshold": 600,
  "queue_regex": "[a-z]%2B",
  "vhost_regex": "[a-z]%2B",
  "message_type": "total",
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
value_threshold int The value threshold to trigger the alarm
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
queue_regex string Queue regex expression to trigger the alarm (Optional)
vhost_regex string Vhost regex expression to trigger the alarm (Optional)
message_type string Message types (total, unacked, ready) of the queue to trigger the alarm (Optional)
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=connection&value_threshold=100&time_threshold=600&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if there is 10 or more connections for 10 minutes.

{
  "type": "connection",
  "enabled": true,
  "value_threshold": 10,
  "time_threshold": 600,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
value_threshold int The value threshold to trigger the alarm
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=flow&time_threshold=600&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if a connection has been in flow state for 10 minutes.

{
  "type": "connection",
  "enabled": true,
  "time_threshold": 600,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=consumer&value_threshold=1&time_threshold=600&queue_regex=[a-z]%2B&vhost_regex=[a-z]%2B&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if a queue which matches the regex has less than 1 consumer for 10 minutes.

{
  "type": "consumer",
  "enabled": true,
  "value_threshold": 1,
  "time_threshold": 600,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
value_threshold int The value threshold to trigger the alarm
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
queue_regex string Queue regex expression to trigger the alarm (Optional)
vhost_regex string Vhost regex expression to trigger the alarm (Optional)
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=netsplit"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if a net split occurs and isn't resolved within 10 minutes.

{
  "type": "netsplit",
  "enabled": true,
  "time_threshold": 600
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=notice&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

Notifies recipients on events such as planned or emergency maintenance

{
  "type": "notice",
  "enabled": true,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=server_unreachable&recipients[]=1"
  https://api.cloudamqp.com/api/alarms

Notifies recipients if the server is unreachable

{
  "type": "server_unreachable",
  "enabled": true,
  "recipients": [1]
}
Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm (Optional)
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger (Optional)
reminder_interval int How often you wish to get a reminder on this alarm (Optional)

Retrive all alarms used for the instance.

If the recipients array is empty, it means that all recipients will be used if the alarm is triggered.

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/alarms

Example of the default created alarms:

[
    {
        "time_threshold": 600,
        "value_threshold": 90,
        "id": 7395,
        "type": "cpu",
        "recipients": [],
        "enabled": true
    },
    {
        "time_threshold": 600,
        "value_threshold": 90,
        "id": 7396,
        "type": "memory",
        "recipients": [],
        "enabled": true
    },
    {
        "time_threshold": 600,
        "value_threshold": 5,
        "id": 7397,
        "type": "disk",
        "recipients": [],
        "enabled": true
    },
    {
        "id": 7398,
        "type": "notice",
        "recipients": [],
        "enabled": true
    }
]

GET https://api.cloudamqp.com/api/alarms

Use the id of a specific alarm to retrieve it.

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/alarms/7395

The above command returns JSON structured like this:

{
  "time_threshold": 600,
  "value_threshold": 90,
  "id": 7395,
  "type": "cpu",
  "recipients": [1],
  "enabled": true
}

GET https://api.cloudamqp.com/api/alarms/<id>

Use the id of a specific alarm to update it

PUT https://api.cloudamqp.com/api/alarms/<id>

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "type=cpu&enabled=true&value_threshold=90&time_threshold=600&recipients=[1]"
  https://api.cloudamqp.com/api/alarms

This sets the alarm to trigger if the CPU usage is above 90% for 10 minutes or more.

Parameter Type Description
type string The alarm type, valid types see table Available alarms types above
enabled bool Enable or disable the alarm
value_threshold int The value threshold to trigger the alarm
time_threshold int For how long (in seconds) the value_threshold should be active before trigger alarm
recipients []int Recipients identifiers for which should receive notifications when the alarm trigger

For more examples, see under the section about creating alarm.

Use the id for a specific alarm to remove it.

curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/alarms/7395

DELETE https://api.cloudamqp.com/api/alarms/<id>

Parameter Description
id Use the id of the alarm that you want to delete

AWS Eventbridge🔗

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/eventbridges

The above command returns JSON structured like this:

[
  {
    "id":1,
    "account_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "aws_region":"eu-north-1",
    "aws_account_id":123456789012,
    "vhost":"yhfhkuqb",
    "queue":"eventbridge_queue",
    "status":null,
    "with_headers":true
  }
]

Status field always set to null, unless there is an error starting the AWS EventBridge.

GET https://api.cloudamqp.com/api/eventbridges

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/eventbridges/1

The above command returns JSON structured like this:

{
  "id":1,
  "account_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "aws_region":"eu-north-1",
  "aws_account_id":123456789012,
  "vhost":"yhfhkuqb",
  "queue":"eventbridge_queue",
  "status":null,
  "with_headers":true
}

Status field always set to null, unless there is an error starting the AWS EventBridge.

GET https://api.cloudamqp.com/api/eventbridges/<id>

Parameter Description
id The eventbridge's id

The command below is for including message headers in the event data

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -d \
  '{"vhost":"yhfhkuqb", "queue":"eventbridge_queue", "aws_region":"eu-north-1", "aws_account_id":123456789012, "with_headers":true}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/eventbridges

The command below is for excluding message headers in the event data

  curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -d \
  '{"vhost":"yhfhkuqb", "queue":"eventbridge_queue", "aws_region":"eu-north-1", "aws_account_id":123456789012, "with_headers":false}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/eventbridges

Adds an AWS EventBridge integration and returns its given identifier

Both above commands returns JSON structured like this:

{
  "id":1,
}

POST https://customer.cloudamqp.com/api/eventbridges

Parameter Description
vhost The VHost the queue resides in
queue A (durable) queue on your RabbitMQ instance
aws_region The AWS region where you the events to be sent to
aws_account_id The AWS Account ID where you want the events to be sent to
with_headers Include message headers in the event data ({"headers": {}, "body": {"your": "message"}})

Removes an AWS EventBridge integration

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -X DELETE https://api.cloudamqp.com/api/eventbridges/1

DELETE https://api.cloudamqp.com/api/eventbridges/<id>

Parameter Description
id The eventbridge's id

Webhooks🔗

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/webhooks

The above command returns JSON structured like this:

[
  {
    "id":1,
    "webhook_uri":"http://www.example.com/endpoint",
    "queue":"push-queue",
    "last_status":null,
    "concurrency":10,
    "vhost":"hptqevnp"
  }
]

GET https://api.cloudamqp.com/api/webhooks

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/webhooks/1

The above command returns JSON structured like this:

{
  "id":1,
  "webhook_uri":"http://www.example.com/endpoint",
  "queue":"push-queue",
  "last_status":null,
  "concurrency":10,
  "vhost":"hptqevnp"
}

GET https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID

Parameter Description
WEBHOOK_ID The webhook identifier
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "concurrency=10&vhost=test&webhook_uri=http://www.example.com/endpoint&queue=push-queue" \
  https://api.cloudamqp.com/api/webhooks

A POST request will be made for each message in the queue to this endpoint. If the endpoint returns a HTTP status code in the 200 range the message will be acknowledged and removed from the queue, otherwise retried.

POST https://api.cloudamqp.com/api/webhooks

Parameter Description
concurrency Max simultaneous outstanding requests to the endpoint
webhook_uri The URL to POST the messages to
vhost The vhost to connect to
queue The queue to consume from
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "concurrency=1&vhost=test&webhook_uri=http://www.example.com/endpoint&queue=push-queue" \
  https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID

PUT https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID

Parameter Description
WEBHOOK_ID The webhook identifier
Parameter Description
concurrency Max simultaneous outstanding requests to the endpoint
webhook_uri The URL to POST the messages to
vhost The vhost to connect to
queue The queue to consume from
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/webhooks/1

DELETE https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID

Parameter Description
WEBHOOK_ID The id of the webhook to delete

RabbitMQ Configuration🔗

curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/config

The above command returns JSON structured like this:

{
  "rabbitmq_prometheus.return_per_object_metrics": null,
  "rabbit.heartbeat": 120,
  "rabbit.channel_max": 0,
  "rabbit.consumer_timeout": 7200000,
  "rabbit.vm_memory_high_watermark": 0.81,
  "rabbit.queue_index_embed_msgs_below": null,
  "rabbit.log.exchange.level": "error",
  "rabbitmq_mqtt.exchange": "amq.topic",
  "rabbit.default_vhost": "/"
}

GET https://api.cloudamqp.com/api/config

A list of settings that are exposed to changes.

curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/config/available_settings

The above command returns JSON structured like this:

[
  {
    "name": "rabbitmq_prometheus.return_per_object_metrics",
    "type": "boolean",
    "desc": "If you want prometheus to return its metrics per object instead of an aggregated value",
    "version_requirement": "3.8.0",
    "default": false
  },
  {
    "name": "rabbit.heartbeat",
    "type": "int",
    "desc": "Set the server AMQP 0-9-1 heartbeat timeout in seconds.",
    "default": 120,
    "min": 0
  },
  {
    "name": "rabbit.channel_max",
    "type": "int",
    "desc": "Set the maximum permissible number of channels per connection 0 means 'no limit'.",
    "default": 128,
    "min": 0
  },
  {
    "name": "rabbit.consumer_timeout",
    "type": "int",
    "desc": "A consumer that has recevied a message and does not acknowledge that message within the timeout in milliseconds, will get cancelled, the channel will close and the message will be returned to the queue. Max 25,000,000. To disable, set value to false.",
    "version_requirement": "3.8.15",
    "default": 900000,
    "min": 10000,
    "max": 25000000
  },
  {
    "name": "rabbit.vm_memory_high_watermark",
    "type": "float",
    "desc": "When the server will enter memory based flow-control as relative to the maximum available memory. Allowed values (0.40 - 0.90)",
    "default": 0.81,
    "min": 0.4,
    "max": 0.9
  },
  {
    "name": "rabbit.queue_index_embed_msgs_below",
    "type": "int",
    "desc": "Size in bytes below which to embed messages in the queue index. Max 10,485,760 while 0 will turn off payload embedding in the queue index.",
    "default": 4096,
    "min": 0,
    "max": 10485760
  },
  {
    "name": "rabbitmq_mqtt.exchange",
    "type": "symbol",
    "desc": "The exchange option determines which exchange messages from MQTT clients are published
      to. The exchange is expected to be a topic exchange.",
    "default": "amq.topic"
  },
  {
    "name": "rabbit.default_vhost",
    "type": "symbol",
    "desc": "Virtual host to create when RabbitMQ creates a new database from scratch.
      The exchange `amq.rabbitmq.log` will exist in this virtual host. RabbitMQ restart required.",
    "default": "/"
  }
]

GET https://api.cloudamqp.com/api/config/available_settings

curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -d'{"rabbit.vm_memory_high_watermark": 0.5}'\
  https://api.cloudamqp.com/api/config

The above command returns JSON structured like this:

{
  "success": "RabbitMQ config has been updated"
}

PUT https://api.cloudamqp.com/api/config

Parameter Description
rabbitmq_prometheus.return_per_object_metrics If you want prometheus to return its metrics per object instead of an aggregated value.
rabbit.heartbeat Set the server AMQP 0-9-1 heartbeat timeout in seconds.
rabbit.channel_max Set the maximum permissible number of channels per connection 0 means 'no limit'.
rabbit.consumer_timeout A consumer that has recevied a message and does not acknowledge that message within the timeout in milliseconds, will get cancelled, the channel will close and the message will be returned to the queue. Max 25,000,000. To disable, set value to false.
rabbit.vm_memory_high_watermark When the server will enter memory based flow-control as relative to the maximum available memory. Allowed values (0.40 - 0.90)
rabbit.queue_index_embed_msgs_below Size in bytes below which to embed messages in the queue index. Max 10,485,760 while 0 will turn off payload embedding in the queue index.
rabbit.connection_max Set the maximum permissible number of connections 0 means 'no limit'.
rabbit.max_message_size The largest allowed message payload size in bytes.
rabbitmq_mqtt.exchange The exchange option determines which exchange messages from MQTT clients are published to.
rabbit.default_vhost Virtual host to create when RabbitMQ creates a new database from scratch.

Account🔗

Initiate rotation of the user password on your instance.

curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
  https://api.cloudamqp.com/api/account/rotate-password

POST https://api.cloudamqp.com/api/account/rotate-password

curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
  https://api.cloudamqp.com/api/account/rotate-apikey

POST https://api.cloudamqp.com/api/account/rotate-apikey

Actions🔗

curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"enable":true, "nodes": ["some-server-01"]}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/hipe

PUT https://api.cloudamqp.com/api/actions/hipe

Parameter Description
enabled Boolean, whether to enable or disable HiPE
nodes (Optional) A list of nodes to enable HiPE for, skip parameter to enable HiPE on all nodes

Firehose

Not recommended to run in production environments.

curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"enable":true, "vhost": "/"}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/firehose

PUT https://api.cloudamqp.com/api/actions/firehose

Parameter Description
enabled Boolean, whether to enable or disable Firehose
vhost String, virtual host to enable tracing on
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  -d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/restart
Parameter Description
nodes (Optional) A list of node names
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  https://api.cloudamqp.com/api/actions/cluster-restart
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  -d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/mgmt-restart
Parameter Description
nodes (Optional) A list of node names
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  -d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/stop
Parameter Description
nodes (Optional) A list of node names
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  -d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/start
Parameter Description
nodes (Optional) A list of node names
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  -d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/reboot
Parameter Description
nodes (Optional) A list of node names

Always updates to latest compatible version

curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  https://api.cloudamqp.com/api/actions/upgrade-erlang
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  -d '{"version": "3.10.7"}' -H "content-type: application/json" \
  https://api.cloudamqp.com/api/actions/upgrade-rabbitmq
Parameter Description
version String, RabbitMQ version

Always updates to latest possible version of both RabbitMQ and Erlang

curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  https://api.cloudamqp.com/api/actions/upgrade-rabbitmq-erlang

Returns what version of Erlang and RabbitMQ the cluster will update to

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
  https://api.cloudamqp.com/api/actions/new-rabbitmq-erlang-versions

Integrations🔗

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/integrations/logs

The above command returns JSON structured like this:

[
  {
    "id":10,
    "type":"papertrail",
    "config": {
      "url":"logs.papertrail.com:2123"
    },
    "error": "",
    "account_id": "99ed6d99-fjsd-7d7d-8ujd-2f53asf34weaws"
  }
]

GET https://api.cloudamqp.com/api/integrations/logs

Available log integrations are:

POST https://api.cloudamqp.com/api/integrations/logs/<SYSTEM>

Parameter Description
SYSTEM The logs system to integrate to, any of these: azure_monitor, cloudwatchlog, coralogix, datadog, logentries, loggly, papertrail, scalyr or splunk

Use Azure portal to configure external access for Azure Monitor. Tutorial to find/create all params below.

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "tenant_id=CHANGEM&application_id=CHANGEME&application_secret=CHANGEME&dce_uri=CHANGEME&table=CHANGEME&dcr_id=CHANGEME" \
  https://api.cloudamqp.com/api/integrations/logs/azure_monitor
Parameter Description
tenant_id Directory (tenant) ID.
application_id Application (client) ID. How to create an application
application_secret Application secret
dce_uri Data Collection Endpoint URI. How to create a DCE
table Table name. Table should have the columns: TimeGenerated, Host, Event, Level and Message. How to create a table
dcr_id ID of Data Collection Rule that your DCE is linked to. Find the DCR ID

Need to create an IAM user with programmatic permissions:

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98" \
  https://api.cloudamqp.com/api/integrations/logs/cloudwatchlog
Parameter Description
region The AWS region to use
access_key_id The access key id to use
secret_access_key The secret that goes with the key id

Create a 'Send-Your-Data' private API key, Coralogix documentation

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "private_key=CHANGEM&endpoint=CHANGEME&application=CHANGEME&subsystem=CHANGEME" \
  https://api.cloudamqp.com/api/integrations/logs/coralogix
Parameter Description
private_key The API key used for authentication
endpoint The syslog destination to send the logs to (e.g. syslog.eu2.coralogix.com:6514)
application The "Application Name", see Coralogix documentation
subsystem The "Subsystem Name", see Coralogix documentation

Create a Datadog API key at app.datadoghq.com

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX&region=us1&tags=env=dev,region=europe" \
  https://api.cloudamqp.com/api/integrations/logs/datadog
Parameter Description
api_key The API key ised for authentication
region The region to send the logs, [us1, us3, us5, eu]
tags (Optional) Enter tags for the integration, like this: env=prod,region=europe

If tags are used, the value part (prod, europe) must start with a letter. Read more about tags format in the Datadog documentation

Create a Logentries token at logentries add-log

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "token=XXXXXXXXXXXXX" \
  https://api.cloudamqp.com/api/integrations/logs/logentries
Parameter Description
token A TCP token for authentication

Create a Loggly token at https://{your-company}.loggly.com/tokens

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "token=XXXXXXXXX" \
  https://api.cloudamqp.com/api/integrations/logs/loggly
Parameter Description
token The token used for authentication

Create a Papertrail endpoint at papertrail setup

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "url=logs.papertrail.com:2123" \
  https://api.cloudamqp.com/api/integrations/logs/papertrail
Parameter Description
url The URL to push the logs to

Create a Log write token at Scalyr keys

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "token=XXXXX&host=app.scalyr.com" \
  https://api.cloudamqp.com/api/integrations/logs/scalyr
Parameter Description
token The token used for authentication
host Destination to send the logs [app.scalyr.com, app.eu.scalyr.com]

Create a HTTP Event Collector token at https://<your-splunk>.cloud.splunk.com/en-US/manager/search/http-eventcollector

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "token=XXXXX&host_port=innput-prd-p-rdq96mdbptj4.cloud.splunk.com:8080&sourcetype=generic_single_line" \
  https://api.cloudamqp.com/api/integrations/logs/splunk
Parameter Description
token The token used for authentication
host_port Destination to send the logs
sourcetype Assigns source type to the data exported
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX&region=us1&tags=env=dev" \
  https://api.cloudamqp.com/api/integrations/logs/datadog/11

PUT https://api.cloudamqp.com/api/integrations/logs/<INT_ID>

Parameter Description
INT_ID The ID of the integration to update

See above supported systems and paramaters

curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/integrations/logs/636

DELETE https://api.cloudamqp.com/api/integrations/logs/<INT_ID>

Parameter Description
INT_ID The ID of the integration to delete
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/integrations/metrics

The above command returns JSON structured like this:

[
  {
    "id":10,
    "type":"datadog",
    "config": {
      "api_key":"XXXXXXXXXXXXX",
      "region": "us1",
      "tags": "env=dev"
    },
    "error": "",
    "account_id": "99ed6d99-fjsd-7d7d-8ujd-2f53asf34weaws"
  }
]

GET https://api.cloudamqp.com/api/integrations/metrics

Available Prometheus metrics integrations:

Note: these are available on all LavinMQ clusters and RabbitMQ cluster running version 3.10.0 or later.

We recommend you to use the Prometheus metrics integrations but these legacy metrics integrations are still also available:

POST https://api.cloudamqp.com/api/integrations/metrics/<SYSTEM>

Parameter Description
SYSTEM The metrics system to integrate to, any of these: azure_monitor, cloudwatch, cloudwatch_v2, cloudwatch_v3, datadog, datadog_v2, datadog_v3, dynatrace, librato, newrelic_v2, newrelic_v3, splunk, splunk_v2, stackdriver or stackdriver_v2
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "connection_string=InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://ingestion.azuremonitor.com/" \
  https://api.cloudamqp.com/api/integrations/metrics/azure_monitor

Parameter Description
connection_string Azure Application Insights Connection String
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98" \
  https://api.cloudamqp.com/api/integrations/metrics/cloudwatch

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98" \
  https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v2
Parameter Description
region The AWS region to use
access_key_id The access key id to use (Needs to have the PutMetricData permission)
secret_access_key The secret that goes with the key id
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&iam_role=arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME&iam_external_id=cloudamqp-abc123" \
  https://api.cloudamqp.com/api/integrations/metrics/cloudwatch

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&iam_role=arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME&iam_external_id=cloudamqp-abc123" \
  https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v2

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&iam_role=arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME&iam_external_id=cloudamqp-abc123" \
  https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v3
Parameter Description
region The AWS region to use
iam_role An AWS IAM role in your account with PutMetricData permission.
iam_external_id Create own external identifier that match the role created. E.g. "cloudamqp-abc123".
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "email=my@email.com&api_key=9876thjio90876tyu" \
  https://api.cloudamqp.com/api/integrations/metrics/librato
Parameter Description
email The email registered at librato
api_key The API key
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX&region=us1" \
  https://api.cloudamqp.com/api/integrations/metrics/datadog

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX&region=us1" \
  https://api.cloudamqp.com/api/integrations/metrics/datadog_v2
Parameter Description
api_key The API key for Datadog
region The region to send the logs, [us1, us3, us5, eu]
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX" \
  https://api.cloudamqp.com/api/integrations/metrics/datadog_v3
Parameter Description
api_key The API key for Datadog
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "environment_id=XXXXXXX&access_token=XXXXX" \
  https://api.cloudamqp.com/api/integrations/metrics/dynatrace
Parameter Description
environment_id Environment ID for a Dynatrace account
access_token Access token with at least Ingest metrics permission
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXXXXXX&region=us" \
  https://api.cloudamqp.com/api/integrations/metrics/newrelic_v2

Parameter Description
api_key The API key for NewRelic
region US or EU
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXXXXXX" \
  https://api.cloudamqp.com/api/integrations/metrics/newrelic_v3
Parameter Description
api_key The API key for NewRelic

Create a HTTP Event Collector token at https://<your-splunk>.cloud.splunk.com/en-US/manager/search/http-eventcollector

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "token=XXXXX&host_port=innput-prd-p-rdq96mdbptj4.cloud.splunk.com:8080&sourcetype=generic_single_line" \
  https://api.cloudamqp.com/api/integrations/metrics/splunk
Parameter Description
token The token used for authentication
host_port Destination to send the logs
sourcetype Assigns source type to the data exported
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "token=XXXXX&endpoint=input-prd-p-rdq96mdbptj4.cloud.splunk.com:8080" \
  https://api.cloudamqp.com/api/integrations/metrics/splunk
Parameter Description
token The token secret used for authentication
endpoint HEC destination to send the logs

Request parameter that are optional and can be added to each metric integration.

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98&tags=env=prod,region=europe" \
  https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v2

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX&region=us1&tags=env=prod,region=europe" \
  https://api.cloudamqp.com/api/integrations/metrics/datadog_v2
Parameter Description
tags Enter tags for the integration, like this: env=prod,region=europe
queue_regex Allowlist to filter queues using regular expression. Leave empty to include all queues.
vhost_regex Allowlist to filter vhost using regular expression. Leave empty to include all queues.
include_ad_queues  true/false By default we don't include auto-delete queues in the metrics.
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "api_key=XXXXXXXXXXXXX&region=us1&tags=env=dev,region=us1" \
  https://api.cloudamqp.com/api/integrations/metrics/10

PUT https://api.cloudamqp.com/api/integrations/metrics/<INT_ID>

Parameter Description
INT_ID The ID of the integration to update

See above supported systems and paramaters

curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/integrations/metrics/636

DELETE https://api.cloudamqp.com/api/integrations/metrics/<INT_ID>

Parameter Description
INT_ID The ID of the integration to delete

Maintenance🔗

List, run and reschedule maintenance

curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx https://api.cloudamqp.com/api/maintenance

The above command returns JSON structured like this:

[
  {
    "id": 1234,
    "scheduled_by": "2022-02-05 00:36:00 +0000",
    "status": "scheduled",
    "required_by": "2022-03-05 00:00:00 +0000",
    "duration": "1 hour",
    "description": "..."
  }
]

GET https://api.cloudamqp.com/api/maintenance

curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"scheduled_by":"2022-02-05 00:36:00 +0000"}' \
  -H "Content-type: application/json" \
  https://api.cloudamqp.com/api/maintenance/1234

PUT https://api.cloudamqp.com/api/maintenance/<ID>

Parameter Description
scheduled_by Date string
Parameter Description
ID Maintenance id
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx https://api.cloudamqp.com/api/maintenance/<ID>/run

POST https://api.cloudamqp.com/api/maintenance/<ID>/run

Parameter Description
ID Maintenance id

Maintenance Settings🔗

Get and update maintenance settings of the cluster. See Maintenance by the CloudAMQP team for more information.

Fetches the current maintenance settings for the cluster.

GET https://api.cloudamqp.com/api/maintenance/settings

curl -X GET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx https://api.cloudamqp.com/api/api/maintenance/settings

The above command returns JSON structured like this:

{
  "preferred_maintenance_day": "Monday",
  "preferred_maintenance_time": "03:00",
  "automatic_updates": false
}

Updates the maintenance settings for the cluster.

POST https://api.cloudamqp.com/api/maintenance/settings

curl -X POST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{ "preferred_maintenance_day": "Monday", "preferred_maintenance_time": "00:00", "automatic_updates": "true" }' \
-H "content-type: application/json" https://api.cloudamqp.com/api/api/maintenance/settings
Parameter Required Type Description
preferred_maintenance_day true String Day of the week for scheduling maintenances (e.g. Monday, Tuesday, etc).
preferred_maintenance_time true String UTC time for scheduling maintenances (e.g 00:00).
automatic_updates false Boolean Enable/Disable automatic version upgrades updates. Currently only supported by LavinMQ. From August 5, 2025, will default to true for LavinMQ.

VPC🔗

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/vpc-peering

The above command returns JSON structured like this:

{
  "rows": [
    {
      "tag_set": [],
      "vpc_peering_connection_id": "pcx-98yi98u",
      "requester_vpc_info": {
        "owner_id": "76567890987",
        "vpc_id": "vpc-876thui8",
        "cidr_block": "10.128.0.0/24"
      },
      "accepter_vpc_info": {
        "owner_id": "987687678",
        "vpc_id": "vpc-i876thuio",
        "cidr_block": "10.0.0.0/16"
      },
      "status": {
        "code": "active",
        "message": "Active"
      },
      "routes": [
        {
          "destination": "10.0.0.0/16",
          "state": "active"
        }
      ]
    }
  ],
  "vpc": {
    "id": "vpc-876thui8",
    "name": "test-speedcar",
    "subnet": "10.128.0.0/24"
  }
}

GET https://api.cloudamqp.com/api/vpc-peering

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d "peer_account_id=1234567890123456&peer_vpc_id=vpc-0123456789123&peer_subnet=10.20.30.0%2F24"
  https://api.cloudamqp.com/api/vpc-peering

This endpoint creates a peering request from the VPC hosting your cluster to the VPC you specify in the request.

Note: The request requires different parameters depending on if you are using Google Cloud Platform or Amazon Web Services.

POST https://api.cloudamqp.com/api/vpc-peering

Parameter Description
peer_account_id Your account ID at the cloud provider
peer_vpc_id Your VPC ID
peer_subnet Peer subnet, whole or part of your VPC subnet
Parameter Description
peer_network_uri Your GCE network uri
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/vpc-peering/request/1

This endpoint accepts a pending peering request.

PUT https://api.cloudamqp.com/api/vpc-peering/<PEERING_REQUEST_ID>

Parameter Description
PEERING_REQUEST_ID The ID of the peering request
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/vpc-peering/78

DELETE https://api.cloudamqp.com/api/vpc-peering/<PCX_ID>

Parameter Description
PCX_ID The ID of the peering connection

VPC Connect🔗

This endpoint handles PrivateLink for Amazon Web Services or Azure and Private Service Connect for Google Cloud Platform.

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/vpc-connect

The above command returns JSON structured like this:

// AWS
{
  "updated_at": "2023-11-01 12:00:00 +0000",
  "status": "enabled",
  "service_name": "com.amazonaws.vpce.<region>.vpce-svc-<id>",
  "allowed_principals": [
      "arn:aws:iam::aws-account-id:root",
      "arn:aws:iam::aws-account-id:user/user-name"
  ],
  "active_zones": [
      "<active-zone>"
  ]
}

// Azure
{
  "updated_at": "2023-11-01 12:00:00 +0000",
  "status": "enabled",
  "server_name": "<server-name>",
  "alias": "<server-name>.<guid>.<region>.azure.privatelinkservice",
  "approved_subscriptions": [
      "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
  ]
}

// GCP
{
  "updated_at": "2023-11-01 12:00:00 +0000",
  "status": "enabled",
  "server_name": "<server-name>",
  "allowed_projects": [
      "project-id"
  ]
}

GET https://api.cloudamqp.com/api/vpc-connect

# AWS
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"allowed_principals":["arn:aws:iam::aws-account-id:user/user-name"]}' \
  -H "content-type: application/json" \
  https://api.cloudamqp.com/api/vpc-connect

# Azure
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"approved_subscriptions":["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"]}' \
  -H "content-type: application/json" \
  https://api.cloudamqp.com/api/vpc-connect

# GCP
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"allowed_projects":["project-id"]}' \
  -H "content-type: application/json" \
  https://api.cloudamqp.com/api/vpc-connect

This endpoint enables PrivateLink (AWS and Azure) and Private Service Connection (GCP) for the instance with a standalone VPC. If no VPC exists, one is created. Once enabled, the provided allowed_principals, approved_subscriptions or allowed_projects will be applied to the allowlist.

Note: The request requires different parameters to the allowlist depending on if you are using Amazon Web Services, Azure or Google Cloud Platform.

POST https://api.cloudamqp.com/api/vpc-connect

Parameter Description
allowed_principals Array of ARN principals

ARN principal format for AWS account, IAM user and role:

More information can be found at, AWS PrivateLink

Parameter Description
approved_subscriptions Array of subscriptions ID

Subscription ID format (guid):

More information can be found at, Azure PrivateLink

Parameter Description
allowed_projects Array of project IDs

Project ID format:

More information can be found at, GCP Private Service Connect

# AWS
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"allowed_principals":["arn:aws:iam::aws-account-id:user/user-name"]}' \
  -H "content-type: application/json" \
  https://api.cloudamqp.com/api/vpc-connect

# Azure
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"approved_subscriptions":["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"]}' \
  -H "content-type: application/json" \
  https://api.cloudamqp.com/api/vpc-connect

# GCP
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  -d '{"allowed_projects":["project-id"]}' \
  -H "content-type: application/json" \
  https://api.cloudamqp.com/api/vpc-connect

This endpoint updates the allowlist for the enabled VPC connect (PrivateLink/Private Service Connect). Please note that the full list should be given, any current entries in the allowlist will be removed if it's not in the list sent in this request.

PUT https://api.cloudamqp.com/api/vpc-connect

Parameter Description
allowed_principals Array of ARN principals

ARN principal format for AWS account, IAM user and role:

Parameter Description
approved_subscriptions Array of subscriptions ID

Subscription ID format (guid):

Parameter Description
allowed_projects Array of project IDs

Project ID format:

curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
  https://api.cloudamqp.com/api/vpc-connect

DELETE https://api.cloudamqp.com/api/vpc-connect

Authentication🔗

Authentication is done by sending your API key in the user or password field for Basic Auth.

curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
  https://api.cloudamqp.com/api/<endpoint>

You can find your API key on the details page for your instance.

Formats🔗

All API end points support form FormData and JSON in the request. You need to format the request accordingly and if you send the request as JSON be sure to add the content type header content-type: application/json otherwise the server won't be able to parse your request.

Status Codes🔗

Status Code Meaning
200 The request completed successfully.
204 The request completed successfully.
400 Bad Request -- Your request might be invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The resource requested is hidden for administrators only.
404 Not Found -- The specified resource could not be found.
405 Method Not Allowed -- You tried to access a resource with an invalid method.
429 Too Many Requests -- Rate limiting, you have requested too many resources in a given amount of time.
500 Internal Server Error -- We had a problem with our server. Try again later.