Authorization: Bearer <token> header. Tokens are issued by Google Identity Platform (Firebase Auth) after sign-in.
Token format
Tokens are standard OIDC JWTs. The issuer ishttps://securetoken.google.com/{projectId}. The platform validates the token on every request — no session or API key is stored server-side.
The principal_id derived from your token takes the form:
Getting a token
If you’re calling the API from a browser-based app:Using the token
Pass the token as a Bearer header on every request:Access control
Authentication establishes your identity. Authorization is a separate layer:- Tenant membership — your principal must be a member of the tenant you’re acting on behalf of, with an appropriate role.
- Ownership — writes and administrative actions require the tenant to own the subject.
- Grants — counterparty read access is controlled by explicit grants issued by the owning tenant, plus a per-principal
allow_counterparty_accessflag.
Principal types
Every principal has aprincipal_type that distinguishes how it authenticates and operates:
Register the type when adding a non-human principal to a tenant:
Human-only constraints
Certain privileged actions require the calling principal to haveprincipal_type: human. Service account and AI agent callers are rejected with 422:
- Setting
allow_counterparty_access: true— enabling counterparty data visibility for a principal must be an explicit human decision. Theaccount_adminmaking this call must be using their own OIDC session token, not an API key. - Assigning
api_functional_role: tenant_owner— the ownership accountability role may not be held by an automated caller.
allow_counterparty_access: false or downgrading from tenant_owner) carries no human-caller requirement.
Unauthenticated endpoints
The following endpoints do not require a token:GET /healthGET /v1/metaGET /v1/ops/readiness