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

# Quickstart

> From API key to a populated, exported prospect list in five minutes.

This walkthrough takes you through the core loop of the Fuse API: verify your key, search for prospects, save the results into a list, and export that list to CSV.

<Info>
  You will need an API key — create one in **Settings → API Cockpit** ([details](/authentication)). The search-and-save step debits search credits from your workspace; check your balance first if you are unsure.
</Info>

<Steps>
  <Step title="Verify your key">
    ```bash theme={null}
    curl https://api.tryfuse.ai/api/v1/business/me -u "af_YOUR_KEY:"
    ```

    ```json theme={null}
    { "user": { "id": "685409d3287883fbc17c0ced", "email": "you@company.com", "name": "Your Name" } }
    ```

    If you get a `401`, the key is malformed or revoked — see [authentication](/authentication).
  </Step>

  <Step title="Preview a prospect search">
    Search filters are structured fields. `GET /business/prospects/filter-options` returns the accepted values for enumerated filters, so you never have to guess spellings:

    ```bash theme={null}
    curl -X POST https://api.tryfuse.ai/api/v1/business/prospects/search \
      -u "af_YOUR_KEY:" \
      -H "Content-Type: application/json" \
      -d '{
        "filters": {
          "job_title_levels": ["c_suite"],
          "job_title_role": ["finance"],
          "location_country": ["united states"]
        },
        "size": 5
      }'
    ```

    The response is a page of matching profiles plus a `scrollToken` for the next page. Previewing is the cheap way to tune filters before you commit to saving.
  </Step>

  <Step title="Save results into a list">
    When the filters look right, save matches into a list. This runs the search server-side and enriches the saved contacts asynchronously:

    ```bash theme={null}
    curl -X POST https://api.tryfuse.ai/api/v1/business/prospects/search/save-to-list \
      -u "af_YOUR_KEY:" \
      -H "Content-Type: application/json" \
      -d '{
        "filters": {
          "job_title_levels": ["c_suite"],
          "job_title_role": ["finance"],
          "location_country": ["united states"]
        },
        "listName": "US finance leaders",
        "limit": 100
      }'
    ```

    ```json theme={null}
    { "listIds": ["68a1f20b9c41d20014b3e901"] }
    ```

    The `202` means the job started. Contacts appear in the list as enrichment completes — poll the next step until rows show up.

    <Note>
      Billing note: this endpoint runs its own search and debits credits for the rows it saves. It does not reuse a previous `POST /prospects/search` — so preview to tune filters, then save once. Details in [credits & billing](/concepts/credits).
    </Note>
  </Step>

  <Step title="Read the list">
    ```bash theme={null}
    curl "https://api.tryfuse.ai/api/v1/business/lists/68a1f20b9c41d20014b3e901/rows?limit=25&pageNum=1" \
      -u "af_YOUR_KEY:"
    ```

    Rows carry the contact's identity fields plus `columnValues` for any [custom columns](/guides/custom-columns) on the list, and the response is [paginated](/concepts/pagination).
  </Step>

  <Step title="Export to CSV">
    Exports are asynchronous: start a job, poll it, download the file.

    ```bash theme={null}
    # start
    curl -X POST https://api.tryfuse.ai/api/v1/business/lists/68a1f20b9c41d20014b3e901/export \
      -u "af_YOUR_KEY:" -H "Content-Type: application/json" -d '{}'
    # -> { "jobId": "68a1f5209c41d20014b3eb11" }

    # poll until status is "completed"
    curl https://api.tryfuse.ai/api/v1/business/exports/68a1f5209c41d20014b3eb11 \
      -u "af_YOUR_KEY:"
    # -> { "exportJob": { "status": "completed", "rowCount": 100, "downloadUrl": "https://..." } }
    ```

    The `downloadUrl` is a presigned link valid for 15 minutes, and the file downloads named after your list.
  </Step>
</Steps>

## Where to next

<CardGroup cols={2}>
  <Card title="Campaigns end to end" icon="paper-plane" href="/guides/campaigns">
    Turn a list into an outbound campaign — manual, AI-generated, or from a template.
  </Card>

  <Card title="Upload your own contacts" icon="upload" href="/guides/upload-your-contacts">
    Bring contacts from your CRM instead of searching.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/concepts/errors">
    The one envelope every failure uses, and every code you can receive.
  </Card>

  <Card title="Rate limits" icon="gauge" href="/concepts/rate-limits">
    Per-surface quotas and the headers that tell you where you stand.
  </Card>
</CardGroup>
