Skip to content

Check a key

GET
/me
curl --request GET \
--url https://api.usesonora.com/v1/me \
--header 'Authorization: Bearer <token>'

The workspace the key belongs to and the key’s own scopes. Any valid key may call it.

Any valid API key may call this endpoint; an OAuth access token may not.

The key works.

Media typeapplication/json

The workspace a key belongs to, and the key itself.

object
tenant
required
object
id
required
string
name
required
string
subdomain
required
string
apiKey
required
object
id
required
string
name
required
string
prefix
required

The key’s public prefix, as Settings → API shows it.

string
scopes
required
Array<string>
createdAt
required
string format: date-time
expiresAt
required
Any of:
string format: date-time
Examplegenerated
{
"tenant": {
"id": "example",
"name": "example",
"subdomain": "example"
},
"apiKey": {
"id": "example",
"name": "example",
"prefix": "example",
"scopes": [
"example"
],
"createdAt": "2026-04-15T12:00:00Z",
"expiresAt": "2026-04-15T12:00:00Z"
}
}

unauthorized: The Authorization header is missing, or the key is invalid, revoked or expired.

Media typeapplication/json

The one error shape every endpoint answers with.

object
error
required
object
code
required

Stable snake_case code to branch on; see the error table.

string
message
required

For humans; may change.

string
details
object
key
additional properties
requestId
required

Quote it when asking for help.

string | null
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {
"additionalProperty": "example"
},
"requestId": "example"
}
}

insufficient_scope: The key or token lacks the scope this endpoint needs, and details.required names it; or an OAuth access token called an endpoint only an API key can.

Media typeapplication/json

The one error shape every endpoint answers with.

object
error
required
object
code
required

Stable snake_case code to branch on; see the error table.

string
message
required

For humans; may change.

string
details
object
key
additional properties
requestId
required

Quote it when asking for help.

string | null
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {
"additionalProperty": "example"
},
"requestId": "example"
}
}

rate_limited: Too many requests for this key; retry after Retry-After seconds.

Media typeapplication/json

The one error shape every endpoint answers with.

object
error
required
object
code
required

Stable snake_case code to branch on; see the error table.

string
message
required

For humans; may change.

string
details
object
key
additional properties
requestId
required

Quote it when asking for help.

string | null
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {
"additionalProperty": "example"
},
"requestId": "example"
}
}

internal_error: Something went wrong on Sonora’s side. Retry, and quote requestId if it persists.

Media typeapplication/json

The one error shape every endpoint answers with.

object
error
required
object
code
required

Stable snake_case code to branch on; see the error table.

string
message
required

For humans; may change.

string
details
object
key
additional properties
requestId
required

Quote it when asking for help.

string | null
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {
"additionalProperty": "example"
},
"requestId": "example"
}
}

Try it

Try it runs the reference's read endpoints, and this one describes the API key calling it, so only a key can. Create a key in Sonora under Settings → API and call it from your own code.