Skip to main content
GET
/
api
/
threads
/
{id}
/
messages
Get Messages
curl --request GET \
  --url https://app.puffle.ai/api/threads/{id}/messages \
  --header 'Authorization: Bearer <token>'
CLI:
puffle thread message --id <id>

Overview

Lists messages for one Unibox thread. This endpoint verifies thread ownership and returns paginated conversation_messages rows ordered by sent_at ascending. Unlike Get thread, this endpoint does not mark the thread as read.

Path Parameters

ParameterTypeDescription
idstringThread ID.

Query Parameters

ParameterTypeDescription
pageintegerPage number. Defaults to 1.
limitintegerPage size. Defaults to 50, max 200.

Example

curl -H "Authorization: Bearer $PUFFLE_API_KEY" \
  "https://app.puffle.ai/api/threads/3d986dd1-9d70-45b7-8e36-5d5b8b1c9337/messages?limit=25"
{
  "messages": [
    {
      "id": "6d54211c-7e24-4eb9-85fc-7388c8d89f2f",
      "conversation_id": "3d986dd1-9d70-45b7-8e36-5d5b8b1c9337",
      "direction": "outbound",
      "subject": "Quick question",
      "body_text": "Hi Alex, I had a quick question.",
      "sent_at": "2026-05-26T08:36:25.000Z"
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 25
}
Email attachment URLs are refreshed before messages are returned.

AI agent notes

Use this endpoint for polling or auditing message history when you should not reset unread state. Use Get thread when you need participant and sender context.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Thread (conversations.id) UUID.

Response

Successful response.