Getting Started
Robin's API gives developers the power to interact with their team's data (locations, spaces, presence, etc.) and build third-party applications to extend Robin's capabilities.
Deprecations and future breaking changes
- The
GET /free-busy/spacesendpoints will be removed some time in the future. Please use thePOST /free-busy/spacesendpoint instead.- Event properties
started_atandended_atwill be removed some time in the future. Please usestartandendinstead.- The
?include=amenitiessubmodel for spaces will be removed some time in the future. Please use?include=space_amenitiesinstead.
Shared Assigned Desks
Changes for assigned desks
We have replaced Assigned desks with Shared Assigned Desk functionality. As a result,
["assigned"]desks andassignedreservation type are replaced with["assigned","shared"]and["hoteled","shared]"desk types, andsharedreservation types.More on the Desk (Seat) and Reservation models, and the new /seats/:id/publish-shared-schedule endpoint.
Base URL
All requests should be made to https://api.robinpowered.com/v1.0. Please note that this may change with future releases of the API.
Authorization
Every API request must contain an Authorization header with a valid access token. You'll need one to get started.
Get your token
Log into the web dashboard and generate a new token via your team's integration settings. (Note: You must be an administrator)
Example Authorization header
Authorization: Access-Token {{token}}
# Standard CURL request with authorization header
curl -X GET https://api.robinpowered.com/v1.0/spaces/:id
    -H "Authorization: Access-Token {{token}}"
Response structure
All API responses share a basic JSON structure. The response is always an object with two properties meta and data and a conditional third property, paging. 
The examples below show what full responses looks like:
Success
{
  "meta": {
    "status_code": 200,
    "status": "OK",
    "message": "",
    "more_info": {}
  },
  "data": [
    {
      "space_id": 1,
      "user_id": 9,
      "last_seen_at": "2014-05-22T14:49:48+0000",
      "arrived_at": "2014-05-22T14:49:48+0000",
      "session_ttl": 30,
      "session_active": true,
      "user": {
        "id": 1,
        "access_level": 9001,
        "name": "George Jetson",
        "slug": "gjetson",
        "avatar": "",
        "created_at": "2014-05-05T16:06:58+0000",
        "updated_at": "2014-05-05T16:06:58+0000",
        "primary_email": {
          "email": "[email protected]",
          "is_verified": true
        }
      }
    }
  ],
  "paging": {
    "page": 1,
    "per_page": 10
  }
}
Error
{
   "meta":{
      "status_code":400,
      "status":"INVALID_PARAMETERS",
      "message":"The posted data did not pass validation",
      "more_info":{
         "name":[
            "can't be blank"
         ]
      }
   },
   "data":{
   }
}
Common response codes
Success
| Response Code | Title | Meaning | 
|---|---|---|
| 200 | SUCCESS | The response completed successfully | 
| 201 | CREATED | The request was a successful and a new resource was created as a result. | 
Error:
| Response Code | Title | Meaning | 
|---|---|---|
| 400 | BAD_REQUEST | There was an error in the request parameters. This error is most commonly send when trying to create or modify a resource with invalid attributes. | 
| 401 | UNAUTHORIZED | The Authorizationheader is missing or invalid. | 
| 403 | FORBIDDEN | The authorized entity is not permitted to view or modify a resource. | 
| 404 | NOT_FOUND | The resource does not exist. | 
HTTP request methods
| Method | Description | 
|---|---|
| GET | Retrieves a resource | 
| POST | Creates a resource | 
| PUT | Creates or replaces a resource | 
| PATCH | Updates an existing resource | 
| DELETE | Removes a resource | 
Updated about 1 year ago
