Authentication
Send your key on every request as a header:assets:write) lets the key write by API exactly as a member
with that permission can in the app, provided the creator’s role grants it
too. See Roles and permissions for how
member permissions work, and Developer tools
for the scope picker.
Scopes
Each key is created with one or more scopes, chosen when the key is made. Each scope maps to one or more of the permissions used elsewhere in the app - use this table to work back from an endpoint’s Permission column to the scope that grants it:
No scope grants
asset_schema.manage (asset category writes) or
members.invite (inviting, updating or importing members) on its own -
only the admin scope does. The tables below mark every route that is
reachable only with admin.
Base URL and errors
Every endpoint below is prefixed with/api. Errors share one shape:
401 means the key is missing, invalid, expired or revoked. 403 means
the key’s role does not carry the permission the endpoint requires. 429
means the request was rate limited.
Assets
Create an asset
id.
Asset categories
No non-admin scope grants
asset_schema.manage - creating, editing or
deleting a category by API requires a key scoped admin.
Locations
Locations follow a four-tier hierarchy (site, facility, level, space).
See Locations and mapping for the full
model.
Departments
Members
No non-admin scope grants
members.invite - every members write above
requires a key scoped admin, even though members:read alone is enough
to list members.
Map and geo
AI assistant
A key with the
ai:use scope drives the same assistant the in-app chat
uses, bound by that key’s own permissions and field access - so an
ai:use-only key can converse but cannot act on anything unless the key
also carries the resource scopes (assets:write, and so on) for what you
want it to do. See AI assistant.
Data export (OData)
A read-only OData v4 feed for BI tools, gated byassets.export
(scope odata:read - the same scope that covers the CSV/JSON export
endpoints above):
There is no write path on this feed. Whether the feed itself is turned
on for your organisation is a separate, sign-in-only setting (see
below).
Webhooks
An API key receives webhook deliveries but cannot configure them: creating, updating or deleting a webhook subscription requires a signed-in session, not an API key. Once a webhook is registered, every delivery is signed:asset.created, asset.updated and asset.deleted.
Not available by API key
These stay sign-in only, whatever permissions the key’s role carries:- Webhook configuration
- The data export (OData) on/off toggle for the organisation
- The audit log
- Reports and report templates
- Policies and violations
- Roles
- Billing
- GDPR export and erasure
