---
title: "Export the campaign's leads to CSV"
method: POST
path: "/business/campaigns/{campaignId}/leads/export"
tags: ["Campaigns"]
---

# Export the campaign's leads to CSV

`POST /business/campaigns/{campaignId}/leads/export`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/campaigns/{campaignId}/leads/export`
- Auth: HTTP basic

Exports every lead in the campaign as a CSV document returned inline in the JSON body under `csv` (first row is the header). There are no filters - use GET /business/campaigns/{campaignId}/leads when you want a page or a search. Very large campaigns are refused with 422 EXPORT_LIMIT_EXCEEDED rather than truncated. Only the token owner's own campaigns can be exported: a campaign delegated to you, one shared by your team's visibility settings, and a deleted one all answer 404. Rate limit: this endpoint has a tighter cap of 3 requests/minute and 30/day, applied inside the shared campaigns bucket of 30 requests/minute and 1,000/day per token owner (shared by every campaign, scheduled-send, campaign-template and knowledge-hub endpoint).

Errors:
- `404` `CAMPAIGN_NOT_FOUND` — No campaign with this id exists, it belongs to another account (including a campaign delegated to you or shared by your team's visibility settings), or it has been deleted.
- `422` `NO_LEADS_TO_EXPORT` — The campaign exists but has no enrolled leads to export yet.
- `422` `EXPORT_LIMIT_EXCEEDED` — The campaign has more leads than a single export may contain.
- `422` `VALIDATION_FAILED` — campaignId is not a 24-character hex id.
- `429` `RATE_LIMITED` — Either this endpoint's own cap (3 requests/minute, 30/day) or the shared campaigns bucket (30/minute, 1,000/day for this token owner, shared by every /business/campaigns, /business/scheduled-sends, /business/campaign-templates and /business/knowledge-hubs call) was exceeded. The RateLimit-* headers on the response describe the shared bucket, so a refusal from this endpoint's own cap can still report requests remaining and carries no Retry-After.
- `500` `UNEXPECTED_ERROR` — An unhandled failure; the detail stays in our logs and is never returned.

Requires one of the following token scopes: campaigns.

## Path parameters

- `campaignId` string, required: The campaign's id (24-character hex ObjectId), as returned by POST /business/campaigns or as the campaignId of a GET /business/campaigns row.

## Response `200`

Success

- object
  - `csv` string, required: The whole CSV document, header row first. Empty string if the inner export produced no document.

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
