Skip to content

Create a durable message request

← HTTP API reference
View source specification ↗
POST /message-requests

Creates a durable message request. Authorized recipients and routes are frozen before delivery. Idempotency keys are scoped to the authenticated principal and retained for 24 hours. A retry attaches to the same request and never resends an attempted command. A created request returns HTTP 200 regardless of delivery outcome. Pending dispatches appear in neither list. FIRE_FORGET returns after storage; SYNC waits to completion; AUTO follows each selected plugin declaration. The default deadline is 30 seconds and the recipient cap is 100. TIMED_OUT means the external outcome is unknown.

Required scope

message:send

Header parameters

Idempotency-KeystringRequired

Client-chosen key that makes a non-idempotent request retry-safe, following draft-ietf-httpapi-idempotency-key-header. A committed response is stored for 24 hours and replayed for the same principal, operation, key and payload. Missing key returns 400 IDEMPOTENCY_KEY_REQUIRED, a key longer than 255 characters returns 400 IDEMPOTENCY_KEY_INVALID, the same key with a different payload returns 422, and the same key while the first request is still in flight returns 409. Requests rolled back before external provider attempts do not consume the key. Group mutations retain terminal failed responses after provider attempts together with received provider truth; their operation contract defines these replayable outcomes.

minLength: 1

maxLength: 255

Request body

Required

Returns

200

Durable request created, including its current delivery outcomes.

Errors

400 BAD_REQUEST

Bad request.

Check the request fields and any validation details, then correct the payload.

403 FORBIDDEN

Forbidden.

Check the linked account and its permissions for the device or resource.

422 IDEMPOTENCY_KEY_REUSED

Idempotency key reused with a different payload.

Correct the rejected value using the constraints in the error details or request schema.