# SMS

Send and receive SMS messages. View conversations and message history.

**Base URL:** `https://api.trustpager.com/functions/v1/api/v1`

## Endpoints

### GET /sms/conversations

List SMS conversations. Returns involved_user_ids showing which team members have interacted.

**Scopes:** `sms:read` — [full detail](./sms/get-sms-conversations.md)

### GET /sms/conversations/:id

Retrieve an SMS conversation with involved_user_ids and linked entities.

**Scopes:** `sms:read` — [full detail](./sms/get-sms-conversations-id.md)

### GET /sms/conversations/:id/messages

List messages in a conversation.

**Scopes:** `sms:read` — [full detail](./sms/get-sms-conversations-id-messages.md)

### POST /sms/send

Send an SMS message. If the recipient contact has sms_unsubscribed: true the send is silently suppressed and a 200 response is returned with status: "suppressed". The message is NOT delivered and does NOT appear in the conversation thread. To audit opted-out contacts use GET /contacts?sms_unsubscribed=true.

**Scopes:** `sms:send` — [full detail](./sms/post-sms-send.md)

### PATCH /sms/conversations/:id

Update an SMS conversation — set unread_count to 0 to mark as read, or change status.

**Scopes:** `sms:write` — [full detail](./sms/patch-sms-conversations-id.md)

### POST /sms/conversations/mark-read

Bulk mark SMS conversations as read. Use conversation_ids for specific conversations, or all:true to mark all unread conversations read. Returns the count of conversations updated.

**Scopes:** `sms:write` — [full detail](./sms/post-sms-conversations-mark-read.md)
