Skip to content

Return the current authenticated principal. In dev (auth disabled) this is the synthetic Owner.

GET
/v1/me
curl --request GET \
--url https://example.com/v1/me
Media typeapplication/json

The authenticated principal (ADR-0049) — powers the UI’s identity menu.

object
admin_orgs
required

The orgs this principal may administer, for the Settings area to act on. One entry in practice (single implicit Org, ADR-0060) — a list because Org remains the model’s real inheritance root, not a collapsed constant. Empty on a fresh install: an org only exists once a Project is bound to it, so can_administer can be true with nothing to administer yet.

Array<string>
can_administer
required

May this principal administer org-level settings (ADR-0060)? The gate on the global Settings area — the UI hides the nav entry when false, since nothing there is actionable or informative without Administer.

True for a globally-Administer role, or an Admin+ binding on the Org scope of any org the caller can see. Deliberately not implied by a Project-scoped Administer: administering one repo does not grant the org’s secrets or its forge connections (ADR-0049 — Org inherits down, never up).

boolean
display_name

Human display name, when the identity provides one.

string | null
roles
required

The principal’s Scarab-native roles (e.g. ["Owner"]).

Array<string>
subject
required

Stable, forge-agnostic identity subject.

string
Examplegenerated
{
"admin_orgs": [
"example"
],
"can_administer": true,
"display_name": "example",
"roles": [
"example"
],
"subject": "example"
}

Not authenticated