# Relire un enrichissement

> GET /merchant/v1/enrichments/{enrichment_id} : une lecture gratuite d'un résultat passé, ce qu'elle rend, qui peut la faire, et quand elle rend 404 ou 410.

`GET /merchant/v1/enrichments/{enrichment_id}` rend le résultat stocké d'un enrichissement passé. **Une lecture est gratuite et ne facture jamais.** Elle exige le scope `enrich:read`.

## Exemple

```bash
curl -sS "https://api.noryo.app/merchant/v1/enrichments/enr_ffe80956-cc3e-4e1f-b4b6-724ad231fbb7" \
  -H "Authorization: Bearer $NORYO_API_KEY"
```

```json
{
  "enrichment_id": "enr_ffe80956-cc3e-4e1f-b4b6-724ad231fbb7",
  "merchant": {
    "name": "McDonald's",
    "category": "alimentation.restaurant",
    "location": { "city": "PARIS", "postal_code": "75018" },
    "logo_url": "https://www.mcdonalds.fr/apple-touch-icon.png",
    "confidence": 0.96
  },
  "enrichment": { "status": "resolved", "reason": null, "environment": "sandbox", "source": "noryo", "customized": false },
  "retrieval": { "billable": false, "units": 0 },
  "original": { "billable": false, "units": 1 }
}
```

## Deux objets pour deux questions

| Objet | Question | Valeur |
|---|---|---|
| `retrieval` | Que coûte **cette lecture** ? | Toujours `{ "billable": false, "units": 0 }` |
| `original` | Qu'a coûté l'enrichissement quand il a eu lieu ? | `billable` et `units` de l'appel d'origine |

La lecture ne porte pas d'objet `usage` : il est remplacé par ces deux objets. `merchant` et `enrichment` ont la même forme qu'à la création. Voir [Enrichment](https://developer.noryo.app/fr-FR/merchant/models/enrichment).

## Ce que rend la lecture d'un identifiant

Chaque `enrichment_id` désigne **son** résultat, figé. Après un rafraîchissement, l'ancien identifiant rend toujours l'ancien résultat, et le nouvel identifiant rend le nouveau : la lecture ne suit pas le « résultat courant » de la transaction. Pour connaître le dernier résultat, conservez l'identifiant rendu par le rafraîchissement (corps ou en-tête `Location`). Voir [Cycle de vie](https://developer.noryo.app/fr-FR/merchant/enrichments/lifecycle).

## Qui peut lire

Toute clé API ayant le scope `enrich:read`, dans le **même workspace** et le **même environnement** que la clé qui a créé l'enrichissement. La clé d'origine n'a pas besoin d'exister encore.

## Quand la lecture échoue

| Statut | Code | Quand |
|---|---|---|
| `404` | [`enrichment_not_found`](https://developer.noryo.app/fr-FR/errors/enrichment_not_found) | Identifiant inconnu, mal formé, d'un autre workspace ou d'un autre environnement. Les cas sont délibérément indiscernables. |
| `410` | [`result_content_expired`](https://developer.noryo.app/fr-FR/errors/result_content_expired) | Le contenu a dépassé sa rétention de 90 jours. Le corps répète l'`enrichment_id`. Voir [Rétention et 410](https://developer.noryo.app/fr-FR/merchant/retention). |
| `403` | [`insufficient_scope`](https://developer.noryo.app/fr-FR/errors/insufficient_scope) | La clé n'a pas `enrich:read` |
| `401` | [`invalid_api_key`](https://developer.noryo.app/fr-FR/errors/invalid_api_key) | Clé absente, inconnue ou révoquée |
| `429` | [`rate_limited`](https://developer.noryo.app/fr-FR/errors/rate_limited) | Seau de débit vide |

```json
{
  "type": "https://developer.noryo.app/errors/enrichment_not_found",
  "title": "Enrichment not found",
  "status": 404,
  "code": "enrichment_not_found",
  "detail": "No enrichment matches this identifier in this workspace.",
  "request_id": "req_…"
}
```

Rien ne révèle qu'un `enr_` existe ailleurs : un `404` ne dit jamais « interdit ».

## Débit

Une lecture consomme un jeton de débit, comme une création. Une réponse `GET` réussie porte les en-têtes `Noryo-RateLimit-*`, comme un `POST` réussi. Voir [Limites de débit](https://developer.noryo.app/fr-FR/merchant/rate-limits).

> **Note** Une lecture n'est pas une archive. Le contenu disparaît au bout de 90 jours : stockez de votre côté ce dont vous avez besoin.

---

Page canonique : https://developer.noryo.app/fr-FR/merchant/enrichments/read
