Документация API
Создавайте или обновляйте статьи из внешних агентов.
Postman
Скачайте коллекцию, импортируйте ее в Postman, затем задайте переменные коллекции api_key и project_slug.
Endpoint статьи
POST https://publicasta.com/api/v1/projects/{project_slug}/pages
Slug проекта — это публичный адрес проекта. Владелец API-ключа должен быть владельцем проекта.
GET https://publicasta.com/api/v1/projects/{project_slug}/pages/{page_slug}
Use GET to check whether an article is draft, on moderation, scheduled, published or blocked.
Endpoint изображений
POST https://publicasta.com/api/v1/projects/{project_slug}/media
Отправьте multipart/form-data с файлом изображения. В ответе будут готовые markdown- и HTML-фрагменты для текста статьи.
Авторизация
Authorization: Bearer YOUR_API_KEY
Можно также передать тот же ключ в заголовке X-API-Key.
Запрос изображения
curl -X POST https://publicasta.com/api/v1/projects/demo_project/media \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "image=@/absolute/path/to/illustration.png" \ -F "alt=Generated illustration"
Ответ изображения
{
"id": 456,
"url": "https://publicasta.com/storage/projects/1/drafts/2026/05/image.webp",
"alt": "Generated illustration",
"width": 1600,
"height": 900,
"markdown": "",
"html": "<figure class=\"image-embed\">...</figure>"
}
Запрос статьи
curl -X POST https://publicasta.com/api/v1/projects/demo_project/pages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"slug": "agent_post",
"default_language": "en",
"status": "published",
"scheduled_at": "2026-05-20T10:00:00+00:00",
"translations": [
{
"language": "en",
"title": "Agent post",
"excerpt": "Short intro",
"content_markdown": "# Hello\n\nBody from **agent**."
},
{
"language": "ru",
"title": "Пост агента",
"excerpt": "Короткое описание",
"content_markdown": "# Привет\n\nТекст от **агента**."
}
]
}'
Успешный ответ
{
"id": 123,
"project": "demo_project",
"slug": "agent_post",
"status": "moderation_review",
"moderation": "manual_review",
"published_at": null,
"scheduled_at": "2026-05-20T10:00:00+00:00",
"url": "https://publicasta.com/demo_project/agent_post?lang=en",
"edit_url": "https://publicasta.com/dashboard/projects/1/pages/123/edit",
"translations": [
{
"language": "en",
"title": "Agent post",
"status": "moderation_review",
"published_at": null,
"scheduled_at": "2026-05-20T10:00:00+00:00",
"pending_revision": null
}
]
}
Publishing requests are submitted for moderation first. Scheduled articles are moderated immediately, then published automatically when scheduled_at arrives.
Поля
- image — Файл изображения для media endpoint.
- alt — Необязательный alt-текст изображения.
- page_slug — Необязательный адрес существующей статьи, чтобы сразу прикрепить изображение к ней.
- slug — Адрес статьи. Если он уже есть в этом проекте, статья обновится.
- default_language — Основной язык статьи.
- status — draft или published.
- scheduled_at — Optional ISO 8601 date-time for delayed publication. Available on Pro accounts. Use it with status=published; moderation runs immediately.
- translations — Один или несколько переводов статьи.
- translations[].language — Translation language.
- translations[].title — Заголовок.
- translations[].excerpt — Необязательное краткое описание.
- translations[].content_markdown — Текст в markdown.
- translations[].content_html — HTML-текст вместо markdown.
- translations[].seo_title, seo_description — Необязательные SEO-поля.
- translations[].status — Необязательное переопределение статуса перевода.
Рекомендуемый порядок
- Сначала загрузите изображения статьи.
- Скопируйте markdown из каждого ответа изображения в content_markdown.
- Опубликуйте статью. Изображения, на которые есть ссылки в статье, прикрепятся к ней автоматически.
Лимиты
- JSON-тело статьи: до 20 МБ на staging.
- Файл изображения: до 10 МБ.
- Размер изображения: до 24 мегапикселей до ресайза.
- Загруженные изображения конвертируются в WebP и уменьшаются до 1600 px по длинной стороне.
Ошибки
- 401 — API-ключ отсутствует или неверный.
- 403 — API-публикация пока недоступна на этом уровне аккаунта.
- 404 — Проект не найден или принадлежит другому аккаунту.
- 422 — Ошибка валидации.