Skip to main content
Export every customer in your program, or every customer matching a filter, as one file. This replaces paging through List Customers when you need the whole result set, such as a nightly sync to your own systems. An export runs in the background. You create it, poll it until it completes, then download the file.
Customer exports require a program API key or OAuth with the read_customers scope. The site token and secret is not accepted.

Create an export

Create a customer export takes the same filters as List Customers. An empty body exports every customer.
The response is 202 Accepted with the new export in status pending. A program can have one export pending or processing at a time. A second request returns 409 with the id of the export already running.

Poll for progress

Get a customer export returns the export’s current state. Poll it every few seconds until the status is completed or failed. rows_total is an estimate taken when processing starts, and may be null if none was available. rows_processed is exact.

Download the file

A completed export carries a download_url. The link is signed and valid for six hours from the response that returned it; read the export again for a fresh link. The file itself is available for seven days after completion, after which the export reports expired. The file is JSON Lines: one customer per line, in the same shape as List Customers returns. It is not compressed.
Rows are ordered by id ascending.

Find earlier exports

List customer exports returns the program’s exports, newest first: anything still running, any whose file is still downloadable, and any that failed in the last seven days.
To keep a copy of your customers up to date, run one full export, then either run periodic exports with updated_at_min or subscribe to the customers/update webhook for changes as they happen.