Accept-Encoding: gzip).
One call exports one sheet. To export a whole workbook, request each template’s
slug in turn.
Authentication
Requires anx-api-key header. See Authentication.
Path & query
string
required
The slug of the template whose sheet you want, with a
.csv suffix — e.g.
contacts.csv. List your templates for slugs.string
Comma-separated column names to return, in the order you give them. Omit to
return every column.Names are matched exactly and are case-sensitive — they’re the same names
that appear as CSV headers. An unrecognised name returns
400
(unknown_field) listing the valid ones, rather than being ignored: a typo
should not quietly leave data out of your export.boolean
default:"false"
Drop columns that hold no data.A column is dropped only when it’s empty in every row, so the rows you get
back all keep the same shape and the header still describes every one of them.
Empty means an empty string,
null, or an absent value — whitespace counts as
data. Combine with fields and the pruning applies within your selection.This is answered from the completed import’s stored per-column coverage, so it
reflects the whole sheet, not just some sample. If that coverage isn’t
available — an older import, or one where profiling didn’t run — the request
returns 409 (coverage_unavailable) rather than quietly handing you every
column and letting you believe it was pruned.Response
200 OK with Content-Type: text/csv; charset=utf-8 and a Content-Disposition
attachment header. The body is streamed. An X-Total-Records header reports the
sheet’s total row count. When the request advertises gzip, the response is
gzip-encoded (Content-Encoding: gzip).
Errors
Example
Into your own storage
The endpoint hands you the file in the HTTP response — Vern doesn’t push it anywhere. To land the clean CSV in your own bucket, pull it from your backend and pipe it straight into object storage. The body streams, so you never have to buffer the whole file:x-api-key server-side — run this from your backend, never the browser. Vern
never receives your storage credentials; your backend relays the bytes.
Prefer Vern to deliver directly into a bucket you own — via a presigned URL
or stored bucket credentials — instead of relaying it yourself? That’s not
available today. Tell us at roupen@vern.so if you’d use it.
Next
- Poll a run — confirm the execute completed before exporting.
- Errors & limits — shared conventions.