Дока
Публикация поста
Вы можете создать и опубликовать пост в проекте
POST sponsr.ru/api/v2/external-api/post
Headers:
accept: application/json X-API-KEY
Пример запроса:
{
"date": "2026-10-23",
"title": "Демо-пост публикации через API",
"text": "<h1>Демо-пост через API</h1>\n<p>Пример публикации через <b>внешний API</b>. Доступны <b>жирный</b>, <i>курсив</i>, <u>подчёркнутый</u>, <s>зачёркнутый</s> и <a href='LINK_URL'>ссылка</a>.</p>\n<h2>Списки</h2>\n<ul><li>Маркированный пункт</li><li>Ещё один пункт</li></ul>\n<ol><li>Нумерованный пункт</li><li>Второй пункт</li></ol>\n<h2>Фото</h2>\n<img src='IMAGE_URL' alt='Описание изображения' width='480'>\n<h2>Видео</h2>\n<iframe width='720' height='405' src='VIDEO_URL' style='border: none;' allowfullscreen></iframe>\n<h2>Цитата и код</h2>\n<blockquote>Цитата автора поста.</blockquote>\n<pre><code>console.log('Привет');</code></pre>\n<hr>\n<p><b>Проверьте: заголовки, списки, фото, видео, цитата и код отображаются корректно.</b></p>",
"is_extended_view": true,
"is_pinned": true,
"is_markdown": false,
"is_notified": false,
"tag_id": [91419, 91420],
"meta_title": "Демо-пост публикации через API",
"meta_description": "SEO-описание страницы"
}
Перед отправкой запроса замените плейсхолдеры на свои ссылки:
- «LINK_URL» — ссылка на внешний ресурс, например`sponsr.ru` .
- «IMAGE_URL» — прямая ссылка на изображение, доступное публично без авторизации, например`media.sponsr.ru...` .
- «VIDEO_URL» — ссылка на встраиваемое видео rutube.ru/play/embed<id>
Пример опубликованного поста:
sponsr.ru/projecttest/189275/Demopost_publikacii_cherez_API
Параметры тела запроса:
- level_id — ID уровня подписки. Если параметр не передан, пост будет опубликован как бесплатный и доступный всем пользователям. При передаче level_id доступ к посту получают только пользователи указанного уровня;
- date — дата публикации в формате ISO 8601;
- title — заголовок поста. От 4 до 256 символов;
- text — содержимое поста. От 0 до 150 000 символов;
- is_extended_view — показывать пост в развернутом виде (true / false);
- is_pinned — закрепить пост (true / false);
- is_markdown — применить markdown к тексту (true / false);
- is_notified — не оповещать о публикации поста (true / false)
- tag_id — ID существующей подборки, в которую нужно добавить пост (можно передавать несколько tag_id массивом);
- meta_title — SEO-заголовок страницы. От 1 до 1000 символов;
- meta_description — SEO-описание страницы. От 1 до 1000 символов.
Контент в содержимом поста
Поле «text» позволяет передавать не только текстовые данные, но и медиа-элементы в составе HTML или Markdown.
Изображения вставляются по прямой ссылке на файл изображения, размещенного на платформе Sponsr или на стороннем хостинге.
"text" : "<img src=\"example.com/image.webp\" alt=\"Описание изображения\">"
Видео встраивается через iframe с поддерживаемых сервисов, загружать его не требуется. Список поддерживаемых сервисов : Кинескоп, VK, RuTube, YouTube, Дзен.
"text": "<iframe src=\"rutube.ru/play/embed/123456\" allowfullscreen></iframe>"
Ограничения при публикации поста через API
- прикрепление аудиофайлов к посту не поддерживается;
- создание опросов не поддерживается;
- создание галереи изображений не поддерживается. Ссылки на изображения, переданные в поле «text» , выводятся последовательно друг за другом как отдельные элементы.
- прикрепленные файлы не создаются как отдельные вложения поста. Файл можно добавить только в виде ссылки на предварительно загруженный файл в поле «text» . В посте такой файл отображается как ссылка.
Пример ответа в случае успеха:
{
"data": {
"id": 189250,
"url": "sponsr.ru/projecttest/189250/Demopost_publikacii_cherez_API",
"editor": "sponsr.ru/projecttest/manage/post/189250"
}
Описание ответа:
- id— ID созданного поста;
- url— публичная ссылка на пост;
- editor— ссылка на редактирование поста через UI.
Примеры ответов в случае ошибки:
Указанный уровень подписки не найден:
{
"message" : "Level Not Found" ,
"error" : "Not Found" ,
"statusCode" : 404
}
Слишком короткий заголовок
{
"message" : [
"title must be longer than or equal to 4 characters"
] ,
"error" : "Bad Request" ,
"statusCode" : 400
}
Слишком длинный заголовок
{
"message" : [
"title must be shorter than or equal to 256 characters"
] ,
"error" : "Bad Request" ,
"statusCode" : 400
}
Невалидное значение или отсутствие поля title или text
{
"message" : [
"title must be shorter than or equal to 256 characters" ,
"title must be longer than or equal to 4 characters" ,
"title must be a string" ,
"text must be shorter than or equal to 16777200 characters" ,
"text must be longer than or equal to 0 characters" ,
"text must be a string"
] ,
"error" : "Bad Request" ,
"statusCode" : 400
}
Неверный формат даты
{
"message" : [
"Дата публикации должна быть корректной датой в формате ISO 8601"
] ,
"error" : "Bad Request" ,
"statusCode" : 400
}
Превышена длина поля meta_title
{
"message" : [
"meta_title must be shorter than or equal to 1000 characters"
] ,
"error" : "Bad Request" ,
"statusCode" : 400
}
Превышена длина поля meta_description
{
"message" : [
"meta_description must be shorter than or equal to 1000 characters"
] ,
"error" : "Bad Request" ,
"statusCode" : 400
}