Get the signed-in user
⚠️
Preview — this feature is being built; the design below is the spec.
GET https://app.syntic.ai/v1/oauth/userinfoReturn who an access token belongs to. Apps call it right after sign-in to show the person’s name and pick the right local account. Needs the user:profile scope.
For how this fits into a full workflow, see Build a Sign in with Syntic app.
Headers
| Header | Required | Value |
|---|---|---|
Authorization | Yes | Bearer <access token>: an OAuth access token from Sign in with Syntic. API keys are refused with 401 invalid_token. |
syntic-beta | Yes, while in preview | oauth-apps-2026-12-01. Without it the call fails with 400 beta_required. See Versioning. |
Response
200 OK, Content-Type: application/json
{
"sub": "user_01J9Y0A2C4E6G8J0L2N4",
"email": "dana@example.com",
"email_verified": true,
"name": "Dana Lee",
"organization": {
"id": "org_01J9X8Z6B4D2F0H8K6M4",
"name": "Acme",
"plan": "Business"
},
"scopes": [
"user:profile",
"user:inference"
]
}| Field | Type | Description |
|---|---|---|
sub | string | Stable member id. Use it, not the email, as your account key. |
organization.plan | string | The real platform plan name of the organization the person signed in to. |
scopes | array | Scopes the token carries. |
Examples
curl -sS "https://app.syntic.ai/v1/oauth/userinfo" \
-H "Authorization: Bearer $SYNTIC_ACCESS_TOKEN" \
-H "syntic-beta: oauth-apps-2026-12-01"Errors
Errors use the error envelope and carry a request_id. Codes specific to this operation:
| Status | type | code | When |
|---|---|---|---|
| 400 | invalid_request_error | beta_required | The syntic-beta header is missing. |
| 401 | authentication_error | invalid_token | The access token is missing, expired or revoked, or an API key was sent. |
| 403 | permission_error | insufficient_scope | The token lacks user:profile. |
| 429 | rate_limit_error | rate_limited | Too many requests; wait for Retry-After. See Rate-limit headers. |
Send the OAuth access token as the bearer credential, not an API key. API keys are refused with 401 invalid_token.
Was this page helpful?