API de contenido (Zap)

La única API pensada para que la llame un navegador, con sus propias reglas.

Zap es el CMS de la suite, y su API de entrega existe para lo contrario que el resto: que la consuma el sitio web de alguien más.

Por eso juega con otras reglas. No apliques aquí nada de lo que aprendiste en Reglas comunes.

Qué cambia

Resto de la suite Zap
Credencial eel_sk_ / eel_at_ secret_… o public_…
Desde un navegador No , es el punto
Envoltura de error { error: { code, message } } { error: { code, message, status } }
Códigos ocho, en minúscula en MAYÚSCULA, propios
Cabeceras de ritmo No hay X-RateLimit-*

Las dos clases de clave

  • secret_ es para tu servidor. No está atada a ningún origen, y es la única clase a la que puedes permitirle leer contenido en borrador. Acepta 100 peticiones por minuto.
  • public_ es para el navegador. Va restringida por origen y acepta 60 por minuto.

Una clave pública en el JavaScript de tu sitio es aceptable justamente porque está pensada para eso, y porque el origen la acota. Una clave del resto de la suite en ese mismo lugar sería una filtración.

Cabeceras de ritmo

Es la única API de la suite que te dice cuántas peticiones te quedan:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1780000000

Reset se calcula desde la petición más vieja que sigue contando, no desde ahora, así que la ventana se desliza en lugar de reiniciarse de golpe.

Un idioma por petición

El contenido es multilingüe, pero se pide de a un idioma: ?locale=es. No hay modo "dame todas las traducciones", así que la respuesta no crece con cada idioma que agregues.

SDK y servidor de MCP

Hay dos paquetes en npm, por si no quieres hablar HTTP a mano:

  • @8ux-co/eelzap-api-sdk-ts, el SDK de TypeScript.
  • @8ux-co/eelzap-mcp-server, un servidor de MCP para Zap que corre por stdio.

Ese servidor de MCP es distinto del de la suite: es un binario que corre en tu máquina, usa las claves de Zap y no filtra por permisos, porque las claves de Zap no los tienen. Tampoco tiene idempotencia. No mezcles sus reglas con las del otro.