Skip to content

Authentication

API keys

Keys are created by Space admins in app.gatevia.app → Settings → API keys and look like:

gv_live_1nX8vQ2pL5aT9cB0dE3fG6hJ7kM4nP8rS1tU5vW9
  • Per Space — a key belongs to one Space and cannot see any other.
  • Shown once — GateVia stores only a SHA-256 hash. Losing the secret means revoking the key and creating a new one.
  • Identified by prefix — the dashboard shows gv_live_1nX8… so you can tell keys apart without ever seeing the secret again.
  • Create one key per integration so each can be scoped, monitored (last-used timestamp) and revoked independently.

Sending the key

Preferred:

Authorization: Bearer gv_live_…

Also accepted: X-Api-Key: gv_live_…

Scopes

Every key carries an explicit set of permissions:

ScopeGrants
gates:readList gates
gates:writeCreate, update, deactivate gates
gates:openPhysically open gates — opt-in, use with care
members:readList members and their accesses
members:writeCreate/update members, grant/edit/revoke gate access
history:readRead openings and the activity log

Calling an endpoint without the needed scope returns 403 insufficient_scope.

Rate limits

  • Default: 120 requests/minute per key.
  • Writes: 30/minute. POST /gates/:id/open: 10/minute.
  • Exceeding the limit returns 429 with a Retry-After header.

Errors

All errors share one shape:

{ "error": { "code": "not_found", "message": "Gate not found in this Space." } }
HTTPcodeMeaning
400validation_errorBody failed schema validation
401unauthorizedMissing/invalid/revoked/expired key
403insufficient_scopeKey lacks the required scope
403plan_upgrade_requiredPlan does not include API access
403plan_limit_reachedPlan limit (gates, invitations…) reached
404not_foundResource missing or not in this Space
429Rate limit exceeded
5xxinternal_errorOur fault — retry with backoff