Skip to content
Linq

Get a message's status

GET/v1/messages/{msg}

Retrieves a sent message’s delivery outcome. Use it when you missed, or do not subscribe to: the message.sent and message.failed webhooks.

Path ParametersExpand Collapse
msg: string
ReturnsExpand Collapse
id: string

Message id (msg_…).

chat_id: string
created_at: string
formatdate-time
state: string

Delivery state: queued until a terminal outcome (sent, failed, suppressed, …).

updated_at: string
formatdate-time
fallbacks: optional array of Fallback { token, from, rule, 2 more }

Capability rewrites applied at accept under degrade ("auto" or "acknowledged"); present only when something was rewritten (the same array the send’s 200 carried).

token: string

The missing capability token that forced the rewrite.

from: string

Canonical part type in.

rule: string

The fallback-tree rule applied (e.g. guide-17.5-select-le5).

to: string

Canonical part type out. For a rewritten form this is text_sequence: the whole degraded fan is one rewrite outcome, stable across how many messages it produced; which types those messages carry is on the response’s own messages[].

options: optional array of FallbackOption { index, item_id, label }

Present only when the rewrite flattened a menu.

index: number

1-based, matching the numbering the degraded copy emits.

formatint32
item_id: string

The original item id, so a customer’s “2” maps back to your routing.

label: string
group_id: optional string

Correlation id present ONLY when this message was one of several a single request fanned out into (URL promotion): it is the first message’s id, carried on every member, the same value the send response and the message.sent/message.failed webhooks report. Use it to identify which fan-out group a message belongs to; it is a correlation key, not a member list. Absent on an ordinary single-message send.

last_error: optional string

Gateway error of the last attempt; rides only on a gateway-verdict failure.

last_status: optional number

Gateway HTTP status of the last attempt; rides only on a gateway-verdict failure.

formatint32
parts: optional array of unknown

The message’s canonical parts AS STORED at accept; post-degrade, post-promotion, i.e. what the customer’s device was (or will be) sent, not necessarily what you composed (fallbacks says when they differ). Typed as an opaque array rather than Part[] for the same one-decode-door reason TranscriptRow.parts is. Absent only when the stored content cannot be rendered canonically.

reason: optional string

Failure-only: whether to resubmit (permanent, undelivered, auth_error, suppressed, consent_revoked, …): the same value the message.failed webhook carried.

Get a message's status

curl https://messages.api.linqapp.com/v1/messages/$MSG \
    -H "Authorization: Bearer $LINQ_AMB_API_KEY"
{
  "id": "msg_2c7d90",
  "chat_id": "chat_4f81b2",
  "state": "sent",
  "created_at": "2026-08-06T14:02:12Z",
  "updated_at": "2026-08-06T14:02:13Z"
}
Returns Examples
{
  "id": "msg_2c7d90",
  "chat_id": "chat_4f81b2",
  "state": "sent",
  "created_at": "2026-08-06T14:02:12Z",
  "updated_at": "2026-08-06T14:02:13Z"
}