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

# Extraire une donnée structurée avec Go

> Obtenir une réponse web précise et typée (fondateurs, levée de fonds) avec Retriever Go et un JSON Schema.

**Problème** : vous avez besoin d'une réponse précise sur une entreprise (fondateurs, levée, stack), sans créer de table.

**Solution** : `POST /v1/go/run` avec un `output_schema`.

```python theme={null}
import os, requests

API = os.environ["RETRIEVER_API_URL"]
HEADERS = {"Authorization": f"Bearer {os.environ['RETRIEVER_API_KEY']}"}

res = requests.post(f"{API}/v1/go/run", headers=HEADERS, timeout=180, json={
    "query": "Dernière levée de fonds de Qonto : montant, date, investisseurs principaux.",
    "instructions": "Croise au moins deux sources fiables. Donne les URL sources.",
    "model": "fast",
    "output_schema": {
        "type": "object",
        "required": ["amount_eur", "date", "investors", "sources"],
        "properties": {
            "amount_eur": {"type": ["number", "null"]},
            "date": {"type": ["string", "null"]},
            "investors": {"type": "array", "items": {"type": "string"}},
            "sources": {"type": "array", "items": {"type": "string"}},
        },
    },
})
body = res.json()
if not res.ok:
    raise RuntimeError(f"{res.status_code} {body['error']['code']}: {body['error']['message']}")
print(body["value"], "crédits :", body["usage"]["credits"]["total"])
```

**À savoir**

* Au-delà d'environ 30 s, préférez `POST /v1/go/runs` puis `GET /v1/go/runs/{id}` : vous évitez les timeouts HTTP.
* Ne rejouez pas automatiquement un `POST /v1/go/run` après un timeout : la recherche a pu aboutir et être facturée.
* `model: "smart"` est plus lent et plus cher, mais plus fiable sur les recherches difficiles.
* `402 insufficient_credits` : vérifiez `GET /credits` avant les gros lots.
* Pour des centaines d'entreprises, importez-les dans une table et utilisez un run ([recette 1](/recipes/enrich-crm-list)).
