API de entrega
Lee contenido publicado con peticiones GET simples bajo /api/p/{ref}/. Sin autenticación, CORS abierto, solo se expone el contenido publicado (no archivado). {ref} es un id de proyecto o slug.
Nodos
GET /api/p/{ref}/nodes/by-path/*
Resuelve un nodo por su ruta de slug, p. ej. /nodes/by-path/blog/about. Acepta ?locale=xx (por defecto el default_locale del proyecto; 400 invalid_locale en caso contrario).
Devuelve el nodo renderizable:
{ "data": {
"id", "parent_id?", "slug", "type", "title", "locale", "path",
"blocks": [ { "id", "type", "order", "data" } ], // locale overrides merged
"seo": { canonical, robots, og, twitter, hreflang, jsonld, breadcrumbs },
"translated": true|false
} }GET /api/p/{ref}/nodes/{id}
La misma forma renderizable, resuelta por id de nodo. También acepta ?locale.
GET /api/p/{ref}/nodes
Lista todos los nodos publicados (filas en bruto).
Entradas de colección
GET /api/p/{ref}/entries
Entradas publicadas paginadas de una colección. Consulta: collection (obligatorio, ruta de slug), page (1), per_page (20, máx. 100), q, sort.
{ "data": [ { "id", "slug", "title", "path", "updated_at" } ],
"total", "page", "per_page" }Lectura localizada (módulo de traducciones)
GET /api/p/{ref}/translations/nodes/{nodeId}
El nodo publicado fusionado con los metadatos de un locale + las anulaciones por bloque. Consulta ?locale=xx (obligatorio).
SEO y marca
GET /api/p/{ref}/sitemap.xml
Un urlset (o un sitemapindex que referencia fragmentos sitemap-{n}.xml por encima de 5000 nodos). Una entrada por locale con alternativas hreflang. Necesita el public_base_url del proyecto.
GET /api/p/{ref}/robots.txt
Robots estándar con una línea Sitemap: cuando se establece una URL base.
GET /api/p/{ref}/theme
Marca del inquilino para la pantalla de inicio de sesión (previa a la autenticación): { logo_url, favicon_url, accent_color, name_override }.