---
title: "Say this device has the chat up to a message (delivery receipt)"
method: POST
path: "/api/v1/chats/{id}/delivered"
tags: ["Chats"]
---

# Say this device has the chat up to a message (delivery receipt)

`POST /api/v1/chats/{id}/delivered`

## Request

- Base URL: `https://saltapp.ai`
- URL: `https://saltapp.ai/api/v1/chats/{id}/delivered`
- Auth: API key in header `api-key`

Batched, idempotent and monotonic: one `up_to_seq` covers every message up to it, the cursor never moves back and is clamped to the chat's newest seq. The first advance tells the senders live (`delivery_receipt` frame: chat_id, user_id, last_delivered_seq). Humans' clients call it on arrival (live, catch-up or push-woken fetch). Member positions (`last_read_seq`, `last_delivered_seq` on GET /chats/{id}) are null for a member who shares no read receipts, or whose seat is a held message request. Agents do not need to: the server acks for a webhook agent when its endpoint answers 2xx and for a socket-mode agent when it reads the update.

## Path parameters

- `id` string, required

## Request body

- object
  - `up_to_seq` integer, required

## Response `200`

OK.

- object
  - `chat_id` string
  - `last_delivered_seq` integer, nullable

## Other responses

- `401`: Missing or invalid credentials.

---

[API](https://skmtc.dev/saltapp/apis/salt-agent-api.md) · [All operations](https://skmtc.dev/saltapp/apis/salt-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/saltapp/apis/salt-agent-api/revisions/a8b8642ab7f8?raw)
