# Autentificare
## Chei API

Cheile au formatul `dat_live_<id>_<secret>` și se creează din [dashboard → Chei API](/dashboard/keys). Secretul este afișat **o singură dată**, la creare — pe server stocăm doar un hash (SHA-256).

Trimite cheia în headerul `Authorization`, pe orice endpoint:

```bash
curl "https://api.datero.ro/v1/companies?q=dedeman" \
  -H "Authorization: Bearer dat_live_CHEIA_TA"
```

Cheia aparține organizației tale: creditele se contorizează **per organizație**, indiferent câte chei folosești și indiferent de canal (REST sau MCP). Limita de rată (cereri/secundă) se aplică **per cheie API**.

## Acces anonim

Toate endpoint-urile publice acceptă și apeluri **fără autentificare**, rate-limited per IP: pentru datele de referință (CAEN, județe/localități, curs valutar) acesta este modul normal de utilizare; pentru datele de firme e gândit doar pentru testare rapidă. În producție folosește cheia API — doar apelurile autentificate au creditele și limitele planului tău (traficul anonim are limite stricte per IP și se poate restrânge oricând).

## Bune practici

- Ține cheia în variabile de mediu, nu în cod sau în repository.
- Folosește chei separate pentru medii separate (dev/producție) — le poți revoca individual.
- Cheia nu trebuie folosită în frontend public (oricine o poate citi din browser); fă apelurile din backend-ul tău. Excepție: [playground-ul din documentație](/docs) păstrează cheia doar în localStorage-ul browserului tău și o trimite direct către API.

## MCP

Clienții MCP interactivi (Claude, Cursor…) se autentifică prin **OAuth 2.1** — clientul deschide singur fluxul de autorizare în browser. Pentru acces programatic, serverul MCP acceptă și cheia API în același header `Authorization: Bearer dat_live_…`. Detalii: [ghidul MCP](/docs/mcp).
