Skip to main content
POST
Request an async encrypted conversation/session export

Authorizations

x-api-key
string
header
required

Body

application/json

POST body for an async encrypted conversation/session export.

Every optional field below is a narrowing filter with the SAME meaning and the SAME implementation as the matching GET /v1/conversations query param — both go through src/conversation/session_filters.py, so an export cannot select a different set of sessions than the list the operator was looking at. The export is channel-agnostic by default; channel just narrows it. [start, end) is always required and is not a "filter" in this sense — it bounds the job's size.

start
string<date-time>
required
end
string<date-time>
required
export_format
enum<string>
default:csv
Available options:
csv,
ndjson
channel
string | null
status
string | null
end_user_id
string<uuid> | null
assigned_agent_id
string<uuid> | null
priority
enum<string> | null
Available options:
low,
normal,
high,
urgent
eval_filter
enum<string> | null
Available options:
has_evals,
no_evals,
all_passed,
any_failed
q
string | null
from_number
string | null
to_number
string | null
email
string | null
id
string<uuid> | null
external_session_id
string | null

Response

Successful Response

Status view of an export job (with per-file download tokens when ready).

id
string<uuid>
required
status
string
required
export_format
string
required
created_at
string<date-time>
required
window_start
string<date-time> | null
window_end
string<date-time> | null
started_at
string<date-time> | null
finalized_at
string<date-time> | null
expires_at
string<date-time> | null
total_rows
integer | null
error_code
string | null
filters
Filters · object | null
files
ConversationExportFile · object[]