Дока

Публикация поста

Вы можете создать и опубликовать пост в проекте
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 
}



Бесплатный
Комментарии
avatar
Здесь будут комментарии к публикации