These endpoints power the Grantiva dashboard. They use cookie-based sessions — the browser sends credentials with
credentials: 'include' and Vapor manages the session cookie. They are documented here for completeness; server integrations should use API keys instead.The auth response object
Login,me, verify-email, switch-org, and clear-org all return the same shape:
organization and entitlements are null when the user has no organization context. Null values inside limits mean unlimited.
organization.serviceTier and entitlements.tier carry the internal tier identifier — display entitlements.tierDisplay (Free, Pro, Business, Enterprise) instead, and branch on the features booleans rather than on the tier string.
Log in
200 OK — the auth response object.
Errors
Log out
204 No Content.
Current user
aat_, grantiva_, or gpat_ prefixed) and returns a minimal identity instead:
api_key_prefix is the first 8 characters of the key. email is the email of the user who created the key, or the organization’s name for an org key with no creator on record.
401 if neither a session nor a valid key is presented — including a Bearer token whose prefix is not a recognized key format.
Forgot password
Reset password
Change email
Confirm email change
400 for an invalid/expired token, 409 if the address was taken in the meantime.
Verify email
Accept a team invite
List organizations
isActive marks the org currently selected in the session.
Response
Switch organization
403 otherwise); 404 if the slug doesn’t exist.
Request body
Clear organization
organization and entitlements set to null.
See also
- CLI Sessions — device-code auth for the Grantiva CLI
- API Keys — server-to-server authentication