CloudMQTT

Introduction

Documentation for CloudMQTT API.

Authentication

Verification is finished by sending your API key in the secret word field in Basic Auth, the username ought to be kept vacant.

curl -u :apikey \
  https://api.cloudmqtt.com/api/user

Instance

Restart

curl -XPOST -u :apikey \
  https://api.cloudmqtt.com/api/instance/restart

HTTP Request

POST https://api.cloudmqtt.com/api/instance/restart

Users

List users

curl -u :apikey \
  https://api.cloudmqtt.com/api/user

The above command returns JSON structured like this:

[
  {
    "username":"test"
  }
]

HTTP Request

GET https://api.cloudmqtt.com/api/user

Get user info

curl -u :apikey \
  https://api.cloudmqtt.com/api/user/test

The above command returns JSON structured like this:

{
  "username":"test",
  "acls": [{
    "topic":"sensor/%u",
    "read":false,
    "write":true
  }]
}

HTTP Request

GET https://api.cloudmqtt.com/api/user/<USERNAME>

URL Parameters

Parameter Description
USERNAME Username of the user to get info about

Create user

curl -u :apikey \
-d '{"username":"test", "password":"super_secret_password"}' \
-H "Content-Type:application/json" https://api.cloudmqtt.com/api/user

HTTP Request

POST https://api.cloudmqtt.com/api/user

Request Parameters

Parameter Description
username Username for the new user
password Password for the new user

Update user password

curl -XPUT -u :apikey \
-d '{"password":"super_secret_password"}' \
-H "Content-Type:application/json" https://api.cloudmqtt.com/api/user/test

HTTP Request

PUT https://api.cloudmqtt.com/api/user/<USERNAME>

URL Parameters

Parameter Description
USERNAME The user to update

Request Parameters

Parameter Description
password New password for the user

Delete user

curl -XDELETE -u :apikey \
https://api.cloudmqtt.com/api/user/test

HTTP Request

DELETE https://api.cloudmqtt.com/api/user/<USERNAME>

URL Parameters

Parameter Description
USERNAME The user to delete

ACL

List ACL rules

curl -u :apikey \
  https://api.cloudmqtt.com/api/acl

The above command returns JSON structured like this:

[
  {
    "type":"topic",
    "pattern":"test/users/topic",
    "read":true,
    "write":true,
    "username":"custom-user"
  },
  {
    "type":"pattern",
    "pattern":"sensor/%u/data",
    "read":true,
    "write":true,
    "username":null
  }
]

There are two kinds of ACL rules, point and example. Point ACLs is applied to a given client. Example ACLs is applied to all clients.

  • Use # for staggered trump card leg tendon.
  • Use + for single level special case upper leg tendon.

Making and erasing clients and ACLs are asyncronous errands and may take as long as a moment. Survey list API to see when prepared.

HTTP Request

GET https://api.cloudmqtt.com/api/acl

Create ACL Rule

curl -u :apikey \
-d '{"type": "topic", "username":"test", "pattern": "readonly", "read": true, "write": false}' \
-H "Content-Type:application/json" \
https://api.cloudmqtt.com/api/acl

HTTP Request

POST https://api.cloudmqtt.com/api/acl

Request Parameters

Parameter Description
type Which type of ACL rule to create
username Which user the rule applies to
pattern Pattern for which topics to match
read Allow reads
write Allow writes

Delete ACL Rule

curl -XDELETE -u :apikey \
-d '{"username":"test", "topic":"readonly"}'
-H "Content-Type:application/json" \
https://api.cloudmqtt.com/api/acl

HTTP Request

DELETE https://api.cloudmqtt.com/api/acl

Request Parameters

Parameter Description
username Delete rules for this user
topic Delete rules for this topic

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.