GET
https://app.evoriqa.com/api/v1/conversations/exportExport conversations as CSV
Streams a CSV of conversations — the one v1 response shape that is not the JSON envelope. Pages through the whole result set up to a hard cap of **100,000 rows**, and a capped response carries `X-Export-Truncated: true`. Rate-limited to 10 per minute on top of the global limits.
Requires scope conversations:read
Warning:
Access is gated — enable it before your first call
The API is off by default. A request succeeds only when all three switches are on: the platform master switch (off by default), your organisation’s API toggle, and your plan or client entitlement. Any one off returns 403 API access is not enabled for this workspace.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
| chatbotId | query | string uuid | Optional | — | Only conversations of this chatbot. |
| status | query | string | Optional | — | Filter by conversation status. |
| source | query | string | Optional | — | Filter by channel source. |
| q | query | string | Optional | — | Free-text search. |
| qa | query | string one of low | Optional | — | low keeps only conversations with an AI reply the live QA judge scored below passing. Any other value is ignored. |
| lead | query | string one of hot | Optional | — | hot keeps only conversations whose leadScore reached 70. Any other value is ignored. |
Request
curl
curl "https://app.evoriqa.com/api/v1/conversations/export" \
-H "x-api-key: $EVORIQA_API_KEY"Node.js
const res = await fetch("https://app.evoriqa.com/api/v1/conversations/export", {
headers: {
Authorization: `Bearer ${process.env.EVORIQA_API_KEY}`,
},
});
const responseBody = await res.json();Python
import os
import requests
res = requests.get(
"https://app.evoriqa.com/api/v1/conversations/export",
headers={"Authorization": f"Bearer {os.environ['EVORIQA_API_KEY']}"},
)
body = res.json()