РозробникамПУБЛІЧНИЙ CONTENT API

Звичайний REST і JSON. Закрито, доки ви не відкриєте.

Налаштування публічного API для кожного сайту точно визначають, що й кому відкрито. Отримуйте опублікований контент, карти сайту й редиректи в одному передбачуваному форматі JSON — без схеми GraphQL, яку треба вивчати, і без згенерованого клієнта, який треба синхронізувати. Усі запити нижче справжні: блог на CMSHub, до якого звертаються одним лише curl.

01 / ОТРИМАННЯ ОПУБЛІКОВАНОГО КОНТЕНТУ

Один GET-запит — опубліковані записи в JSON

Щойно сайт вмикає доступ і додає колекцію до дозволеного списку, її опубліковані записи доступні звичайним GET-запитом. Усе визначається за заголовком Host, і для публічних даних API-ключ не потрібен.

  • Повертаються лише ОПУБЛІКОВАНІ записи — чернетки й неопубліковані версії ніколи не витікають через публічний шлях.
  • Заборона за замовчуванням: невідомий хост, вимкнений сайт і колекція не з дозволеного списку однаково повертають 404.
  • ?locale=xx повертає опублікований варіант для цієї локалі, а за його відсутності — варіант локалі робочого простору за замовчуванням.
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 / ВИЯВЛЕННЯ — АВТОМАТИЧНО

Карта сайту, яка завжди збігається з опублікованим

sitemap.xml і robots.txt генеруються з того самого набору сторінок, який читає API контенту, — немає окремої конфігурації для синхронізації й нічого не треба перестворювати вручну.

  • Відображає актуальний набір сторінок за кожного запиту: опублікували сторінку — вона вже в карті сайту.
  • Альтернативи hreflang додаються автоматично для кожної сторінки з перекладеними варіантами.
  • /robots.txt спрямовує пошукових роботів на цей самий sitemap — для кожного сайту.
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 / ЗАКРИТО ЗА ЗАМОВЧУВАННЯМ

Ви вирішуєте, що відкриває сайт

Публічні API контенту закриті, доки ви явно не налаштуєте, що відкриває сайт, — немає відкритого за замовчуванням ендпоінта, який тихо віддає неопублікований контент чи чернетки.

Налаштування для кожного сайту

Вмикайте й налаштовуйте публічний API окремо для кожного сайту в робочому просторі.

Лише опублікований контент

Публічний API віддає лише те, що пройшло фільтр якості й справді опубліковане, — жодних чернеток.

Версіоновано й стабільно

Кожен маршрут розміщено під версіонованим шляхом, тож інтеграція, створена сьогодні, працюватиме й надалі, поки CMSHub розвивається.

ВИКЛИЧТЕ РЕАЛЬНИЙ ЕНДПОІНТ

Увімкніть публічний API для сайту.

Увімкніть публічний API контенту для одного з ваших сайтів і отримайте згенеровану сторінку.