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/spaces endpoints will be removed some time in the future. Please use the POST /free-busy/spaces endpoint instead.
  • Event properties started_at and ended_at will be removed some time in the future. Please use start and end instead.
  • The ?include=amenities submodel for spaces will be removed some time in the future. Please use ?include=space_amenities instead.

Shared Assigned Desks

🚧

Changes for assigned desks

We have replaced Assigned desks with Shared Assigned Desk functionality. As a result, ["assigned"] desks and assignedreservation type are replaced with ["assigned","shared"]and ["hoteled","shared]"desk types, and shared reservation 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 CodeTitleMeaning
200SUCCESSThe response completed successfully
201CREATEDThe request was a successful and a new resource was created as a result.

Error:

Response CodeTitleMeaning
400BAD_REQUESTThere was an error in the request parameters. This error is most commonly send when trying to create or modify a resource with invalid attributes.
401UNAUTHORIZEDThe Authorization header is missing or invalid.
403FORBIDDENThe authorized entity is not permitted to view or modify a resource.
404NOT_FOUNDThe resource does not exist.

HTTP request methods

MethodDescription
GETRetrieves a resource
POSTCreates a resource
PUTCreates or replaces a resource
PATCHUpdates an existing resource
DELETERemoves a resource