The compliance export object
⚠️
Preview — this feature is being built; the design below is the spec.
The compliance_export object as the API returns it. Every field below appears in every response that returns this object; fields with no value are null rather than missing.
Example
{
"id": "cexp_01JCS5T7V9X1Z3B5D7F9",
"type": "compliance_export",
"kind": "chats",
"filters": {
"starting_at": "2026-10-01T00:00:00Z",
"ending_at": "2026-11-01T00:00:00Z",
"user_ids": [
"user_01J9Y0A2C4E6G8J0L2N4"
]
},
"format": "jsonl",
"status": "succeeded",
"record_count": 1822,
"bytes": 48120334,
"parts": 1,
"expires_at": "2026-11-12T10:20:00Z",
"created_at": "2026-11-05T10:00:00Z",
"finished_at": "2026-11-05T10:20:00Z",
"requested_by": "adminkey_01JC0Z2B4D6F8H0K2M4P"
}Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique id of this object. |
type | string | The object type, always compliance_export. |
kind | string | activities, chats, projects, code_sessions or files. |
filters | object | Nested detail; see the endpoint pages below. |
format | string | jsonl (one record per line) or zip (JSONL plus original attachments). |
status | string | queued, running, succeeded, failed or canceled. |
record_count | integer | See the endpoint pages below. |
bytes | integer | See the endpoint pages below. |
parts | integer | Exports over 2 GB are split; download each part with ?part=. |
expires_at | string | Downloads stop working 7 days after the export finished. |
created_at | string | When it was created, RFC 3339 UTC (some older objects use Unix seconds). |
finished_at | string | When it ended, or null. |
requested_by | string | See the endpoint pages below. |
Returned by
POST /v1/compliance/exports/{export_id}/cancelPOST /v1/compliance/exportsGET /v1/compliance/exportsGET /v1/compliance/exports/{export_id}
Was this page helpful?