Analytics API

📘

Important Note

The Analytics API is different from Robin’s generic API. Our Analytics API can be used to efficiently access historical and exported data, whereas our generic API can be used for other system integrations (like MS Teams).

In this guide, we'll cover how to use the Analytics API, what it can help with and where to find additional support.

Robin's Analytics API enables you to:

  • Build custom dashboards with your preferred analytics tool (like PowerBI, Looker or Tableau).
  • Schedule and automate reports.
  • Easily share insights with the leadership team as they decide on hybrid work strategies.

Analytics API reference

Error handling

Response codeReason
400Input parameter issues
404Export not ready
429Request rate exceeds prescribed limit of 30 POSTs per minute

We reserve the right to make additive changes to the data returned. Existing columns will not be removed, but new ones may be added. Your code should be flexible enough to not fail if additional data is returned.

Authentication

See our API documentation to generate a token for your organization.

Usage

Below, you will find POST and GET methods. You will end up calling both. The POST tells Robin that you would like data prepared for download. This is an asynchronous request and returns an export ID.

Next, call the single shared GET endpoint with the export ID from the POST request. You'll receive 404 responses until the data is ready. Once the data is ready, you'll receive a 20x status and the CSV data in the response. These GET calls should be made at 10-second intervals.

Create export

POST https://api.robinpowered.com/v1.0/insights/exports/organizations/:id/:export_type

Requests an Analytics export for the given organization and time range. Replace :export_type with one of the supported export types below. For more details, see Exporting workplace data.

Export types

export_typeExportDescription
activity-summaryActivity SummaryPeople-first summary of office activity.
custom-resourcesCustom ResourceCustom resource reservations and check-ins.
desksDeskDesk assignments, reservations, check-ins, and cancellations.
presenceWorkplace PresenceWho indicated they were coming in, with or without a desk, plus detected presence.
hybrid-work-policyHybrid Work PolicyHybrid work policy compliance data.
people-rosterPeople RosterWho is using Robin and user attributes (default building, groups, roles, departments, and more).
spacesSpaceScheduled events in Robin spaces, including event metadata.

Parameters

PropertyTypeDescription
fromISO 8601 timestampStart date (ie 2025-12-05T00:00:00Z)
toISO 8601 timestampEnd date (ie 2025-12-06T00:00:00Z)
location_ids (optional)Array of integersList of location IDs (defaults to all) - find IDs via this API call

Headers

Content-Type: application/json

Example body

{
  "from": "2025-12-05T00:00:00Z",
  "to": "2025-12-06T00:00:00Z"
}

Example requests

Desk export

POST https://api.robinpowered.com/v1.0/insights/exports/organizations/123/desks

Spaces export

POST https://api.robinpowered.com/v1.0/insights/exports/organizations/123/spaces

Example response

{
  "meta": {
    "status_code": 202,
    "status": "ACCEPTED",
    "message": "",
    "errors": []
  },
  "data": {
    "export_id": "6239b88d-9cf6-47a9-9dd3-95f3b0fbdba2",
    "report_id": "6239b88d-9cf6-47a9-9dd3-95f3b0fbdba2"
  }
}

Download export

GET https://api.robinpowered.com/v1.0/insights/exports/:id

Use the export_id from POST responses. Poll every 10 seconds or more until the data is ready (no 4xx errors).