application/json envelope is the right answer for almost every interactive call. Bulk reads, agent pipelines, and spreadsheet exports want different shapes. The platform negotiates four output encodings on read endpoints; pick the one that matches your reader by setting Accept or the format query parameter. By the end of this page you will know which encoding to ask for, what it looks like on the wire, and what trade-offs come with each.
The four formats
Asking for a format
Two equivalent ways. Both honor the same negotiation rules.application/json.
Not every endpoint negotiates every format. Endpoints that return a single resource (GET /v1/workspaces/{slug}) only honor application/json; alternative formats are for endpoints that return a list. A request for a non-supported format on a single-resource endpoint returns 406 not_acceptable rather than silently falling back.
NDJSON: streaming bulk reads
Newline-delimited JSON: one record per line, no wrapping envelope, no trailing comma management. The response body is a stream — bytes start flowing before the server has materialized the whole result set.CSV: spreadsheet exports
Flat columnar output, RFC 4180 quoting, UTF-8 with a BOM by default for Excel compatibility (suppress with?bom=false). Nested fields are flattened with a dot-separated path:
TSON: token-efficient for AI pipelines
TSON (Typed Structured Object Notation) is a compact encoding designed for passing structured data to language models. It encodes the same logical content as JSON but with materially fewer tokens — list a schema once, then reference fields positionally.Negotiation rules
Three rules apply across all formats.Compression
All four formats negotiate gzip viaAccept-Encoding: gzip and zstd via Accept-Encoding: zstd. Compression is recommended for bulk reads — NDJSON and TSON in particular compress well because their line shapes repeat. The platform applies compression only when the encoded body is over 4 KB; smaller responses are sent uncompressed regardless of negotiation.
Related
Pagination
How cursors work across all four formats — and where each one carries the cursor.