> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intentleads.si/llms.txt
> Use this file to discover all available pages before exploring further.

# Exports

> Quote for free, confirm, and get new people. Nobody is billed twice in a period.

An export takes new people from one or more lanes and adds them to your leads. It's the only thing that uses contacts from your plan.

## Quote, then confirm

Every export is two steps with the same request body:

<Steps>
  <Step title="Quote (free)">
    `POST /api/v1/exports` with `"dry_run": true` says how many people you'd get and how many contacts you'd have left. Nothing is bought.
  </Step>

  <Step title="Confirm">
    The same request with `"dry_run": false` and an `idempotency_key` starts the export and returns `202` with the export.
  </Step>
</Steps>

```json Request body theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "lanes": ["L1", "L3"],
  "max": 250,
  "min_strength": "medium",
  "dry_run": false,
  "idempotency_key": "weekly-2026-10-14"
}
```

| Field | Required | Notes |
| - | - | - |
| `lanes` | Yes | Lane codes like `["L1"]`, or `"all"`. |
| `max` | Yes | Most people to export: a whole number from 1 to 100,000. |
| `min_strength` | No | `low`, `medium` or `high`. Defaults to each lane's own minimum. |
| `dry_run` | No | Defaults to `true`. Only an explicit `false` buys. |
| `idempotency_key` | To confirm | Any unique string up to 200 characters. |

<Warning>
  If you leave out `dry_run`, the request is treated as a quote and the response includes `"dry_run_defaulted": true`. This is on purpose: a missing field never spends your contacts.
</Warning>

## What you get

* **Only new people.** Anyone you've exported this billing period is left out, whichever lane found them, even if their details changed since.
* **Strongest first.** Each lane fills from high intent, then medium, then low (if you allow it).
* **Lanes in priority order.** With several lanes, they're filled one after another, highest-priority lane first.
* **Capped by your plan.** `will_export` is the smallest of `max`, what's available, and the contacts you have left.

## Idempotency and retries

The `idempotency_key` makes confirms safe to retry. Sending the same key again returns the original export with `"reused": true` and status `200`, and never buys again. Use a key that means "this export", like `weekly-2026-10-14` or a UUID you store before calling.

## Statuses

| Status | Meaning |
| - | - |
| `queued` | Accepted; starts within seconds. |
| `running` | Finding and adding people. |
| `completed` | Got everyone it set out to get. |
| `partial` | Fewer new people were really there than estimated. `error` explains; unused contacts aren't charged. |
| `failed` | Stopped without exporting anyone. `error` explains; nothing is charged. |

Poll `GET /api/v1/exports/{id}` every 10 to 30 seconds until the status is `completed`, `partial` or `failed`. Most exports finish within a few minutes.

## Downloading

`GET /api/v1/exports/{id}` returns the export and its leads as JSON. Add `?format=csv` for a CSV with the columns in [Lead fields](/lead-fields). Downloading again is **always free**, as often as you like. `GET /api/v1/exports` lists past exports, newest first.

## When an export is refused

| Status | `error` | What to do |
| - | - | - |
| 400 | `idempotency_key_required` | Add an `idempotency_key` to the confirm. |
| 400 | `invalid_max` | `max` must be a whole number from 1 to 100,000. |
| 402 | `no_plan` | Pick a plan on **Usage and plan**. |
| 402 | `allowance_exhausted` | No contacts left this period. Upgrade, or wait for the next period. |
| 403 | `exports_disabled` | Exports aren't open for this account yet. Quotes still work. |
| 404 | `lane_not_found` | Check the lane codes with `GET /api/v1/lanes`. |
| 409 | `nothing_available` | No new people right now. Try a lower `min_strength`, more keywords, or later. |

See [Errors](/errors) for everything else.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.