Документация на метод "aicontent"
ИИ-генератор текста: генерация контента нейросетями
Метод запускает генерацию текста в инструменте ИИ-генератор текста: ответ чат-бота, статья, план, FAQ, отзывы, мета-теги, описания товаров и услуг. Работает асинхронно: сначала ставится задача, потом по report_id забирается результат. Состав доступных нейросетей отдаёт отдельный вызов того же метода.
Как это работает
- 1 Берём модель из справочника — вызываем метод с
models=1и выбираемvalue. Список моделей меняется без предупреждения и зависит от тарифа, поэтому хардкодить его в своём коде не нужно. - 2 Ставим задачу —
POSTс промптом и моделью. В ответ приходитreport_id. Лимиты списываются в момент создания задачи. - 3 Забираем результат — периодически (раз в 5–10 секунд) запрашиваем метод с
report_id, пока вместоIn progressне придёт готовый ответ.
key даже для POST-запросов. Одновременно у одного пользователя может выполняться не больше 5 задач инструмента.1Справочник моделей
/api/aicontent?models=1 — возвращает нейросети, доступные вашему ключу, и их возможности. Задача не создаётся, лимиты не списываются.
| Поле ответа | Тип | Описание |
|---|---|---|
| models[].name | string | Название модели для интерфейса, например GPT 5.4 Thinking. |
| models[].value | string | Идентификатор модели — значение параметра model при постановке задачи. |
| models[].promptLength | int | Максимальная длина request_field в символах. 0 — у модели нет своего ограничения, действует общее: 10 000 символов. |
| models[].isChatBot | bool | Модель доступна в режиме part=chat_bot. |
| models[].isVision | bool | Модель распознаёт изображения — можно передать image_url или image_upload. |
| models[].isFile | bool | Модель принимает файл-вложение file_upload. |
| models[].isWebSearch | bool | Модель поддерживает поиск в интернете — параметр web_search. |
| models[].forLargeText | bool | Модель рассчитана на длинные тексты. |
| default | string | value модели, предвыбранной в интерфейсе инструмента. |
Ответ
{
"models": [
{
"name": "GPT 5.4 Thinking",
"value": "gpt-5.4",
"promptLength": 0,
"isChatBot": true,
"isVision": true,
"isFile": true,
"isWebSearch": false,
"forLargeText": true
},
{
"name": "Sonar Pro",
"value": "sonar-pro",
"promptLength": 0,
"isChatBot": true,
"isVision": false,
"isFile": false,
"isWebSearch": true,
"forLargeText": false
}
],
"default": "gpt-5.4"
}
2Постановка задачи
POST /api/aicontent — параметры передаются телом запроса (multipart/form-data, если прикладываете файл).
Общие параметры
| Параметр | Тип | Обяз. | По умолчанию | Описание |
|---|---|---|---|---|
| part | string | да | — | Режим генерации — вкладка инструмента. Допустимые значения: chat_bot, article, plan, faq, reviews, listing_of_goods, goods_card, title_description_h1, large_texts, api-complex. У каждого режима свой набор дополнительных полей — см. таблицу ниже. |
| model | string | да | — | value из справочника моделей. Отключённая или неизвестная модель — ошибка Ошибка - неправильно выбранная модель нейросети!. |
| request_field | string | да | — | Промпт: что должна сделать нейросеть и что вывести в результате. Максимальная длина — promptLength модели, по умолчанию 10 000 символов (50 000 для part=large_texts). Не требуется только для api-complex, где задание передаётся в data. |
| repeats | int | нет | 1 | Сколько независимых ответов сгенерировать по одному промпту, от 1 до 15. Стоимость умножается на это число. |
| web_search | 1 | on | нет | выкл. | Поиск в интернете при генерации. Работает только с моделями, у которых isWebSearch=true, и тарифицируется по отдельной цене модели. |
| multiple_models | on | нет | выкл. | Режим сравнения моделей: вместе с models[] запускает один промпт сразу в нескольких нейросетях. Доступен только при part=chat_bot. Стоимость складывается из цен всех выбранных моделей. |
| models[] | array | нет | — | Список value моделей для режима multiple_models. Каждое значение проверяется по справочнику. |
| image_url | string | нет | — | Ссылка на изображение для анализа. Работает при part=chat_bot и модели с isVision=true. URL должен заканчиваться расширением .png, .webp, .jpg или .jpeg. |
| image_upload | file | нет | — | Файл изображения вместо ссылки: PNG, JPEG, WebP или GIF, до 20 МБ. Работает при part=chat_bot и модели с isVision=true. |
| file_upload | file | нет | — | Документ для анализа: TXT, PDF, HTML, CSV, XLS, XLSX, DOC, DOCX, до 20 МБ. Работает при part=chat_bot и модели с isFile=true. |
image_upload, документ — file_upload. Файл, отправленный под другим именем или с моделью без нужного флага, молча игнорируется — задача выполнится без него.Параметры отдельных режимов
| part | Что генерирует | Дополнительные параметры |
|---|---|---|
| chat_bot | Свободный ответ нейросети на промпт | Только общие параметры. |
| article | Статья по теме | article_length — длина статьи в символах, целое число, обязателен. request_field — тема статьи. Тарифицируется по отдельной цене модели «для статей». |
| plan | План статьи или страницы | mode: plan_by_theme (тема в request_field) или plan_by_queries (список в queries). |
| title_description_h1 | Мета-теги Title, Description и H1 | mode: by_requests, by_text или by_url. Для by_url обязателен url_input_field, иначе — queries. |
| listing_of_goods | Текст для листинга товаров или услуг | mode: goods или services. |
| goods_card | Описание карточки товара или услуги | mode: card_goods или card_services. |
| reviews | Отзывы | mode: for_goods или for_service. |
| faq | Блок вопросов и ответов | Только общие параметры. |
| large_texts | Обработка длинного текста | request_field — до 50 000 символов. Текст режется на части по 10 000 символов, каждая часть тарифицируется отдельно. |
| api-complex | Пакетная генерация по списку URL | data — массив заданий, до 250 элементов. Поля элемента: url, method (карточка товара, карточка услуги, листинг товаров, листинг услуг), name и/или queries, length. Плюс флаги metatags и/или text — хотя бы один обязателен, они задают, что вернуть. |
Ответ
{
"report_id": 18452301
}
queries) ограничены 25 элементами и 2 000 символами суммарно. Промпт не должен содержать ссылок и параметров вида --param, а текст проверяется фильтром 18+.3Получение результата
GET /api/aicontent?report_id={id} — вызывается, пока задача не завершится. Повторные запросы бесплатны.
Задача ещё выполняется
{
"error": "In progress",
"code": 50,
"progress": 64,
"time": "2026-02-11 14:32:07"
}
| Поле | Тип | Описание |
|---|---|---|
| request | object | Параметры, с которыми задача была поставлена. |
| response | string | array | Результат генерации. Для обычных режимов — текст; для multiple_models — массив ответов с полем model и метаданными модели. |
| response_parsed | object | Только для пакетных режимов: результат, разложенный по URL на title, description, h1 и text — в зависимости от флагов metatags и text. |
| part | string | Режим, в котором выполнялась задача. |
| image_url | string | null | Ссылка на изображение, если оно передавалось в запросе. |
| json_data | object | Служебные данные ответа нейросети: источники, ссылки, метаданные веб-поиска. |
| time | string | Время готовности результата. |
| cost | int | Сколько лимитов фактически списано за задачу. |
Пример результата
{
"request": {
"part": "chat_bot",
"model": "gpt-5.4",
"request_field": "Составь план статьи про выбор беговых кроссовок"
},
"response": "1. Как подобрать кроссовки под тип пронации...",
"part": "chat_bot",
"image_url": null,
"json_data": [],
"time": "2026-02-11 14:33:12",
"cost": 90
}
Тарификация
Итоговая стоимость собирается так:
- базовая цена зависит от выбранной модели — у каждой нейросети своя;
- для
part=articleдействует отдельная цена модели «для статей», дляweb_search=1— отдельная цена с поиском; repeatsумножает стоимость: 5 повторов — пятикратная цена;- в режиме
multiple_modelsцены выбранных моделей суммируются; large_textsтарифицируется по числу частей (каждые 10 000 символов — отдельная генерация);api-complex— по числу элементов вdata.
Если доступных лимитов не хватает, задача не создаётся: в ответе придут код ошибки и точные значения available / need. Фактическое списание всегда возвращается в поле cost вместе с результатом.
Коды ошибок
| Код | Текст | Причина |
|---|---|---|
| -1 | Access denied | Параметр key не передан. |
| -2 | Access denied | Ключ не найден или недействителен. |
| -4 | Access denied | Запрошен report_id чужой задачи или задачи другого инструмента. |
| -51 | No requests data | Запрос без models и без report_id пришёл методом GET — ожидался POST. |
| -60 | MAX_PARALLEL_TASKS_FAIL | Больше 5 одновременно выполняющихся задач инструмента. |
| -100 | tools errors | Ошибки валидации. Список причин — в поле details: неверная вкладка или модель, пустой или слишком длинный промпт, недоступность метода на бесплатном тарифе, фильтр 18+. |
| 50 | In progress | Задача ещё выполняется, повторите запрос позже. |
| -104 | Processing error | Ошибка при выполнении задачи. |
| -105 | Limits run out | Лимиты закончились в процессе выполнения. |
| -106 | The process was canceled by a user | Задача отменена пользователем. |
| -107 | The process took more than 6 hours and was canceled | Задача выполнялась дольше 6 часов и была снята. |
| -80 | Not enough hourly limits | Исчерпан часовой лимит. В ответе — available и need. |
| -68 | Not enough daily limits | Исчерпан суточный лимит. |
| -81 | Not enough weekly limits | Исчерпан недельный лимит. |
| -82 | Not enough monthly limits | Исчерпан месячный лимит. |
| -83 | Not enough yearly limits | Исчерпан годовой лимит. |
Пример ошибки валидации
{
"error": "tools errors",
"details": [
"Ошибка - неправильно выбранная модель нейросети!.",
"Уменьшите размер запроса до 10000 символов."
],
"code": "-100"
}
Примеры
cURL
# 1. Справочник моделей
curl 'https://tools.pixelplus.ru/api/aicontent?key={ключ-api}&models=1'
# 2. Постановка задачи
curl -X POST 'https://tools.pixelplus.ru/api/aicontent?key={ключ-api}' \
-d 'part=chat_bot' \
-d 'model=gpt-5.4' \
--data-urlencode 'request_field=Составь план статьи про выбор беговых кроссовок'
# 3. Результат
curl 'https://tools.pixelplus.ru/api/aicontent?key={ключ-api}&report_id=18452301'
PHP
<?php
$key = '{ключ-api}';
$base = 'https://tools.pixelplus.ru/api';
function apiRequest(string $url, array $data = null): array
{
$curl = curl_init();
$options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 120,
];
if ($data !== null) {
$options[CURLOPT_POST] = true;
$options[CURLOPT_POSTFIELDS] = $data;
}
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
curl_close($curl);
return json_decode($response, true) ?: [];
}
// 1. Берём модель из справочника
$catalog = apiRequest("{$base}/aicontent?key={$key}&models=1");
$model = $catalog['default'];
// 2. Ставим задачу
$task = apiRequest("{$base}/aicontent?key={$key}", [
'part' => 'chat_bot',
'model' => $model,
'request_field' => 'Составь план статьи про выбор беговых кроссовок',
]);
if (empty($task['report_id'])) {
exit('Ошибка: ' . json_encode($task, JSON_UNESCAPED_UNICODE));
}
// 3. Ждём результат
do {
sleep(10);
$result = apiRequest("{$base}/aicontent?key={$key}&report_id={$task['report_id']}");
} while (($result['code'] ?? null) === 50);
echo $result['response'] ?? '';
Python
import time
import requests
KEY = '{ключ-api}'
BASE = 'https://tools.pixelplus.ru/api'
# 1. Модель с поиском в интернете, если такая доступна
catalog = requests.get(f'{BASE}/aicontent', params={'key': KEY, 'models': 1}).json()
model = next(
(m['value'] for m in catalog['models'] if m['isWebSearch']),
catalog['default'],
)
# 2. Ставим задачу
task = requests.post(
f'{BASE}/aicontent',
params={'key': KEY},
data={
'part': 'chat_bot',
'model': model,
'request_field': 'Какие тренды в беговой обуви появились за последний год?',
'web_search': 1,
},
).json()
# 3. Ждём результат
while True:
result = requests.get(
f'{BASE}/aicontent',
params={'key': KEY, 'report_id': task['report_id']},
).json()
if result.get('code') != 50:
break
time.sleep(10)
print(result['response'])
print('Списано лимитов:', result['cost'])
Изображение и файл в чат-боте
<?php
// Файл прикладывается только к part=chat_bot и только к модели
// с соответствующим флагом из справочника: isVision — изображение, isFile — документ.
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tools.pixelplus.ru/api/aicontent?key={ключ-api}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'part' => 'chat_bot',
'model' => 'gpt-5.4',
'request_field' => 'Проанализируй скриншот страницы и дай рекомендации по конверсии',
'image_upload' => new CURLFile('/path/to/screenshot.png'),
// либо ссылкой:
// 'image_url' => 'https://example.com/screenshot.png',
// документ вместо картинки:
// 'file_upload' => new CURLFile('/path/to/brief.pdf'),
],
]);
echo curl_exec($curl);
curl_close($curl);
Ограничения и рекомендации
- Модель берите из справочника
models=1: список зависит от тарифа ключа и меняется с релизами инструмента. - Опрашивайте результат не чаще одного раза в 5 секунд — генерация занимает от нескольких секунд до нескольких минут.
- Не больше 5 одновременно выполняющихся задач на пользователя; шестая вернёт
MAX_PARALLEL_TASKS_FAIL. - Ссылки и параметры вида
--paramв промпте запрещены, текст проходит фильтр 18+. - Изображение анализируют только модели с
isVision, документы — только сisFile. Вложение без нужного флага не вызовет ошибку, но и учтено не будет. - Готовый результат хранится в истории инструмента: один и тот же
report_idможно запрашивать сколько угодно раз бесплатно. - Пакетные задания (
api-complex) ограничены 250 элементами — большие объёмы разбивайте на несколько задач.