Skip to main content
GET

Description

Exports chat messages as an NDJSON (Newline-Delimited JSON) stream for qualitative analysis. All person IDs are automatically anonymized using HMAC-SHA256.
The response is an NDJSON stream (application/x-ndjson), not standard JSON. Each line is an independent JSON object.

Authentication header

string
required
Your Mindo API Key. Two types are accepted:
  • Global (cross-company): mindo_global_<key> — access to all companies
  • Company-scoped: mindo_xxxxxxxxxxxxxxxxxxxxxxxx — limited to the associated company

Query parameters

string
required
Company ID. Accepts a single integer or comma-separated list: 42 or 42,57.
string
required
Start date/time (ISO-8601, inclusive). Example: 2026-04-01T00:00:00Z.
string
required
End date/time (ISO-8601, exclusive). Must be greater than from. Maximum 31-day range.
string
default:"all"
Platform filter: whatsapp, instagram, messenger, all.
string
Filter by AI agent. A single integer or CSV list: 5 or 5,12.
string
default:"all"
Message direction: incoming, outgoing, all.
string
default:"classifications"
Extra fields to include (CSV): classifications, extractions, tool_calls, trace_id.
string
Pagination cursor obtained from next_cursor in the previous response.
integer
default:"5000"
Maximum number of rows per call. Range: 1–10000.

Response

The response is an NDJSON stream. Each line is a JSON object with the following fields:
string
Anonymized message ID (msg_<24 hex chars>).
string
Anonymized chat ID (conv_<24 hex chars>).
string
ISO-8601 timestamp of when the message was sent.
string
Platform: META_WHATSAPP, WHATSAPP_EVOLUTION, INSTAGRAM, MESSENGER, MANYCHAT_WHATSAPP, MANYCHAT_INSTAGRAM.
string
"inbound" (from contact) or "outbound" (from system/agent/operator).
object
Who sent the message.
object
AI agent data (only if the message was generated by an agent).
object
Message content.
object
Conversation context.
object
Export data.

Optional fields (include parameter)

These fields only appear if requested in the include parameter.
array
Classifications applied to the message (included by default).
array
Data extracted from the message by custom field extractors.
array
Tools executed by the AI agent during message generation.
string
Langfuse trace ID for debugging. Only has a value for outgoing messages generated by an AI agent.

Pagination

Pagination is cursor-based. If there are more results, the last line of the stream is a sentinel:
Send the next request with cursor=<next_cursor> to get the next page. When there is no sentinel, all data has been returned.

ID anonymization

Anonymization is deterministic per company, irreversible, and consistent across exports.

Channel mapping

Mid-stream errors

If an error occurs after the stream has already started, it is emitted as an additional NDJSON line:

Limits

Use cases

Export only outgoing messages from a specific agent with tool_calls to evaluate which tools were used and how successfully:
Export incoming messages with their classifications to evaluate or retrain models:
Export all messages from multiple companies for comparative audit:
Export messages with trace_id to correlate with Langfuse traces: