Заголовки, auth и HTTP-поверхность обоих SDK.

Справка API

Базовый URL: YOUR_API_URL

JSON. Конверт: { "data": ... } или { "error": "code", "message": "..." }.

Заголовки

HeaderКогда
Content-Type: application/jsonс телом
X-Application-Codeидентификация приложения
X-Application-Idальтернатива коду
X-Public-Keyпейвол, платежи, CMS Site
Authorization: Bearer <jwt>user-scoped

Публичные

GET /v1/applications/{app_code}/paywalls/{paywall_code}
X-Public-Key: YOUR_PUBLIC_KEY
GET /v1/applications/{app_code}/config?platform=web&app_version=1.0.0
GET /v1/applications/{app_code}/branding
X-Public-Key: YOUR_PUBLIC_KEY
GET /v1/applications/{app_code}/banners/{banner_code}
X-Public-Key: YOUR_PUBLIC_KEY
GET /v1/sites/{site_code}/banners/{banner_code}
X-Public-Key: YOUR_CMS_SITE_KEY

С авторизацией

POST /v1/applications/{app_code}/users/register
PATCH /v1/applications/{app_code}/users/me
GET  /v1/applications/{app_code}/users/me/consents
POST /v1/applications/{app_code}/users/me/consents
GET  /v1/applications/{app_code}/entitlements/me
POST /v1/payments
POST /v1/applications/{app_code}/license-keys/activate
POST /v1/devices/register
GET  /v1/devices?application_code=YOUR_APP_CODE
DELETE /v1/devices/{device_id}
GET  /v1/applications/{app_code}/features
POST /v1/events
POST /v1/events/batch

Приложение для события: application_id / application_code в теле или заголовки X-Application-Id / X-Application-Code (lookup через service role).

Регистрация / профиль

POST /v1/applications/{app_code}/users/register
Authorization: Bearer YOUR_ACCESS_TOKEN

{
  "platform": "web",
  "display_name": "Иван",
  "avatar_url": "https://cdn.example.com/a.jpg",
  "timezone": "Europe/Moscow",
  "acquisition_source": "organic",
  "explicit_consent": true,
  "consents": [
    {
      "document_id": "YOUR_LEGAL_DOCUMENT_UUID",
      "version": "1",
      "checkbox_text": "Я принимаю Пользовательское соглашение",
      "accepted": true
    }
  ]
}
GET /v1/applications/{app_code}/users/me/consents
Authorization: Bearer YOUR_ACCESS_TOKEN
POST /v1/applications/{app_code}/users/me/consents
Authorization: Bearer YOUR_ACCESS_TOKEN

{
  "source_screen": "reconsent_modal",
  "consents": [ /* document_id, version, checkbox_text, accepted */ ]
}
PATCH /v1/applications/{app_code}/users/me
Authorization: Bearer YOUR_ACCESS_TOKEN

{
  "display_name": "Иван П.",
  "avatar_url": "https://cdn.example.com/a2.jpg"
}

Имя и avatar_url попадают в админку Platform. Гео (country_code, city, timezone) заполняется по IP при первом контакте. Гайд: Пользователи и профиль.

Платёж free → 400 free_plan_offline.

Webhook провайдера платежей настраивается на Platform API, не на маркетинг-сайт. Секреты провайдера — только на сервере.

CMS Site (публичное чтение)

GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/blog/posts
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/kb/tree
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/downloads
GET /v1/applications/YOUR_APP_CODE/sites/YOUR_SITE_CODE/changelog
X-Public-Key: YOUR_PUBLIC_KEY

Гайд: CMS Сайт.