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.

Base URL

All requests should be made to Please note that this may change with future releases of the API.


Every API request must contain an Authorization header with a valid access token. You'll need one to get started.

Get your token


At a Hackathon?

You can skip this step and use your event's custom link to generate your token instead. #easy

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


  "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


      "message":"The posted data did not pass validation",
            "can't be blank"


Common response codes


Response CodeTitleMeaning
200SUCCESSThe response completed successfully
201CREATEDThe request was a successful and a new resource was created as a result.


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

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