Pro vývojářeVEŘEJNÉ CONTENT API

Čisté REST a JSON. Zavřené, dokud ho neotevřete.

Konfigurace veřejného API pro každý web přesně určuje, co je zpřístupněno a komu. Načítejte publikovaný obsah, sitemapy a přesměrování ve stejném předvídatelném tvaru JSON všude — žádné GraphQL schéma k učení, žádný generovaný klient k synchronizaci. Každý níže uvedený požadavek je skutečný: blog postavený na CMSHub, volaný jen pomocí curl.

01 / NAČTĚTE PUBLIKOVANÝ OBSAH

Jeden GET požadavek, publikované záznamy jako JSON

Jakmile web veřejné API zapne a kolekci povolí, jsou její publikované záznamy na dosah jediného GET — vše se odvodí z hlavičky Host a pro veřejná data není potřeba žádný API klíč.

  • Vracejí se pouze PUBLIKOVANÉ záznamy — koncepty a nepublikované revize veřejnou cestou nikdy neuniknou.
  • Výchozí zákaz: neznámý host, vypnutý web i kolekce, která není povolená, vrátí stejně 404.
  • ?locale=xx vrátí publikovanou variantu pro danou jazykovou verzi, jinak výchozí jazyk pracovního prostoru.
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 / AUTOMATICKÉ OBJEVOVÁNÍ

Sitemapa, která vždy odpovídá tomu, co je skutečně publikované

sitemap.xml a robots.txt se generují ze stejného přehledu stránek, ze kterého čte Content API — žádná samostatná konfigurace k synchronizaci a nic k ručnímu přegenerování.

  • Při každém požadavku odráží živý stav stránek — publikujete stránku a je v sitemapě.
  • Alternativy hreflang se automaticky přidají ke každé stránce s přeloženými variantami.
  • /robots.txt odkazuje prohledávače na stejný sitemap, pro každý web zvlášť.
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 / VE VÝCHOZÍM STAVU ZAVŘENO

Co web zpřístupní, rozhodujete vy

Veřejná Content API zůstávají zavřená, dokud výslovně nenastavíte, co web zpřístupní — žádný endpoint otevřený ve výchozím stavu, který by potichu servíroval nepublikovaný obsah nebo koncepty.

Konfigurace pro každý web

Zapněte a nastavte veřejné API nezávisle pro každý web v pracovním prostoru.

Pouze publikovaný obsah

Veřejné API poskytuje jen to, co prošlo kontrolou kvality a je skutečně publikováno — nikdy koncepty.

Verzované a stabilní

Každá cesta leží pod verzovanou adresou, takže integrace postavená dnes bude fungovat i s dalším vývojem CMSHub.

ZAVOLEJTE SKUTEČNÝ ENDPOINT

Zapněte veřejné API pro web.

Zapněte veřejné Content API pro jeden ze svých webů a načtěte vygenerovanou stránku.