WatificationDocs
OTP messages

Get an OTP message

Read the current mirrored status of a message sent through the OTP API. A status is a delivery outcome, not successful code verification. Explicit status corrections can clear a recorded failure. The supplied code is never returned.

Unknown query parameters are rejected. Omit the request body; only an absent body or an empty object is accepted.

Responses

StatusMeaning and codes
200Current message status and details in your workspace.
401Problem Details. Codes: API_KEY_INVALID.
404Problem Details. Codes: NOT_FOUND.
422Problem Details. Codes: DEVELOPER_INVALID_INPUT.
429Problem Details. Codes: RATE_LIMITED. Retry-After: 1 is present only for RATE_LIMITED; quota errors do not include it.

Success and handled error responses send Cache-Control: no-store and X-Correlation-ID (the resolved/generated UUID). Errors use application/problem+json and the reusable ProblemDetails schema below. Retry-After: 1 is sent only for RATE_LIMITED. Request examples read your key from a server environment variable; replace all fictional values.

Schemas and examples

GET
/otp/messages/{messageId}

Authorization

ApiKey
headerAuthorizationBearer <token>

Server-side API key. publicId is 12 lowercase base32 characters (a-z, 2-7); secret is 43 base64url characters from 32 random bytes. Use Authorization: Bearer <complete key>. The API key determines the workspace; requests cannot select another workspace. All public routes share 20 requests per second per key. See API-key authentication.

Path Parameters

messageId*string

Message ID in your workspace, returned when you send an OTP message.

Formatuuid

Header Parameters

X-Correlation-ID?string

Optional tracing ID. A UUID-shaped value is echoed in the response. Missing or invalid values are replaced with a generated UUID, not rejected.

Response Body

Current message status and details in your workspace.

application/json
  1. response
messageId*string

Message ID.

Formatuuid
status*string

Current mirrored status. played belongs to the shared vocabulary; it is not an expected OTP text outcome.

Value in"accepted""received""queued""sending""sent""delivered""read""played""failed"
reference*|

Caller reference, or null if omitted.

to*string

Normalized E.164 recipient.

createdAt*string

Ledger creation time.

Formatdate-time
sentAt*|

First sent/delivered/read/played occurrence, or null.

Formatdate-time
failure*|null