Usa los datos de Atlas.

La API de Atlas permite a las aplicaciones buscar y recuperar registros públicos de e-etiquetas de vino. Las lecturas públicas son gratuitas y abiertas, sin clave para el límite estándar.

Inicio rápido

Define la URL base una vez y luego ejecuta cualquier ejemplo de abajo.

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

Autenticación

Las peticiones anónimas pueden usar todos los endpoints públicos de lectura. Una clave sube el límite de peticiones y es necesaria para las operaciones de escritura de proveedores. Los propietarios y administradores de espacios de trabajo de proveedor pueden crear una clave en el espacio de trabajo con sesión iniciada, en Claves API. Si necesitas una clave de lectura sin espacio de trabajo de proveedor o acceso masivo, escribe a david@essentialcode.eu.

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

Límites de peticiones

Cada operación pública permite 60 peticiones anónimas por minuto y dirección, o 600 por minuto y clave de lectura. Las respuestas incluyen las cabeceras limit, remaining y reset. Una petición por encima del límite devuelve 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."}}

Endpoints públicos de lectura

Buscar registros

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

Salida de ejemplo

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

Listar registros públicos

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

Salida de ejemplo

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

Consultar un GTIN

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

Salida de ejemplo

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

Obtener un registro por ID de 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"

Salida de ejemplo

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

Paginación

La lista pública de registros devuelve next_cursor cuando existe otra página. Envía ese valor opaco exacto con los mismos filtros. No lo decodifiques ni lo edites.

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"

Idiomas de los registros públicos

Las páginas de registros públicos solo localizan las etiquetas propias de Atlas y los códigos que define el E-Label Standard Format, incluidos tipo de vino, propiedades del vino, códigos de país, claves de nutrición y unidades. Todo texto escrito por el proveedor permanece exactamente como se entregó, incluidos nombres y categorías de ingredientes y cualquier texto de envase o eliminación que el proveedor escribiera.

El primer código en languages es siempre el idioma principal del registro, incluso cuando Atlas no puede mostrar su interfaz en ese idioma. Una página ofrece el contenido principal y los idiomas admitidos que tienen traducciones del proveedor. Enlaza a una selección con ?lang=de o ?lang=hr. Sin parámetro, Atlas usa Accept-Language cuando existe contenido coincidente y redirige a la URL compartible correspondiente.

Prefiere ingredients[] estructurados para conservar los indicadores de alérgenos y ecológico. Usa ingredients_text solo cuando el proveedor tenga una declaración en prosa completa. Los proveedores pueden añadir valores translations.{language} para ingredients_text, designation_of_origin y cada instrucción packaging[].disposal. El array packaging sigue la longitud y el orden de la lista principal; usa null para una instrucción que deba recurrir al valor principal. Las traducciones ausentes recurren al valor principal de primer nivel. REST y MCP devuelven este mapa opcional, y JSON-LD usa valores etiquetados por idioma. Este mapa del proveedor es la única vía por la que el texto del proveedor cambia entre idiomas.

El cuerpo de la petición del proveedor sigue el E-Label Standard Format.

En las páginas públicas, Atlas renderiza los códigos propios del Standard (productType, color, sweetness, packagingGas, packagingType, materialType y collection) en el idioma de la página desde el vocabulario Standard publicado. Cualquier otro valor del proveedor permanece exactamente como se entregó.

MCP

Model Context Protocol, o MCP, es una forma estándar de que un cliente de IA llame a herramientas externas. e-label Atlas ofrece un servidor Streamable HTTP anónimo en https://www.elabel-atlas.eu/mcp.

El servidor expone search_elabels, lookup_elabel_by_gtin, get_elabel y list_elabels_updated_since.

Instala Atlas en un agente

Elige tu cliente. El plugin de Claude Code y la configuración de Codex incluyen tanto la guía de la skill de Atlas como las herramientas MCP en vivo. Otros clientes se conectan al mismo servidor MCP de solo lectura.

Claude Code

Añade el marketplace oficial de Atlas y luego instala el plugin. El plugin contiene la skill y registra el servidor MCP remoto. Se requiere Claude Code 2.1.224 o posterior para el archivo alojado.

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

Los plugins de Claude Code se instalan a través de marketplaces, no directamente desde una URL de plugin arbitraria.Referencia oficial de formato y distribución.

Claude web y escritorio

Claude web y Claude Desktop aceptan Atlas como conector remoto personalizado. No instalan el plugin de Claude Code en un chat normal. Abre el formulario de conector precumplimentado, revisa la URL y confírmala.

https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=e-label%20Atlas&connectorUrl=https%3A%2F%2Fwww.elabel-atlas.eu%2Fmcp
Abrir el formulario de conector de Atlas

Referencia oficial de conectores personalizados.

Codex

Descarga la skill de usuario y registra el servidor Streamable HTTP. Reinicia Codex tras instalar 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

Referencia oficial de skills yreferencia oficial de MCP.

Cursor

Añade esta entrada a ~/.cursor/mcp.json conservando los servidores ya presentes en el archivo y reinicia Cursor. Atlas no tiene actualmente un listado en el Cursor Marketplace.

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

Referencia oficial de MCP de Cursor.

Gemini CLI

Añade esta entrada a ~/.gemini/settings.json conservando los ajustes existentes y reinicia Gemini CLI. Atlas no tiene actualmente un listado de extensión de Gemini.

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

Referencia oficial de MCP de Gemini CLI.