Identity

Get the current user

Returns the profile of the user the key acts as, including their workspace.

GET /v1/me

Permission

The key must be granted identity.read

A key without it gets 403 insufficient_scope, with the missing permission named in details.

The cheapest way to check a key works and see who it acts as: one upstream read, and it needs only identity.read.

Request

curl https://api.veruapis.com/v1/me \
  -H "Authorization: Bearer vak_live_..."

Response

Field Type Description
id string The workspace user this key acts as.
email string Their sign-in address.
name string Their display name.
role string Their role in the workspace. A key can never do more than its creator, whatever scopes it carries.
workspace object The workspace the key belongs to. A key never spans workspaces. Its fields are below.
mailbox_address string Their mailbox on the workspace domain. Absent for an account that has none.
avatar_url string Absolute URL of their profile picture. Absent when they have not set one.

The workspace

Field Type Description
id string
{
  "data": {
  "id": "01918e4b-7c2e-7f11-b4a9-0242ac130003",
  "email": "[email protected]",
  "name": "Alice Ng",
  "role": "tenant_admin",
  "workspace": { "id": "01918e4b-0001-7f11-b4a9-0242ac130003" },
  "mailbox_address": "[email protected]",
  "avatar_url": "https://api.verusuite.com/api/user/v1/users/01918e4b-7c2e-7f11-b4a9-0242ac130003/profile-pic/1717123456"
},
  "meta": { "request_id": "req_01j8z9...", "timestamp": "2026-09-02T10:00:00Z" }
}
Worth knowing

The workspace is the one the key was created in, and a key never spans workspaces. The cheapest way to check a key works: one upstream read, and it needs only identity.read.

Errors

Every failure uses the same shape, with a stable string code you can branch on. See the error reference.

Related

GET /v1/me

Runs the real request against your own workspace. The key is used once and never stored.