NAV Navbar
shell
  • Introduction
  • Nodes
  • Plugins
  • Firewall
  • Alarms
  • Webhooks
  • Actions
  • Integrations
  • VPC
  • Authentication
  • Formats
  • Status Codes
  • Introduction

    Documentation for CloudAMQP API.

    Nodes

    List 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",
        "hipe": false,
        "rabbitmq_version": "3.7.8",
        "erlang_version": "1:20.1-1",
        "running": true
      }
    ]
    

    HTTP Request

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

    Plugins

    List 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
      }
    ]
    

    HTTP Request

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

    Enable plugin

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

    HTTP Request

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

    Request Parameters

    Parameter Description
    plugin_name The name of the plugin to enable

    Disable plugin

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

    HTTP Request

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

    URL Parameters

    Parameter Description
    PLUGIN_NAME The name of the plugin to disable

    List community plugins

    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"
      }
    ]
    

    HTTP Request

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

    Enable plugin

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

    HTTP Request

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

    Request Parameters

    Parameter Description
    plugin_name The name of the plugin to enable

    Disable plugin

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

    HTTP Request

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

    URL Parameters

    Parameter Description
    PLUGIN_NAME The name of the plugin to disable

    Firewall

    Get firewall settings

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

    The above command returns JSON structured like this:

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

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

    HTTP Request

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

    Configure firewall

      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
    

    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 benfits of specifing services instead of the ports is that we automatically map these to correct ports or port ranges.

    Available services to specify

    HTTP Request

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

    Request Parameters

    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

    List active alarms

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

    The above command returns JSON structured like this:

    [
      {
        "id": 7395,
        "type": "cpu",
        "value_threshold": 90,
        "time_threshold": 600,
        "queue_regex": "",
        "vhost_regex": ""
      }
    ]
    

    HTTP Request

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

    Configure alarm

    Available alarms:

    HTTP Request

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

    Request Parameters (CPU alarm)

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "type=cpu&value_threshold=90&time_threshold=600"
      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 Description
    type The type of alarm to set
    value_threshold What value to trigger the alarm for
    time_threshold For how long (in seconds) the value_threshold should be active before trigger alarm

    Request Parameters (Memory alarm)

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

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

    Parameter Description
    type The type of alarm to set
    value_threshold What value to trigger the alarm for
    time_threshold For how long (in seconds) the value_threshold should be active before trigger alarm

    Request Parameters (Disk usage alarm)

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "type=disk&value_threshold=5&time_threshold=600"
      https://api.cloudamqp.com/api/alarms
    

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

    Parameter Description
    type The type of alarm to set
    value_threshold What value to trigger the alarm for
    time_threshold For how long (in seconds) the value_threshold should be active before trigger alarm

    Request Parameters (Queue length alarm)

    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"
      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.

    Parameter Description
    type The type of alarm to set
    value_threshold What value to trigger the alarm for
    time_threshold For how long (in seconds) the value_threshold should be active before trigger alarm
    vhost_regex Regex for which vhost the queues are in
    queue_regex Regex for which queues to check

    Request Parameters (Connection count alarm)

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "type=connection&value_threshold=100&time_threshold=600"
      https://api.cloudamqp.com/api/alarms
    

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

    Parameter Description
    type The type of alarm to set
    value_threshold What value to trigger the alarm for
    time_threshold For how long (in seconds) the value_threshold should be active before trigger alarm

    Request Parameters (Consumer count)

    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"
      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.

    Parameter Description
    type The type of alarm to set
    value_threshold What value to trigger the alarm for
    time_threshold For how long (in seconds) the value_threshold should be active before trigger alarm
    vhost_regex Regex for which vhost the queues are in
    queue_regex Regex for which queues to check

    Request Parameters (Net split)

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

    Parameter Description
    type The type of alarm to set

    Delete alarm

    curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "type=cpu"
      https://api.cloudamqp.com/api/alarms
    
    curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "alarm_id=1234"
      https://api.cloudamqp.com/api/alarms
    

    HTTP Request

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

    URL Parameters

    Parameter Description
    alarm_id Use alarm_id when you want to delete a specific alarm
    type Use type when you want to delete all alarms of one type

    Webhooks

    List 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,
        "retry_interval":1,
        "concurrency":10,
        "vhost":"hptqevnp"
      }
    ]
    

    HTTP Request

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

    Create webhook

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "concurrency=10&retry_interval=1&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.

    HTTP Request

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

    Request Parameters

    Parameter Description
    concurrency Max simultaneous outstanding requests to the endpoint
    retry_interval In seconds. How often we retry if your endpoint fails
    webhook_uri The URL to POST the messages to
    vhost The vhost to connect to
    queue The queue to consume from

    Delete webhook

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

    HTTP Request

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

    URL Parameters

    Parameter Description
    WEBHOOK_ID The id of the webhook to delete

    Actions

    Enable/disable HiPE

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

    HTTP Request

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

    Request Parameters

    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

    Enable/disable Firehose

    Firehose

    Not recommended to run in production environments.

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

    HTTP Request

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

    Request Parameters

    Parameter Description
    enabled Boolean, whether to enable or disable Firehose
    vhost String, virtual host to enable tracing on

    Restart RabbitMQ

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      '{"nodes": ["some-server-01"]}' -H "Content-Type: application/json" \
      https://api.cloudamqp.com/api/actions/restart
    

    Request Parameters

    Parameter Description
    nodes (Optional) A list of node names

    Restart Cluster

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      https://api.cloudamqp.com/api/actions/cluster-restart
    

    Restart Management Interface

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      '{"nodes": ["some-server-01"]}' -H "Content-Type: application/json" \
      https://api.cloudamqp.com/api/actions/mgmt-restart
    

    Request Parameters

    Parameter Description
    nodes (Optional) A list of node names

    Stop Instance

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      '{"nodes": ["some-server-01"]}' -H "Content-Type: application/json" \
      https://api.cloudamqp.com/api/actions/stop
    

    Request Parameters

    Parameter Description
    nodes (Optional) A list of node names

    Start Instance

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      '{"nodes": ["some-server-01"]}' -H "Content-Type: application/json" \
      https://api.cloudamqp.com/api/actions/start
    

    Request Parameters

    Parameter Description
    nodes (Optional) A list of node names

    Reboot Instance

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      '{"nodes": ["some-server-01"]}' -H "Content-Type: application/json" \
      https://api.cloudamqp.com/api/actions/reboot
    

    Request Parameters

    Parameter Description
    nodes (Optional) A list of node names

    Upgrade Erlang

    Always updates to latest compatible version

    HTTP Request

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

    Upgrade RabbitMQ

    HTTP Request

    curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
      '{"version": "3.7.8"}' -H "Content-Type: application/json" \
      https://api.cloudamqp.com/api/actions/upgrade-rabbitmq
    

    Request Parameters

    Parameter Description
    version String, RabbitMQ version

    Integrations

    List log 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"
      }
    ]
    

    HTTP Request

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

    Add log integration

    Available log integrations are:

    HTTP Request

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

    URL Parameters

    Parameter Description
    SYSTEM The logs system to integrate to, any of these: papertrail, loggly, logentries or splunk

    Request Parameters (papertrail)

    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

    Request Parameters (loggly)

    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

    Request Parameters (logentries)

    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

    Request Parameters (splunk)

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "token=XXXXX&host_port=innput-prd-p-rdq96mdbptj4.cloud.splunk.com:8080" \
      https://api.cloudamqp.com/api/integrations/logs/splunk
    
    Parameter Description
    token The token used for authentication
    host_port Destination to send the logs

    Delete log integration

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

    HTTP Request

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

    URL Parameters

    Parameter Description
    INT_ID The ID of the integration to delete

    List metrics integrations

    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":"THE_API_KEY"
        },
        "error": "",
        "account_id": "99ed6d99-fjsd-7d7d-8ujd-2f53asf34weaws"
      }
    ]
    

    HTTP Request

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

    Add metrics integration

    Available metrics integrations are:

    HTTP Request

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

    URL Parameters

    Parameter Description
    SYSTEM The logs system to integrate to

    Request Parameters (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
    
    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

    Request Parameters (Librato)

    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

    Request Parameters (DataDog)

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "api_key=XXXXXXXXXXXXX" \
      https://api.cloudamqp.com/api/integrations/metrics/datadog
    
    Parameter Description
    api_key The API key

    Request Parameters (NewRelic)

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
      -d "license_key=XXXXXXXXXXXXXXXXX" \
      https://api.cloudamqp.com/api/integrations/metrics/newrelic
    
    Parameter Description
    license_key The license key for NewRelic

    Delete metric integration

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

    HTTP Request

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

    URL Parameters

    Parameter Description
    INT_ID The ID of the integration to delete

    VPC

    List peering requests

    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"
      }
    }
    

    HTTP Request

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

    Create peering request

    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.

    HTTP Request

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

    Request Parameters (AWS)

    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

    Request Parameters (GCP)

    Parameter Description
    peer_network_uri Your GCE network uri
    peer_subnet Your VPC subnet

    Delete peering request

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

    HTTP Request

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

    URL Parameters

    Parameter Description
    PCX_ID The ID of the peering connection

    Authentication

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

    curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
      https://api.cloudamqp.com/api/api/details
    

    You can find your API here 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

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your API key is wrong.
    403 Forbidden -- The kitten requested is hidden for administrators only.
    404 Not Found -- The specified kitten could not be found.
    405 Method Not Allowed -- You tried to access a kitten with an invalid method.
    500 Internal Server Error -- We had a problem with our server. Try again later.