РазработчикамПУБЛИЧНЫЙ 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 контента для одного из ваших сайтов и получите сгенерированную страницу.