API de entrega
Lea páginas, entradas, globales, rutas y redirecciones publicadas desde Atlas, e informe de la compilación de su sitio web.
Esta página fue traducida del inglés. Si hay alguna diferencia, prevalece la versión en inglés. Leer en inglés
La API de entrega es la forma en que su sitio web lee el contenido publicado. Llámela únicamente desde código de servidor.
URL base y autenticación
Sección titulada «URL base y autenticación»https://<delivery host>/v1/delivery/environments/{environmentId}Authorization: PublishedConsumer <delivery token>- Cada token pertenece a un entorno. Desarrollo y Producción tienen tokens independientes.
- Los tokens tienen 43 caracteres aleatorios, se muestran una sola vez, son válidos de 1 a 365 días y pueden revocarse en cualquier momento en Studio. Atlas almacena solo una huella digital.
- Un token de Producción lee únicamente el lanzamiento activo de ese entorno.
Las respuestas publicadas incluyen:
Cache-Control: public, max-age=0, s-maxage=60, stale-while-revalidate=300ETag: W/"…"X-Atlas-Content-Version: …Vary: Authorization, Accept-EncodingEnvíe If-None-Match con el último ETag; Atlas responde 304 Not Modified cuando nada ha cambiado. Combínelo con webhooks para actualizar al publicar. Las respuestas de previsualización y de despliegue son private, no-store.
Endpoints
Sección titulada «Endpoints»GET /site
Sección titulada «GET /site»El entorno, su lanzamiento en vivo (Producción), la versión del contenido y el digest y la versión del contrato activo.
GET /routes
Sección titulada «GET /routes»Todas las rutas publicadas, para su mapa del sitio y la generación estática: route, pageType, entryId, title, lastModified, noindex, locales. Hasta 5.000 rutas.
GET /pages?route=/about&locale=en
Sección titulada «GET /pages?route=/about&locale=en»Una página publicada.
| Campo | Contenido |
|---|---|
page |
id, route, title, pageType, publishedAt, entryId |
document |
pageType, pageFields y regions: cada región es una lista ordenada de secciones |
document.regions[key][n] |
id, component { id, version }, props, hidden |
entry |
La entrada vinculada a la página, si su tipo de página tiene una |
seo |
title, description, noindex, structuredDataType, canonicalPath, faq |
head |
title, meta[], links[] y jsonLd[] listos para imprimir, o null con headProblem |
assets |
Cada imagen que usa la página, por id de recurso: url, renditions, alt, focalPoint |
locale, direction, translation, alternates |
Idioma de la respuesta, ltr/rtl, si faltaba una traducción y los demás idiomas |
etag |
El ETag de la revisión |
404 cuando no hay nada publicado en esa ruta. Omita las secciones donde hidden sea verdadero. Consulte Búsqueda y respuestas de IA para usar head.
GET /preview/pages?token=…&locale=en
Sección titulada «GET /preview/pages?token=…&locale=en»Una página en borrador para un enlace de previsualización. Solo Desarrollo (404 en Producción). Nunca la almacene en caché. 403 PREVIEW_INVALID para un token incorrecto, 410 PREVIEW_EXPIRED pasados 15 minutos.
GET /entries?collection=projects
Sección titulada «GET /entries?collection=projects»Entradas de una colección.
| Parámetro | Ejemplo | Notas |
|---|---|---|
collection |
projects |
Obligatorio |
locale |
ar |
|
filter |
category:water,featured:true |
Pares field:value, separados por comas |
sort |
-publishedAt, title, slug, featured, field.year |
Prefijo - para orden descendente |
fields |
title,slug,image |
Devuelve solo estos campos |
limit |
20 |
Hasta 100. Defínalo siempre; sin él la respuesta puede ser muy grande |
page |
2 |
Devuelve entries, assets y meta.pagination.
GET /feed?collection=news&limit=20
Sección titulada «GET /feed?collection=news&limit=20»Las últimas entradas de una colección editorial, para RSS y listados de noticias. 404 FEED_NOT_EDITORIAL para otras colecciones.
GET /globals?locale=en
Sección titulada «GET /globals?locale=en»Contenido compartido como site-header y site-footer: { globals: { key: { data, revision, publishedAt } }, assets }.
GET /redirects
Sección titulada «GET /redirects»{ redirects: [{ from, to, status }] }. Aplíquelas en su middleware o en las redirecciones de next.config.
GET /media/{assetId}?rendition=…
Sección titulada «GET /media/{assetId}?rendition=…»Redirige (302) a una URL de imagen firmada válida durante 15 minutos. No necesita token, por lo que puede usarla en <img src>.
GET /sitemap.xml, GET /robots.txt, GET /llms.txt
Sección titulada «GET /sitemap.xml, GET /robots.txt, GET /llms.txt»Archivos para la raíz de su sitio, generados a partir del lanzamiento en vivo (Producción) o bloqueados (Desarrollo: mapa del sitio vacío, Disallow: /, X-Robots-Tag: noindex, nofollow). Hágales de proxy desde su propio dominio para que el token permanezca en su servidor; consulte Búsqueda y respuestas de IA. 409 SITE_ADDRESS_MISSING hasta que el entorno tenga una dirección de sitio web.
Informar de un despliegue
Sección titulada «Informar de un despliegue»POST /deployments, que llama su sitio web al iniciarse:
{ "bundleDigest": "<sha256 hex of the contract bundle this build renders>", "bundleVersion": "1.4.0", "commit": "a1b2c3d", "components": [{ "id": "acme.home.hero", "version": "1.0.0" }], "runtime": "node", "siteOrigin": "https://dev.example.com"}El state de la respuesta es in-sync, missing-components, different-contract, unknown-contract o no-contract, con el digest activo y los componentes que falten. runtime es node o cloudflare-workers. Hasta 500 componentes.
Errores
Sección titulada «Errores»Los errores son JSON con un code estable. Consulte Límites y errores.