Qualitative export
Export messages
Export chat messages as an NDJSON stream for qualitative analysis with anonymized IDs
GET
Description
Exports chat messages as an NDJSON (Newline-Delimited JSON) stream for qualitative analysis. All person IDs are automatically anonymized using HMAC-SHA256.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: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
Agent response quality analysis
Agent response quality analysis
Export only outgoing messages from a specific agent with tool_calls to evaluate which tools were used and how successfully:
Training dataset for classifiers
Training dataset for classifiers
Export incoming messages with their classifications to evaluate or retrain models:
Cross-platform audit
Cross-platform audit
Export all messages from multiple companies for comparative audit:
Agent debugging with Langfuse
Agent debugging with Langfuse
Export messages with
trace_id to correlate with Langfuse traces:
