Usa i dati Atlas.

L'API Atlas consente alle applicazioni di cercare e recuperare record pubblici di e-etichette del vino. Le letture pubbliche sono gratuite e aperte, senza chiave per il rate limit standard.

Avvio rapido

Imposta la base URL una volta, poi esegui qualsiasi esempio qui sotto.

ATLAS_API=https://www.elabel-atlas.eu/api/v1

Autenticazione

Le richieste anonime possono usare ogni endpoint pubblico di lettura. Una chiave alza il rate limit ed è necessaria per le operazioni di scrittura dei fornitori. Proprietari e amministratori di workspace fornitore possono creare una chiave nel workspace con accesso effettuato, sotto Chiavi API. Se ti serve una chiave di lettura senza un workspace fornitore o un accesso bulk, scrivi a david@essentialcode.eu.

curl --fail --silent --show-error \
  -H "Authorization: Bearer $ATLAS_API_KEY" \
  "$ATLAS_API/public-records?limit=1"

Rate limit

Ogni operazione pubblica consente 60 richieste anonime al minuto per indirizzo, oppure 600 al minuto per chiave di lettura. Le risposte includono gli header limit, remaining e reset. Una richiesta oltre il limite restituisce HTTP 429:

HTTP/1.1 429 Too Many Requests
retry-after: 60
x-ratelimit-limit: 60
x-ratelimit-remaining: 0

{"error":{"code":"rate_limited","message":"The public API rate limit was exceeded."}}

Endpoint pubblici di lettura

Cerca record

curl --fail --silent --show-error \
  "$ATLAS_API/search?q=Veltliner&limit=1"

Output di esempio

{
  "query": "Veltliner",
  "records": [{
    "atlas_record_id": "QXSvIVqvHcRW-LjHtG88I",
    "name": "Grüner Veltliner 2025",
    "provider": { "name": "Demo Wine Cooperative" },
    "gtin": "4006381333931"
  }]
}

Elenca i record pubblici

curl --fail --silent --show-error \
  "$ATLAS_API/public-records?limit=1"

Output di esempio

{
  "records": [{
    "atlas_record_id": "ovPcoHyHMEbzdcGC_Zkm_",
    "name": "Grüner Veltliner Ried Steinberg 2024",
    "provider": { "name": "Glasswise" }
  }],
  "next_cursor": "eyJ1cGRhdGVkQXQiOjE3ODk1MDIxMjQ3MDcsImlkIjoib3ZQY29IeUhNRWJ6ZGNHQ19aa21fIn0"
}

Cerca un GTIN

curl --fail --silent --show-error \
  "$ATLAS_API/public-records/4006381333931"

Output di esempio

{
  "gtin": "4006381333931",
  "records": [{
    "atlas_record_id": "QXSvIVqvHcRW-LjHtG88I",
    "name": "Grüner Veltliner 2025",
    "provider": { "name": "Demo Wine Cooperative" }
  }]
}

Ottieni un record per ID Atlas

RECORD_ID=$(curl --fail --silent --show-error \
  "$ATLAS_API/public-records?limit=1" | jq -r '.records[0].atlas_record_id')
curl --fail --silent --show-error \
  "$ATLAS_API/public-records/by-id/$RECORD_ID"

Output di esempio

{
  "atlas_record_id": "ovPcoHyHMEbzdcGC_Zkm_",
  "name": "Grüner Veltliner Ried Steinberg 2024",
  "provider": { "name": "Glasswise" },
  "atlas_updated_at": "2026-09-15T19:55:24.707Z"
}

Paginazione

La lista pubblica dei record restituisce next_cursor quando esiste un'altra pagina. Invia quel valore opaco esatto con gli stessi filtri. Non decodificarlo né modificarlo.

CURSOR=$(curl --fail --silent --show-error \
  "$ATLAS_API/public-records?limit=1" | jq -r '.next_cursor')
curl --fail --silent --show-error \
  "$ATLAS_API/public-records?limit=1&cursor=$CURSOR"

Lingue dei record pubblici

Le pagine dei record pubblici localizzano solo le etichette di Atlas e i codici definiti dall'E-Label Standard Format, inclusi tipo di vino, proprietà del vino, codici paese, chiavi nutrizionali e unità. Ogni testo scritto dal fornitore resta esattamente come fornito, inclusi nomi e categorie degli ingredienti e qualsiasi testo su imballaggio o smaltimento scritto dal fornitore.

Il primo codice in languages è sempre la lingua primaria del record, anche quando Atlas non può rendere la sua interfaccia in quella lingua. Una pagina offre il contenuto primario e le lingue supportate che hanno traduzioni del fornitore. Collega a una selezione con ?lang=de o ?lang=hr. Senza parametro, Atlas usa Accept-Language quando esiste contenuto corrispondente e reindirizza all'URL condivisibile corrispondente.

Preferisci ingredients[] strutturati per preservare i flag allergeni e biologico. Usa ingredients_text solo quando il fornitore ha una dichiarazione in prosa completa. I fornitori possono aggiungere valori translations.{language} per ingredients_text, designation_of_origin e ogni istruzione packaging[].disposal. L'array packaging segue lunghezza e ordine della lista primaria; usa null per un'istruzione che deve ricadere sul valore primario. Le traduzioni mancanti ricadono sul valore primario di primo livello. REST e MCP restituiscono questa mappa opzionale, e JSON-LD usa valori con tag di lingua. Questa mappa fornita dal fornitore è l'unico modo in cui il testo del fornitore cambia tra le lingue.

Il body della richiesta del fornitore segue l'E-Label Standard Format.

Sulle pagine pubbliche Atlas rende i codici propri dello Standard (productType, color, sweetness, packagingGas, packagingType, materialType e collection) nella lingua della pagina dal vocabolario Standard pubblicato. Ogni altro valore del fornitore resta esattamente come fornito.

MCP

Model Context Protocol, o MCP, è un modo standard per un client di IA di chiamare strumenti esterni. e-label Atlas fornisce un server Streamable HTTP anonimo su https://www.elabel-atlas.eu/mcp.

Il server espone search_elabels, lookup_elabel_by_gtin, get_elabel e list_elabels_updated_since.

Installa Atlas in un agente

Scegli il tuo client. Il plugin di Claude Code e la configurazione di Codex includono sia la guida della skill Atlas sia gli strumenti MCP live. Gli altri client si collegano allo stesso server MCP in sola lettura.

Claude Code

Aggiunge il marketplace ufficiale di Atlas, poi installa il plugin. Il plugin contiene la skill e registra il server MCP remoto. Per l'archivio ospitato serve Claude Code 2.1.224 o successivo.

claude plugin marketplace add https://www.elabel-atlas.eu/claude/marketplace.json && \
  claude plugin install elabel-atlas@elabel-atlas

I plugin di Claude Code si installano tramite marketplace, non direttamente da un URL di plugin arbitrario.Riferimento ufficiale su formato e distribuzione.

Claude web e desktop

Claude web e Claude Desktop accettano Atlas come connettore remoto personalizzato. Non installano il plugin di Claude Code in una chat normale. Apri il modulo del connettore precompilato, verifica l'URL e confermala.

https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=e-label%20Atlas&connectorUrl=https%3A%2F%2Fwww.elabel-atlas.eu%2Fmcp
Apri il modulo del connettore Atlas

Riferimento ufficiale dei connettori personalizzati.

Codex

Scarica la skill utente e registra il server Streamable HTTP. Riavvia Codex dopo aver installato la skill.

mkdir -p "$HOME/.agents/skills/elabel-atlas"
curl --fail --location   https://www.elabel-atlas.eu/api/v1/SKILL.md   --output "$HOME/.agents/skills/elabel-atlas/SKILL.md"
codex mcp add elabel-atlas --url https://www.elabel-atlas.eu/mcp

Riferimento ufficiale delle skill eriferimento ufficiale MCP.

Cursor

Aggiungi questa voce a ~/.cursor/mcp.json, mantenendo i server già presenti nel file, poi riavvia Cursor. Atlas non ha attualmente un listing sul Cursor Marketplace.

{
  "mcpServers": {
    "elabel-atlas": {
      "url": "https://www.elabel-atlas.eu/mcp"
    }
  }
}

Riferimento ufficiale MCP di Cursor.

Gemini CLI

Aggiungi questa voce a ~/.gemini/settings.json, mantenendo le impostazioni esistenti, poi riavvia Gemini CLI. Atlas non ha attualmente un listing come estensione Gemini.

{
  "mcpServers": {
    "elabel-atlas": {
      "httpUrl": "https://www.elabel-atlas.eu/mcp"
    }
  }
}

Riferimento ufficiale MCP di Gemini CLI.