---
title: "Download the contacts of a scraper (CSV)"
method: GET
path: "/linkedin-scrappers/{id}/download"
tags: ["LinkedIn scraper"]
---

# Download the contacts of a scraper (CSV)

`GET /linkedin-scrappers/{id}/download`

## Request

- Base URL: `https://api.emelia.io`
- URL: `https://api.emelia.io/linkedin-scrappers/{id}/download`
- Auth: API key in header `Authorization`

Returns the CSV of a scraper as a string in `data` (a JSON response, not a file). Separator `;`, first line = column names, UTF-8 without BOM, values quoted only when needed. Large extractions give large responses (several MB).

It can be called while the extraction runs: you get what has been collected so far.

`format`: `1` = only contacts with an email (requires a finished enrichment with at least one email), `2` = only contacts without an email (all contacts if the scraper was never enriched), `3` = all contacts.

**People columns** (Sales Navigator and classic searches): id, firstName, lastName, fullName, location, isPremium, openProfile, linkedinUrlProfile, summary, title, company, companyId, companyLocation, companyDescription, companySize, estimatedMinRevenue, estimatedMaxRevenue, industry, description, companyPage, companyWebsite, type. `id` is the Sales Navigator profile key and can contain commas. Fields that LinkedIn does not provide stay empty (classic searches fill fewer columns).

**After an email enrichment** the file is rewritten in this order: id, email_emelia, qualification_emelia, gender_emelia, firstName, lastName, fullName, location, isPremium, openProfile, linkedinUrlProfile, phone_number_emelia, phone_qualification_emelia, phone_country_emelia, summary, title, company, companyId, companyLocation, companyDescription, companySize, estimatedMaxRevenue, estimatedMinRevenue, industry, description, companyPage, companyWebsite, domain_emelia, type.

**Account search columns** (companies): id, companyName, companyPage, companyDescription, companySize, employeeCountRange, industry, companyWebsite, companyLocation, yearFounded, type, estimatedMinRevenue, estimatedMaxRevenue.

Once a scraper is `done`, its contacts are also imported automatically into an Emelia list (`convertedListId`), that you can manage with the Lists endpoints.

## Path parameters

- `id` string, required

## Query parameters

- `format` 1 | 2 | 3, required

## Response `200`

CSV content in `data`.

- ScrapperDownloadResponse
  - `success` boolean, required
  - `data` string, required: CSV content: `;` separator, header line first, UTF-8 without BOM.

## Other responses

- `400`: Invalid format, unknown scraper or nothing to export.
- `401`: Missing or invalid API key (`Authorization` header).
- `500`: Unexpected server error. Current behavior: also returned when the per-minute API quota of the workspace is exceeded (30 requests per minute without subscription, 100 on Start, 300 on Grow, 1,000 on Scale). A 429 would be expected; retry after a minute.

---

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