DesarrolladoresAPI PÚBLICA DE CONTENIDO

REST y JSON sin más. Cerrada hasta que la abras.

La configuración de la API pública por sitio controla exactamente qué se expone y a quién. Obtén contenido publicado, sitemaps y redirecciones con la misma estructura JSON predecible en todas partes: sin esquema GraphQL que aprender ni cliente generado que mantener sincronizado. Todas las peticiones de abajo son reales: un blog construido con CMSHub, consultado solo con curl.

01 / OBTÉN EL CONTENIDO PUBLICADO

Una petición GET y tienes los registros publicados en JSON

En cuanto un sitio se activa e incluye una colección en su lista de permitidos, sus registros publicados están a un simple GET, resueltos por completo a partir de la cabecera Host y sin clave de API para los datos públicos.

  • Solo se devuelven registros PUBLICADOS: los borradores y las revisiones sin publicar nunca se filtran por la ruta pública.
  • Denegado por defecto: un host desconocido, un sitio desactivado o una colección fuera de la lista de permitidos devuelven el mismo 404.
  • ?locale=xx devuelve la variante publicada en ese idioma y, si no existe, la del idioma por defecto del espacio de trabajo.
GEThttps://the-signal.blog/api/posts
curl https://the-signal.blog/api/posts
RESPONSE
{
  "siteId": "the-signal-4f2a",
  "siteName": "The Signal",
  "baseUrl": "https://the-signal.blog",
  "collection": {
    "id": "3b0d6f2a-9c41-4e8a-8f2e-1d4c9a7b6e11",
    "slug": "posts",
    "name": "Posts"
  },
  "data": [
    {
      "id": "a91f2e3c-7d5b-4a10-9c3e-6f8a2b1d0e44",
      "locale": "en",
      "translationOfId": null,
      "data": {
        "title": "Shipping a public content API without a GraphQL schema",
        "slug": "shipping-a-public-content-api",
        "excerpt": "Plain REST beats a bespoke query language when a frontend just needs JSON.",
        "category": "Engineering",
        "author": "Dana Osei",
        "published_at": "2026-09-10"
      }
    },
    {
      "id": "d2c5b8a1-4e3f-4c9d-8b7a-2f1e6d5c4b33",
      "locale": "en",
      "translationOfId": null,
      "data": {
        "title": "What the quality gate actually checks before you publish",
        "slug": "the-quality-gate-explained",
        "excerpt": "Every generated page passes the same checks, whether it's post 1 or post 10,000.",
        "category": "Product",
        "author": "Dana Osei",
        "published_at": "2026-09-04"
      }
    }
  ],
  "meta": {
    "locale": "en",
    "pagination": { "start": 0, "limit": 20, "total": 2, "nextCursor": null }
  }
}
02 / DESCUBRIMIENTO AUTOMÁTICO

Un sitemap que siempre coincide con lo publicado

sitemap.xml y robots.txt se generan a partir del mismo inventario de páginas que lee la API de contenido: no hay una configuración aparte que mantener sincronizada ni nada que regenerar a mano.

  • Refleja el inventario de páginas en vivo en cada petición: publicas una página y ya está en el sitemap.
  • Las alternativas hreflang se añaden automáticamente a cualquier página con variantes traducidas.
  • /robots.txt dirige a los rastreadores a este mismo sitemap, por sitio.
GEThttps://the-signal.blog/sitemap.xml
curl https://the-signal.blog/sitemap.xml
RESPONSE
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url><loc>https://the-signal.blog/posts/shipping-a-public-content-api</loc><lastmod>2026-09-10T14:22:00.000Z</lastmod></url>
  <url><loc>https://the-signal.blog/posts/the-quality-gate-explained</loc><lastmod>2026-09-04T09:15:00.000Z</lastmod></url>
</urlset>
03 / CERRADA POR DEFECTO

Tú decides qué expone cada sitio

Las APIs públicas de contenido permanecen cerradas hasta que configuras explícitamente qué expone un sitio: no hay ningún endpoint abierto por defecto sirviendo en silencio contenido sin publicar o en borrador.

Configuración por sitio

Activa y configura la API pública de forma independiente para cada sitio de un espacio de trabajo.

Solo contenido publicado

La API pública sirve lo que ha pasado por el filtro de calidad y está realmente publicado. Nunca borradores.

Versionada y estable

Cada ruta vive bajo una ruta versionada, así que una integración que construyas hoy seguirá funcionando a medida que CMSHub evolucione.

LLAMA A UN ENDPOINT REAL

Activa la API pública para un sitio.

Activa la API pública de contenido para uno de tus sitios y obtén una página generada.