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

Récupérez les contacts enrichis à partir de leur `request_id`.

## Paramètres

| Nom | Emplacement | Type | Obligatoire | Description |
| --- | --- | --- | --- | --- |
| `request_id` | path | string | oui |  |
| `forceResults` | query | boolean \| null | non | Retourne les contacts déjà enrichis sans attendre la fin du lot. Avec true, l'endpoint répond même si le traitement est encore en cours (au lieu de vous demander de réessayer) et ajoute un champ `status` (`ready` ou `in_progress`) qui indique si le lot est terminé. |

## Réponses

### 200 — Résultat prêt, ou pas encore prêt (`success: false` avec un `reason`)

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `data` | liste de EnrichedRecord | oui | Les contacts enrichis, dans l'ordre de l'entrée. |
| `data[].first_name` | string \| null | non | Prénom du contact. |
| `data[].last_name` | string \| null | non | Nom du contact. |
| `data[].full_name` | string \| null | non | Nom complet du contact. À utiliser quand le prénom et le nom ne sont pas fournis séparément. |
| `data[].civility` | string \| null | non | Civilité du contact : `Monsieur` ou `Madame` avec `language: fr`, `Mr` ou `Mrs` sinon. |
| `data[].email` | liste de EmailResult \| null | non | Emails trouvés, avec leur qualification. |
| `data[].linkedin` | string \| null | non | URL du profil LinkedIn du contact. |
| `data[].job` | string \| null | non | Intitulé de poste du contact. |
| `data[].job_function` | string \| null | non | Fonction du contact (grande catégorie du poste). |
| `data[].job_level` | string \| null | non | Niveau hiérarchique du contact (ex. manager, dirigeant). |
| `data[].mobile_phone` | string \| null | non | Numéro de téléphone mobile du contact. |
| `data[].location` | string \| null | non | Localisation du contact (ville, région ou pays). |
| `data[].company` | string \| null | non | Nom de l'entreprise. |
| `data[].website` | string \| null | non | URL du site web de l'entreprise. |
| `data[].siret_address` | string \| null | non | Adresse de l'entreprise (issue du registre SIRET français). |
| `data[].siret_zip` | string \| null | non | Code postal de l'entreprise (issu du registre SIRET français). |
| `data[].siret_city` | string \| null | non | Ville de l'entreprise (issue du registre SIRET français). |
| `data[].country` | string \| null | non | Pays de l'entreprise. |
| `data[].company_linkedin` | string \| null | non | URL LinkedIn de l'entreprise. |
| `data[].phone` | string \| null | non | Numéro de téléphone standard de l'entreprise. |
| `data[].company_turnover` | string \| null | non | Chiffre d'affaires annuel de l'entreprise. |
| `data[].company_results` | string \| null | non | Résultat annuel de l'entreprise. |
| `data[].nb_employees` | string \| null | non | Nombre de salariés de l'entreprise, sous forme de tranche (ex. `10-19`). |
| `data[].siren` | string \| null | non | Code SIREN français (le champ en entrée est `num_siren`). |
| `data[].siret` | string \| null | non | Code SIRET français. |
| `data[].naf5_code` | string \| null | non | Code NAF/APE. |
| `data[].naf5_des` | string \| null | non | Libellé du code NAF/APE. |
| `data[].vat` | string \| null | non | Numéro de TVA. |
| `data[].industry` | string \| null | non | Secteur d'activité (LinkedIn). Disponible uniquement sur les plans Free et Growth. |
| `data[].employee_count` | string \| null | non | Nombre de profils LinkedIn liés à l'entreprise. Disponible uniquement sur les plans Free et Growth. |
| `data[].custom_fields` | object \| null | non | Champs personnalisés repris de l'entrée. |
| `data[].company_change` | string \| null | non | Nom de l'entreprise précédente quand un changement d'entreprise est détecté. |
| `data[].errors` | RecordErrors \| null | non |  |
| `data[].warnings` | RecordWarnings \| null | non |  |
| `data[].status` | string \| null | non | `ready` ou `in_progress`, uniquement avec forceResults=true. |
| `credits_left` | integer | oui | Crédits restants sur le compte. |
| `status` | string \| null | non | Statut global du lot (`ready`/`in_progress`), uniquement avec forceResults=true. |
| `error` | boolean | non |  |
| `success` | boolean | non |  |

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `error` | boolean | non | Indique si une erreur s'est produite. |
| `reason` | string | oui | Raison de l'échec de la requête, ou pourquoi le résultat n'est pas encore prêt. |
| `success` | boolean | non | Toujours false. |

### 401 — Clé API absente ou invalide

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `error` | boolean | non | Indique si une erreur s'est produite. |
| `reason` | string | oui | Raison de l'échec de la requête, ou pourquoi le résultat n'est pas encore prêt. |
| `success` | boolean | non | Toujours false. |

### 403 — Compte inconnu, ou `request_id` envoyé par un autre compte

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `error` | boolean | non | Indique si une erreur s'est produite. |
| `reason` | string | oui | Raison de l'échec de la requête, ou pourquoi le résultat n'est pas encore prêt. |
| `success` | boolean | non | Toujours false. |

### 422 — Erreur de validation

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `detail` | liste de ValidationError | non |  |
| `detail[].loc` | liste de string \| integer | oui |  |
| `detail[].msg` | string | oui |  |
| `detail[].type` | string | oui |  |

### 500 — Erreur interne du serveur

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `detail` | string | oui |  |
