Skip to content

Who am I

GET
/me
curl --request GET \
--url https://api.sealpost.app/v1/me \
--header 'Authorization: Bearer <token>' \
--header 'Sign-Test-Mode: true'

The tenant, the key in use, the effective mode and the key’s scopes.

Sign-Test-Mode
string
Allowed values: true

true switches a live key into test mode for this request only. Ignored on test keys (they are always in test mode). Any other value is treated as absent.

Identity of the caller.

Media typeapplication/json
object
tenant
required
object
id
required
string format: uuid
name
required
string
kind
required
string
Allowed values: internal external
api_key
required

A key without its secret.

object
id
required
string format: uuid
name
required
string
prefix
required

The visible start of the secret, e.g. sk_test_3f9aQ2Lm, enough to tell keys apart.

string
mode
required
string
Allowed values: live test
scopes
required
Array<string>
Allowed values: envelopes:read envelopes:write templates:read templates:write webhooks:write tenant:read tenant:write api_keys:read api_keys:write requests:read
rotated_from_id

The key this one replaced, when minted by a rotation.

string | null format: uuid
created_at
required
string format: date-time
last_used_at
required

Updated at most once a minute.

string | null format: date-time
expires_at
required
string | null format: date-time
revoked_at
required
string | null format: date-time
mode
required

Effective mode of this request (the key’s mode, or test when a live key sent Sign-Test-Mode: true).

string
Allowed values: live test
test_mode
required
boolean
scopes
required
Array<string>
Allowed values: envelopes:read envelopes:write templates:read templates:write webhooks:write tenant:read tenant:write api_keys:read api_keys:write requests:read
request_id
required
string

Example

{
"tenant": {
"kind": "internal"
},
"api_key": {
"mode": "live",
"scopes": [
"envelopes:read"
]
},
"mode": "live",
"scopes": [
"envelopes:read"
]
}
Sign-Request-Id
string

Unique id of this request (req_…). Quote it in support requests.

No key, an unknown key, or a revoked or expired key.

Media typeapplication/problem+json

RFC 9457 problem details plus a stable code and the request_id.

object
type
required

https://sealpost.app/errors/{code}

string format: uri
title
required
string
status
required
integer
detail

Human-readable, safe to show to a developer, never contains secrets or signer data.

string
instance

The request path.

string
code
required

Stable machine-readable code from the catalogue (docs/errors.md).

string
request_id
required
string
errors

Field-level detail on validation_failed.

Array<object>
object
param
required

JSON pointer-ish path, e.g. scopes[2].

string
message
required
string

Example

{
"type": "https://sealpost.app/errors/insufficient_scope",
"title": "Forbidden",
"status": 403,
"detail": "This key lacks the api_keys:write scope.",
"code": "insufficient_scope",
"request_id": "req_01J9ZK3V8Q4M2XQ7W0E5D1R6TA"
}
Sign-Request-Id
string

Unique id of this request (req_…). Quote it in support requests.

The key is over its per-minute budget (600 live, 60 test, sliding window).

Media typeapplication/problem+json

RFC 9457 problem details plus a stable code and the request_id.

object
type
required

https://sealpost.app/errors/{code}

string format: uri
title
required
string
status
required
integer
detail

Human-readable, safe to show to a developer, never contains secrets or signer data.

string
instance

The request path.

string
code
required

Stable machine-readable code from the catalogue (docs/errors.md).

string
request_id
required
string
errors

Field-level detail on validation_failed.

Array<object>
object
param
required

JSON pointer-ish path, e.g. scopes[2].

string
message
required
string

Example

{
"type": "https://sealpost.app/errors/insufficient_scope",
"title": "Forbidden",
"status": 403,
"detail": "This key lacks the api_keys:write scope.",
"code": "insufficient_scope",
"request_id": "req_01J9ZK3V8Q4M2XQ7W0E5D1R6TA"
}
Sign-Request-Id
string

Unique id of this request (req_…). Quote it in support requests.

Retry-After
integer

Seconds to wait before retrying.

RateLimit-Limit
integer

Requests allowed per minute for this key (600 live, 60 test).

RateLimit-Remaining
integer

Requests remaining in the current window.

RateLimit-Reset
integer

Seconds until the window has capacity again.

Something failed on our side. The request_id is in our logs.

Media typeapplication/problem+json

RFC 9457 problem details plus a stable code and the request_id.

object
type
required

https://sealpost.app/errors/{code}

string format: uri
title
required
string
status
required
integer
detail

Human-readable, safe to show to a developer, never contains secrets or signer data.

string
instance

The request path.

string
code
required

Stable machine-readable code from the catalogue (docs/errors.md).

string
request_id
required
string
errors

Field-level detail on validation_failed.

Array<object>
object
param
required

JSON pointer-ish path, e.g. scopes[2].

string
message
required
string

Example

{
"type": "https://sealpost.app/errors/insufficient_scope",
"title": "Forbidden",
"status": 403,
"detail": "This key lacks the api_keys:write scope.",
"code": "insufficient_scope",
"request_id": "req_01J9ZK3V8Q4M2XQ7W0E5D1R6TA"
}
Sign-Request-Id
string

Unique id of this request (req_…). Quote it in support requests.