Skip to content
Registry StackDocsv0.38.0

Submit one message through a sender profile the caller's access profile lists, rendered from a template version at acceptance or, where the profile allows it, from direct content. The `Idempotency-Key` header is required: the same key and request answer the stored receipt again.

POST
/v1/messages
curl --request POST \
--url https://example.com/v1/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'idempotency-key: example' \
--data '{ "content": { "subject": "example", "text": "example" }, "correlationId": "example", "data": "example", "expiresAt": "2026-04-15T12:00:00Z", "locale": "example", "notBefore": "2026-04-15T12:00:00Z", "senderProfile": "example", "template": { "id": "example", "version": "example" }, "to": { "email": "example" } }'
idempotency-key
required
string
>= 1 characters <= 128 characters /^[\x21-\x7e]+$/

Scopes a retry to the caller: the same key and request answer the stored receipt again.

Media typeapplication/json

One message: a template version with its locale and data, or direct content where the access profile allows it, never both. Every endpoint, credential, and script is bound by the operator; no member chooses one.

object
content

Direct content, instead of template.

object
subject
string
text
required
string
correlationId

An opaque caller reference, stored, returned, and audited, never interpreted. The runtime bounds it at 128 UTF-8 bytes, not characters, and refuses control characters.

string
>= 1 characters <= 128 characters /^[^\x00-\x1f\x7f-\x9f]+$/
data

The template data, validated against the template version’s schema; required with template. It is rendered at acceptance and never stored.

expiresAt

The instant an unsent message expires. It must lie within retention.payloadDays of acceptance, and defaults to the sender profile’s expiry.

string format: date-time
locale

A locale the template version declares; required with template.

string
notBefore

The earliest instant the message may be sent.

string format: date-time
senderProfile
required

A sender profile the caller’s access profile lists.

string
template
object
id
required
string
version
required
string
to
required
One of:
object
email
required

One address, local@domain, of visible ASCII, so its bound counts bytes and characters alike.

string
>= 3 characters <= 254 characters /^[\x21-\x7e]+$/
Examplegenerated
{
"content": {
"subject": "example",
"text": "example"
},
"correlationId": "example",
"data": "example",
"expiresAt": "2026-04-15T12:00:00Z",
"locale": "example",
"notBefore": "2026-04-15T12:00:00Z",
"senderProfile": "example",
"template": {
"id": "example",
"version": "example"
},
"to": {
"email": "example"
}
}

The operation succeeded.

Media typeapplication/json
object
id
required
string format: uuid
links
required
object
cancel
required
string
self
required
string
status
required

Derived from dispatch and report: the dispatch state, except that a submitted message whose report is delivered is delivered, and one whose report is undelivered is failed.

string
Allowed values: queued sending submitted delivered failed expired cancelled unknown
Example
{
"status": "queued"
}

A problem: request.invalid.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: request.invalid
Example
{
"code": "request.invalid",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: authentication.refused.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: authentication.refused
Example
{
"code": "authentication.refused",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}
WWW-Authenticate
required
string
Allowed value: Bearer

The bearer challenge.

A problem: operation.not-authorized, profile.not-authorized.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: operation.not-authorized profile.not-authorized
Example
{
"code": "operation.not-authorized",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: template.not-found.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: template.not-found
Example
{
"code": "template.not-found",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: request.method-not-allowed.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: request.method-not-allowed
Example
{
"code": "request.method-not-allowed",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: idempotency.key-reused.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: idempotency.key-reused
Example
{
"code": "idempotency.key-reused",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: idempotency.expired.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: idempotency.expired
Example
{
"code": "idempotency.expired",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: request.body-too-large.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: request.body-too-large
Example
{
"code": "request.body-too-large",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: request.unsupported-media-type.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: request.unsupported-media-type
Example
{
"code": "request.unsupported-media-type",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: request.unprocessable, content.invalid, content.too-large, content.too-many-segments, template.data-invalid, template.locale-unavailable, template.render-refused.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: request.unprocessable content.invalid content.too-large content.too-many-segments template.data-invalid template.locale-unavailable template.render-refused
Example
{
"code": "request.unprocessable",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}

A problem: rate-limit.exceeded, quota.exceeded.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: rate-limit.exceeded quota.exceeded
Example
{
"code": "rate-limit.exceeded",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}
Retry-After
required
integer
>= 1

Whole seconds to wait before trying again.

A problem: service.unavailable.

Media typeapplication/problem+json
object
code
required
string
Allowed values: authentication.refused callback.unreadable callback.unverified content.invalid content.too-large content.too-many-segments idempotency.expired idempotency.key-reused message.dispatch-started message.not-visible message.terminal operation.not-authorized profile.not-authorized quota.exceeded rate-limit.exceeded request.body-too-large request.invalid request.method-not-allowed request.not-found request.unprocessable request.unsupported-media-type service.unavailable template.data-invalid template.locale-unavailable template.not-found template.render-refused
detail
required
string
status
required
integer
title
required
string
traceId
required
string
type
required
string
Allowed values: https://id.registrystack.org/problems/registry-messaging/authentication/refused https://id.registrystack.org/problems/registry-messaging/callback/unreadable https://id.registrystack.org/problems/registry-messaging/callback/unverified https://id.registrystack.org/problems/registry-messaging/content/invalid https://id.registrystack.org/problems/registry-messaging/content/too-large https://id.registrystack.org/problems/registry-messaging/content/too-many-segments https://id.registrystack.org/problems/registry-messaging/idempotency/expired https://id.registrystack.org/problems/registry-messaging/idempotency/key-reused https://id.registrystack.org/problems/registry-messaging/message/dispatch-started https://id.registrystack.org/problems/registry-messaging/message/not-visible https://id.registrystack.org/problems/registry-messaging/message/terminal https://id.registrystack.org/problems/registry-messaging/operation/not-authorized https://id.registrystack.org/problems/registry-messaging/profile/not-authorized https://id.registrystack.org/problems/registry-messaging/quota/exceeded https://id.registrystack.org/problems/registry-messaging/rate-limit/exceeded https://id.registrystack.org/problems/registry-messaging/request/body-too-large https://id.registrystack.org/problems/registry-messaging/request/invalid https://id.registrystack.org/problems/registry-messaging/request/method-not-allowed https://id.registrystack.org/problems/registry-messaging/request/not-found https://id.registrystack.org/problems/registry-messaging/request/unprocessable https://id.registrystack.org/problems/registry-messaging/request/unsupported-media-type https://id.registrystack.org/problems/registry-messaging/service/unavailable https://id.registrystack.org/problems/registry-messaging/template/data-invalid https://id.registrystack.org/problems/registry-messaging/template/locale-unavailable https://id.registrystack.org/problems/registry-messaging/template/not-found https://id.registrystack.org/problems/registry-messaging/template/render-refused
code
required
Allowed values: service.unavailable
Example
{
"code": "service.unavailable",
"type": "https://id.registrystack.org/problems/registry-messaging/authentication/refused"
}
Retry-After
required
integer
>= 1

Whole seconds to wait before trying again.