Reference
Me
The person behind an access token, and the state of their connection to your app.
Get the signed-in user
/v1/meReturns the identity behind the access token plus the current state of the connection: the scopes the user granted and the CV they chose to share. The email address is present only when the user granted the email scope, and the photo only when they allowed it.
Response
These fields sit inside data.
| Field | Type | Description |
|---|---|---|
| idalways | string | The Tabbio user id. Stable forever. |
| namealways | string | The name the user shows on their profile. |
| usernamealways | string or null | Their Tabbio handle, when they set one. |
| headlinealways | string or null | The one-line role under their name. |
| localealways | string or null | The language the user picked in Tabbio, or null when they never did. |
| avatarUrlalways | string or null | Profile photo. Null when the user chose not to share it. |
| profileUrlalways | string or null | Their public Tabbio profile, or null when that page would not resolve. |
| string | Present only when the user granted the email scope. | |
| connectionalways | object | The current state of this user’s consent to your app. |
| idalways | string | The connection between this user and your app. |
| scopesalways | string[] | What the user actually granted. May be fewer than you asked. |
| cvalways | object or null | The CV they share, or null without the cv:read scope. |
| idalways | string | "master" for the profile-backed main CV, otherwise the CV id. |
| titlealways | string | What the user calls this CV. |
| updatedAtalways | string | When the CV last changed. |
| createdAtalways | string | When the user first connected your app. |
Status codes
- 200
The signed-in user.
- 401
The access token is missing, expired, or revoked.
- 403
The user did not grant the profile scope.
curl https://server.tabbio.com/v1/me \
-H "Authorization: Bearer $TABBIO_ACCESS_TOKEN"const response = await fetch(
"https://server.tabbio.com/v1/me",
{
headers: {
Authorization: `Bearer ${process.env.TABBIO_ACCESS_TOKEN}`,
},
},
);
const payload = await response.json();import os
import requests
headers = {
"Authorization": f"Bearer {os.environ['TABBIO_ACCESS_TOKEN']}",
}
response = requests.get("https://server.tabbio.com/v1/me", headers=headers)
response.raise_for_status()
payload = response.json(){
"data": {
"id": "usr_2f8a91",
"name": "Sara Ahmed",
"username": "sara",
"headline": "Senior product designer",
"locale": "en",
"avatarUrl": "https://cdn.tabbio.com/avatars/sara.jpg",
"profileUrl": "https://sara.tabbio.com",
"email": "sara@example.com",
"connection": {
"id": "con_9d21f4",
"scopes": [
"profile",
"email",
"cv:read",
"cv:contact"
],
"cv": {
"id": "master",
"title": "Main CV",
"updatedAt": "2026-08-30T09:12:04.000Z"
},
"createdAt": "2026-08-30T09:10:41.000Z"
}
},
"error": null,
"meta": null
}Base URL https://server.tabbio.com. Every response outside the token endpoint uses the { data, error, meta } envelope.