Skip to content

Who is calling

GET
/api/v1/me
curl --request GET \
--url http://localhost:3000/api/v1/me \
--header 'Authorization: Bearer <token>'

The person or key, the project this request acts in (a key’s own; for a person, the one in the ab_project cookie if they can open it), the scope there and on its organization, every project they can switch to, and how one signs in here.

Any caller; the scope needed is checked on what it acts on.

You

Media typeapplication/json
object
data
required
object
user
required
Any of:
object
id
required
string
name
required
string
email
required
string
key
required

Calling with an API key

boolean
actor
required

How history names you

string
project
required

Where this request acts: a key’s project, or the one picked in the app

object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
slug
required
string
name
required
string
organization
required
object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
slug
required
string
name
required
string
scope
required
Any of:
string
Allowed values: read propose write admin
orgScope
required
Any of:
string
Allowed values: read propose write admin
readOnly
required

The organization is read-only: whatever the grants say, the scope is read at most

boolean
narrowed
required

No scope on the project, but grants on some collections or assets in it

boolean
email
required

The organization can send email now: invitations and links go out by mail

boolean
narrow
required

Grants on single collections, assets and brands here, by id: what reaches past the project scope

object
collections
required
object
key
additional properties
string
Allowed values: read propose write admin
assets
required
object
key
additional properties
string
Allowed values: read propose write admin
brands
required
object
key
additional properties
string
Allowed values: read propose write admin
hidden
required

The project’s private collections and brands: only a grant on one, or admin, reaches it

Array<string>
projects
required

Every project you can switch to

Array<object>
object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
slug
required
string
name
required
string
organization
required
object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
slug
required
string
name
required
string
features
required
Any of:
Array<string>
Allowed values: agents shares sso branding domains rebuilds automations fixes templates digest
off
required

Features turned off in this project, by its organization or itself (GET /api/v1/features): agents, shares, portals, hub, insights, and the server’s own

Array<string>
upgrade
required
Any of:
string format: uri
billing
required
Any of:
string format: uri
git
required

Where a brand gets kept in a Git repository (GIT_CONNECT_URL), {brand} standing for its slug, empty to bring a new brand in: set for a project admin, else null

string | null
hub
required

This server runs BrandHub (HUB_URL)

boolean
hubUrl
required
Any of:
string format: uri
notice
required
Any of:
object
text
required
string
href
required
string | null
feedback
required
Any of:
object
email
required
string format: email
/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/
version
required
string
joinable
required
Any of:
object
organization
required
object
id
required
string format: uuid
/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/
name
required
string
domain
required

The email domain it opened

string
auth
required
object
signUp
required

Nobody has an account yet: the first one made is the admin of everything

boolean
setupToken
required

Making that first account takes the server’s setup token (SETUP_TOKEN)

boolean
open
required

Anyone may make an account, and gets an organization of their own (SIGNUP=open)

boolean
oidc
required
Any of:
object
name
required
string
google
required

Sign-in with Google is on (GOOGLE_*)

boolean
sso
required

Some organization here signs its people in through its own provider: sign-in offers it by email domain

boolean
anonymous
required
Any of:
string
Allowed values: read propose write admin
passwordReset
required

A forgotten password can be reset by email

boolean
serverEmail
required

The server sends every organization’s email (EMAIL_*): organizations don’t set their own, and a new account confirms its address with a code

boolean
captcha
required
Any of:
string
Allowed values: turnstile pow
turnstile
required

The Cloudflare Turnstile site key (TURNSTILE_SITE_KEY) when captcha is turnstile, else null

string | null
legal
Any of:
object
terms
required
Any of:
string format: uri
privacy
required
Any of:
string format: uri
assistant
required
Any of:
string format: uri
brandImport
required
Any of:
string format: uri
Example
{
"data": {
"scope": "read",
"orgScope": "read",
"narrow": {
"collections": {
"additionalProperty": "read"
},
"assets": {
"additionalProperty": "read"
},
"brands": {
"additionalProperty": "read"
}
},
"features": [
"agents"
],
"auth": {
"anonymous": "read",
"captcha": "turnstile"
}
}
}

An error

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
detail
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": "example"
}
}