Every API key carries one scope, chosen at mint time:Documentation Index
Fetch the complete documentation index at: https://dev.1st.app/llms.txt
Use this file to discover all available pages before exploring further.
| Scope | What it can do |
|---|---|
| read (default) | List sensors, read current conditions, pull time-series readings, export CSV. Cannot mutate anything. Use this for dashboards, monitoring scripts, spreadsheet feeds, Slack bots — the vast majority of integrations. |
| read_write | Everything read does, plus PATCH /v1/sensors/{id} to update display names and metadata. Needed when your AMS or coach app should write back into 1st — e.g. tagging a sensor with a Hudl player_id. |
read key reveals data
but can’t mutate anything; a leaked read_write key can rename rooms
and rewrite metadata.
Why this isn’t OAuth
V1 uses static API keys instead of OAuth because the persona is an analyst pasting a key into Sheets / AMS / a Bubble app, not a backend developer wiring up an OAuth flow. Static keys with strong rotation ergonomics (revoke + reissue in two clicks) win on UX for that user. OAuth is on the roadmap for partner integrations once 1st has a catalog of approved consumer apps.Errors
Trying to callPATCH /v1/sensors/{id} with a read-scope key returns: