Справочник публичных методов, параметров, схем и примеров
Публичный API доставки: pull новых статей и обновлений, result по доставке, исправление адреса публикации и CSV-фид Tilda. Все методы под /external/ с заголовком X-Api-Key.
Базовый адрес — https://serpjet.ru/external/. Во всех запросах — заголовок X-Api-Key. Машиночитаемая схема — /external/openapi.json, интерактивная — /external/docs.
Методы
| Метод | Назначение |
|---|---|
GET /external/articles/new/pull?project_id=&limit= | Новые статьи, ещё не опубликованные. |
POST /external/articles/new/{delivery_id}/result | Результат по новой статье. |
GET /external/articles/improvements/pull?project_id=&limit= | Новые версии уже опубликованных статей. |
POST /external/articles/improvements/{delivery_id}/result | Результат по обновлению. |
PATCH /external/articles/{article_id}/publication-url | Исправить адрес опубликованной статьи. |
GET /external/tilda/feed.csv?project_id=&days= | CSV для импорта в Tilda Потоки. |
limit — по умолчанию 20, максимум 100.
Поля снимка статьи
| Поле | Описание |
|---|---|
delivery_id | Номер этой версии для доставки. Используется в result. |
project_id, article_id | Проект и статья в SerpJet. |
article_identity | Постоянный идентификатор статьи serpjet:{project_id}:{article_id} — ключ записи в CMS. |
predecessor_delivery_id | Предыдущая версия, которую заменяет эта доставка, или null. |
requires_stable_article_identity | true, если доставку безопасно обрабатывать только по article_identity. |
kind | new — новая статья, update — обновление опубликованной. |
title, description | Заголовок и описание страницы. |
content | HTML статьи с иллюстрациями. |
json_ld | Разметка для поисковых систем. |
cover | Обложка {"url", "alt", "width", "height"} или null. |
external_url | Известный адрес статьи (у обновлений) или пустая строка. |
delivery_attempts, created_at, updated_at | Служебные данные доставки. |
Пример ответа pull
{
"ok": true,
"items": [{
"delivery_id": 15, "project_id": 7, "article_id": 421,
"article_identity": "serpjet:7:421",
"predecessor_delivery_id": null,
"requires_stable_article_identity": false,
"kind": "new",
"title": "Как выбрать бетон для фундамента",
"description": "Краткое описание статьи",
"content": "<h2>…</h2><p>…</p>",
"json_ld": {},
"cover": {"url": "https://…/cover.webp", "alt": "Бетонный фундамент", "width": 1536, "height": 1024},
"external_url": "", "delivery_attempts": 1,
"created_at": "2026-03-08T12:00:00+00:00", "updated_at": "2026-03-08T12:00:00+00:00"
}],
"count": 1
}
Тело result
{"status": "accepted", "external_url": "https://site.example.com/blog/slug", "note": "необязательно"}
status — accepted или rejected. Ответ: {"ok": true, "delivery_id": 15, "status": "accepted", "article_status": "publish", "external_url": "…"}.
Исправление адреса
PATCH /external/articles/421/publication-url
{"external_url": "https://site.example.com/blog/new-alias",
"expected_external_url": "https://site.example.com/node/421"}
Нужен ID статьи, а не доставки. Работает только для статьи с подтверждённой публикацией. Адрес — постоянный HTTP(S) на домене проекта, без логина и пароля, параметров запроса и якоря. expected_external_url защищает от перезаписи более свежего исправления.
Ошибки — Ошибки 401 / 404 / 409 / 429, superseded и пустая очередь.
Не нашли ответ? Напишите в поддержку из панели — укажите проект и что вы видите на экране.