Skip to content

Get current user

GET
/api/v1/me
curl --request GET \
--url https://api.deploybase.eu/api/v1/api/v1/me \
--header 'Authorization: <Authorization>'

Returns information about the currently authenticated user

OK

Media type application/json
object
data
meta
object
request_id
string
timestamp
string
trace_id
string
data
object
active_team

ActiveTeam labels the team above, so a client can render the switcher without a second round trip. Absent when the team profile could not be read — /me answering at all matters more than the label.

object
analytics_id

AnalyticsID is a keyed hash of the team id for product analytics (umami.identify), so the analytics tool never sees the internal team UUID. Absent when the server has no ANALYTICS_ID_SECRET; the app then identifies nobody (DEP-674).

string
display_label

DisplayLabel is what to show a human; never empty.

string
id
string
is_home

IsHome is false when the caller has switched into another team.

boolean
name
string
role
string
slug
string
email
string
email_confirmation_required

EmailConfirmationRequired is true only while the gate actually refuses this person: the address is unconfirmed AND the account was created on or after the cutoff (EMAIL_CONFIRMATION_REQUIRED_AFTER). An older unconfirmed account reports email_verified false but this false, and may publish. The dashboard’s confirm banner follows this field, not email_verified.

boolean
email_verified

EmailVerified is whether the address is confirmed (DEP-687 #3), the true state whatever the cutoff. Whether the gate refuses is email_confirmation_required. Checked live against Zitadel when the token says false, so it turns true on the first /me after the link is clicked, without signing out.

boolean
membership_id
string
name
string
roles
Array<string>
team_id

TeamID is the INTERNAL team UUID of the team this request is acting on — the same value every other endpoint means by team_id, and since DEP-534 the ACTIVE team rather than necessarily the caller’s own.

It used to be claims.TeamID(), the Zitadel ORG id. That was a different namespace entirely: no other endpoint accepts or returns an org id, so a client that fed this value back got a 404 at best. Changing it is the fix, not a regression.

string
team_role
string
user_id
string

Example generated

{
"data": {
"active_team": {
"analytics_id": "example",
"display_label": "example",
"id": "example",
"is_home": true,
"name": "example",
"role": "example",
"slug": "example"
},
"email": "example",
"email_confirmation_required": true,
"email_verified": true,
"membership_id": "example",
"name": "example",
"roles": [
"example"
],
"team_id": "example",
"team_role": "example",
"user_id": "example"
},
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Live a8b7eb1d built