Control plane API

Organization, members, projects

Renaming the organisation, listing who is in it, and discovering the projects keys are minted against.

PATCH /organization

{"name": "New name"}

Renames the caller's own organisation. Requires role owner or admin; a member gets 403 {"error": "owner or admin role required"}. The name must be non-blank, at most 255 characters, and contain no literal < or > (400 otherwise). A name another organisation already uses answers 409. On success an org.renamed event is written to the activity log.

GET /members

{
  "members": [
    {"user_id": "<uuid>", "email": "you@company.com", "role": "owner", "joined_at": "2026-08-04T10:38:49.451247+00:00"}
  ]
}

Everyone in the caller's organisation. joined_at is the account's creation time (an account is created into its organisation in one step). Read-only: there is no endpoint to invite, remove or re-role a member today; a teammate joins by registering with the organisation's name, or by signing in with Google and naming it.

GET /projects

{
  "projects": [
    {"id": "<uuid>", "name": "Default Project", "created_at": "2026-07-19T20:23:55.062436+00:00"}
  ]
}

The projects in the caller's organisation. Every organisation has at least the one created at sign-up, so this is never empty for a normally provisioned account. POST /keys requires a project_id from this list; analytics can be filtered by it. There is no create-project endpoint yet.

Something unclear or wrong on this page? Tell us. Machine-readable copies: llms.txt.