---
title: "Download a contact list as CSV"
method: GET
path: "/v1/contact-lists/{contact_list_id}/export"
---

# Download a contact list as CSV

`GET /v1/contact-lists/{contact_list_id}/export`

## Request

- Base URL: `https://api.skysay.ai`
- URL: `https://api.skysay.ai/v1/contact-lists/{contact_list_id}/export`
- Auth: none declared

Every contact in import order: phone_e164, name, first_name, language, time_zone, country, external_reference, consent_basis, then one variables.<name> column per custom value to read (a list value as JSON; at most 200 such columns), then a variables column with every custom value as typed JSON. Text a spreadsheet could read as a formula, or that starts with an apostrophe, is prefixed with one apostrophe. The dashboard's Import CSV reads such a file back as the same contacts, custom value types included, consent_basis too. The file streams in import order in chunks of 1,000 contacts, so it has no Content-Length (HTTP/1.1 clients get it chunked, and a download that fails partway fails rather than ending early); at most 50,000 contacts (the list limit), and X-Skysay-Truncated says when a list held more. X-Skysay-Row-Count is the number of contacts when the download started; a contact deleted while it downloads is left out, one added is not included. A pure read, bound to the credential's own workspace.

## Path parameters

- `contact_list_id` string, required

## Response `200`

text/csv

## Other responses

- `404`: No such list in this workspace

---

[API](https://skmtc.dev/skysay/apis/skysay-api.md) · [All operations](https://skmtc.dev/skysay/apis/skysay-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skysay/apis/skysay-api/revisions/95b8c66f99aa?raw)
