Поиск

Документация на метод "aicontent"

Асинхронный метод

ИИ-генератор текста: генерация контента нейросетями

Метод запускает генерацию текста в инструменте ИИ-генератор текста: ответ чат-бота, статья, план, FAQ, отзывы, мета-теги, описания товаров и услуг. Работает асинхронно: сначала ставится задача, потом по report_id забирается результат. Состав доступных нейросетей отдаёт отдельный вызов того же метода.

GET /api/aicontent?key={ключ-api}&models=1 справочник моделей
POST /api/aicontent?key={ключ-api} постановка задачи
GET /api/aicontent?key={ключ-api}&report_id={id} результат

Как это работает

  • 1 Берём модель из справочника — вызываем метод с models=1 и выбираем value. Список моделей меняется без предупреждения и зависит от тарифа, поэтому хардкодить его в своём коде не нужно.
  • 2 Ставим задачу — POST с промптом и моделью. В ответ приходит report_id. Лимиты списываются в момент создания задачи.
  • 3 Забираем результат — периодически (раз в 5–10 секунд) запрашиваем метод с report_id, пока вместо In progress не придёт готовый ответ.
Ключ доступа к API создаётся в настройках аккаунта. Метод доступен только платным тарифам; ключ передаётся в query-строке параметром 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 элементами — большие объёмы разбивайте на несколько задач.