`GET https://api.dropcontact.com/v1/enrich/all/{request_id}`

Fetch the enriched contacts from their `request_id`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `request_id` | path | string | yes |  |
| `forceResults` | query | boolean \| null | no | Return the records already enriched instead of waiting for the whole batch. When true, the endpoint responds even while processing is still in progress (instead of asking you to retry) and adds a `status` field (`ready` or `in_progress`) telling you whether the batch is complete. |

## Responses

### 200 — Result ready, or not ready yet (`success: false` with a `reason`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | array of EnrichedRecord | yes | The enriched records, ordered by input index. |
| `data[].first_name` | string \| null | no | Contact first name. |
| `data[].last_name` | string \| null | no | Contact last name. |
| `data[].full_name` | string \| null | no | Contact full name. Use this when first and last name are not provided separately. |
| `data[].civility` | string \| null | no | Contact civility: `Monsieur` or `Madame` with `language: fr`, `Mr` or `Mrs` otherwise. |
| `data[].email` | array of EmailResult \| null | no | Found emails with their qualification. |
| `data[].linkedin` | string \| null | no | Contact LinkedIn profile URL. |
| `data[].job` | string \| null | no | Contact job title. |
| `data[].job_function` | string \| null | no | Contact job function (broad category of the role). |
| `data[].job_level` | string \| null | no | Contact seniority level (e.g. manager, executive). |
| `data[].mobile_phone` | string \| null | no | Contact mobile phone number. |
| `data[].location` | string \| null | no | Contact location (city, region or country). |
| `data[].company` | string \| null | no | Company name. |
| `data[].website` | string \| null | no | Company website URL. |
| `data[].siret_address` | string \| null | no | Company street address (from the French SIRET registry). |
| `data[].siret_zip` | string \| null | no | Company postal code (from the French SIRET registry). |
| `data[].siret_city` | string \| null | no | Company city (from the French SIRET registry). |
| `data[].country` | string \| null | no | Company country. |
| `data[].company_linkedin` | string \| null | no | Company LinkedIn URL. |
| `data[].phone` | string \| null | no | Company standard phone number. |
| `data[].company_turnover` | string \| null | no | Company annual revenue. |
| `data[].company_results` | string \| null | no | Company annual results. |
| `data[].nb_employees` | string \| null | no | Number of employees of the company, as a range (e.g. `10-19`). |
| `data[].siren` | string \| null | no | French SIREN code (input field is `num_siren`). |
| `data[].siret` | string \| null | no | French SIRET code. |
| `data[].naf5_code` | string \| null | no | NAF/APE code. |
| `data[].naf5_des` | string \| null | no | NAF/APE code description. |
| `data[].vat` | string \| null | no | VAT number. |
| `data[].industry` | string \| null | no | Industry (LinkedIn). Only available on the Free and Growth plans. |
| `data[].employee_count` | string \| null | no | Number of LinkedIn profiles linked to the company. Only available on the Free and Growth plans. |
| `data[].custom_fields` | object \| null | no | Custom fields echoed from the input. |
| `data[].company_change` | string \| null | no | Previous company name when a company change is detected. |
| `data[].errors` | RecordErrors \| null | no |  |
| `data[].warnings` | RecordWarnings \| null | no |  |
| `data[].status` | string \| null | no | `ready` or `in_progress`, only when forceResults=true. |
| `credits_left` | integer | yes | Credits remaining on the account. |
| `status` | string \| null | no | Global batch status (`ready`/`in_progress`), only when forceResults=true. |
| `error` | boolean | no |  |
| `success` | boolean | no |  |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | boolean | no | Whether an error occurred. |
| `reason` | string | yes | Why the request failed, or why the result is not ready yet. |
| `success` | boolean | no | Always false. |

### 401 — Missing or invalid API key

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | boolean | no | Whether an error occurred. |
| `reason` | string | yes | Why the request failed, or why the result is not ready yet. |
| `success` | boolean | no | Always false. |

### 403 — Unknown account, or `request_id` sent by another account

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | boolean | no | Whether an error occurred. |
| `reason` | string | yes | Why the request failed, or why the result is not ready yet. |
| `success` | boolean | no | Always false. |

### 422 — Validation Error

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `detail` | array of ValidationError | no |  |
| `detail[].loc` | array of string \| integer | yes |  |
| `detail[].msg` | string | yes |  |
| `detail[].type` | string | yes |  |

### 500 — Internal Server Error

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `detail` | string | yes |  |
