API Reference
The Reemo API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Base URL
https://restapi.reemo.io/v1
Authentication
The Reemo API uses a
Secret Key to authenticate requests. You can view your Secret Key in the
Reemo Portal.
Your Secret Key carry many privileges, so be sure to keep it secure!
Do not share your secret Secret Key in publicly accessible areas such as GitHub, client-side code, and so forth.
Use your Secret Key by setting it in the
Authorization header of your request. Be sure to send this key in each request.
All API requests must be made over
HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
// Example of using axios to set the Authorization Header
const response = await axios({
method: 'GET',
url: '/computers',
baseURL: 'https://restapi.reemo.io/v1',
headers: {
'Content-Type': 'application/json',
'Authorization': YOUR_SECRET_KEY,
},
});
Access Control
Because the Reemo API
does not manage your users, you are entirely responsible for making sure your users access the proper resources from the Reemo API.
The Reemo API does not do access control except for ensuring that you only access your own computers.
Be sure to implement proper access control between your users and customers.
Everytime you request to connect to a specific computer, you must request a valid
computer object from the Reemo API before passing it to the
Reemo WebClient.
This
computer object will contain valid connection tokens to identify with our signal servers. Please note that the token have a short expiration time to avoid replay attacks.
Errors
Reemo uses conventional HTTP response codes to indicate the success or failure of an API request.
In general: Codes in the 2xx range indicate success.
Codes in the 4xx range indicate an error that failed given the information provided (e.g. a missing parameter).
Codes in the 5xx range indicate an error with Reemo's servers (errors can happen).
Computers
Important Note
The computer object has 2 unique identifiers:
id (UUID) is used to identify the computer and communicate with the Reemo API.
_id (UUID) is used to identify the computer on our signal servers. It is stored alongside the Reemo Service executable on your computers and can be supplied by yourself after or before the install to match an UUID inside your own database. You may generate this _id yourself and reserve it on the Reemo API (see "Reserve a specific _id").
List all computers
List all computers associated to your Reemo API account. This request is paginated and provides filter options to search for properties inside the
computer objects such as
name,
hostname,
ip etc...
GET https://restapi.reemo.io/v1/computers
Query Parameters
Response
Get a specific computer
Retrieve a
computer object by id.
GET https://restapi.reemo.io/v1/computers/:id
Request Parameters
Response
Connect a specific computer
Request access to a
computer object to pass to the
Reemo WebClient.
POST https://restapi.reemo.io/v1/computers/:id/connect
Request Parameters
Response
A
computer object with extra properties.
Please note that the
_id property of the
computer object is hashed to sign the request and is different from the
_id property of the
GET /computers/:id request.
Reserve a computer _id
This is commonly used when you need to match a computer to a record inside your own database.
Because the computers does not exists until they register on one of our signal servers, you might need to know which computer registered to your account when deploying them dynamically.
You may pre-register a computer on the Reemo API by reserving its
_id, you can then deploy the Reemo Service on the computer and override the
_id file with your own identifier.
When the computers finally registers on the Reemo API, you can then match it using your specific identifier.
POST https://restapi.reemo.io/v1/computers
Request Body
Response
An
OFFLINE computer object with your reserved _id stored. See the section named "Get a specific computer" for more info.
Update a computer
Customize the name of the computer inside the Reemo API.
PUT https://restapi.reemo.io/v1/computers/:id
Request Parameters
Request Body
Delete an offline computer
Delete a computer from the Reemo API. Please note that only the
OFFLINE computers can be deleted (meaning they are not currently connected to our servers).
DELETE https://restapi.reemo.io/v1/computers/:id
Request Parameters