Ir al contenido

List Conversations

Ver como Markdown
GET
/public/v1/conversations
curl --request GET \
--url 'https://api.nuntius.chat/public/v1/conversations?offset=0&limit=50' \
--header 'X-API-Key: <X-API-Key>'

List the tenant’s conversations (SPEC_API_PUBLICA.md §2.3).

status matches the RAW domain value (PublicConversationOut’s own docstring); an unrecognized value simply matches nothing, same listing-filter convention as customerId on GET /public/v1/leads.


Permiso necesario: tenant:conversations.read

status
Any of:
string
channel
Any of:
string
customerId
Any of:
string format: uuid
offset
Offset
integer
0
limit
Limit
integer
default: 50 >= 1 <= 200

Successful Response

Media typeapplication/json
PublicConversationsResponse

GET /public/v1/conversations response envelope.

object
items
required
Items
Array<object>
PublicConversationOut

A single conversation, curated subset of the internal ConversationOut.

Drops channelName/mode/sentiment/quality/unreadCount – operator-console presentation/workflow state, not part of the curated read surface (SPEC_API_PUBLICA.md §2.3’s own “Excluido” list: workflow state is deliberately withheld from third parties). status is the RAW Conversation.status domain value ('active'/'escalated'/'resolved'), never the internal _map_status UI collapse to 'open' – see ConversationFilters’s own docstring for why this NEW, independently-versioned contract does not inherit that Platform presentation concern.

object
id
required
Id
string
channel
required
Channel
string
channelId
Any of:
string
status
required
Status
string
subject
Any of:
string
customer
required
PublicConversationCustomerOut

Curated customer block for a public conversation – a narrower shape than the internal CustomerOut (schemas/inbox.py): drops avatarUrl (never populated by any real path in this codebase) and authSessionActive (AC-4, an operator-console-only signal about a LIVE Redis session – meaningless to an M2M integration polling this endpoint asynchronously).

object
id
required
Id
string
name
Any of:
string
email
Any of:
string
phone
Any of:
string
customerId
Any of:
string
assignedOperatorId
Any of:
string
lastMessagePreview
required
Lastmessagepreview
string
lastMessageAt
required
Lastmessageat
string
createdAt
required
Createdat
string
total
required
Total
integer
pagination
required
OffsetPaginationMeta

12-api-contract.md §3.2 offset/limit pagination metadata, verbatim shape.

object
page
required
Page
integer
pageSize
required
Pagesize
integer
totalItems
required
Totalitems
integer
totalPages
required
Totalpages
integer
hasNext
required
Hasnext
boolean
hasPrev
required
Hasprev
boolean

Examplegenerated

{
"items": [
{
"id": "example",
"channel": "example",
"channelId": "example",
"status": "example",
"subject": "example",
"customer": {
"id": "example",
"name": "example",
"email": "example",
"phone": "example",
"customerId": "example"
},
"assignedOperatorId": "example",
"lastMessagePreview": "example",
"lastMessageAt": "example",
"createdAt": "example"
}
],
"total": 1,
"pagination": {
"page": 1,
"pageSize": 1,
"totalItems": 1,
"totalPages": 1,
"hasNext": true,
"hasPrev": true
}
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object

Examplegenerated

{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}