Programmatic access
One versioned API, with a contract that does not break a published version.
A version is a promise
Every route is available under a versioned path, and the machine-readable schema describes that version only.
The versioning rule is that a field published in a version is not removed from that version — even when what is behind it changes. The reason is experience: an app whose older build is still installed on somebody's phone goes white when a field disappears.
A few things that make integration easier
Errors share one envelope: a code, a message, and for validation errors, the list of offending fields.
Every response carries a request identifier. If you report a problem, that identifier is the fastest way to find its trace in the logs.
If your account belongs to several workspaces, you pick the target workspace with a header — so you never have to change the base URL.
This module is available from the team plan up
To discuss a specific integration or an installation on your own infrastructure, get in touch.
Read this next
- Account & plansSigning in and devicesA browser session, tokens for apps, and how to cut off a device you lost.
- Security & dataOn your own infrastructureThe same product on your servers — and how the licence behaves when something is wrong.
- Security & dataRate limits and error messagesWhy you are sometimes asked to wait, and the shape every error shares.
Still stuck?
If the answer wasn't here, write to us. It is a real inbox and it gets answered.