Тексты объявлений для Авито через API
Заголовок и описание для каждого товара или услуги из вашей таблицы. Тексты уходят в файл автозагрузки, Авито создаёт объявления сам. Дефекты б/у вещей модель называет прямо, условий, которых нет в данных, не придумывает.
- 1 000 объявлений — от 57,84 ₽, оценка по ценам каталога
- Заголовок до 50 символов
- Дефекты б/у — прямо
- Файл для автозагрузки
iPhone 13 128 ГБ, аккумулятор 84%
38 000 ₽
iPhone 13 на 128 ГБ, пользовались два года. Телефон подойдёт тем, кто ищет устройство без ремонтов и с полным комплектом.
— Модель: iPhone 13, 128 ГБ
— Срок использования: 2 года
— Аккумулятор: 84%
— Корпус: без сколов
— Экран: на защитном стекле есть трещина, сам экран целый
— Ремонты: не ремонтировался
— Комплектация: полный комплект с коробкой
Цена: 38 000 ₽.
Город: Казань.
Напишите в сообщения на Авито, если появятся вопросы.
Задача
У магазина на Авито 300 товаров, у сервиса — 40 услуг в трёх городах, у агентства — десяток клиентов с автозагрузкой. Тексты пишутся вручную или копируются из карточек поставщика. В итоге в одних объявлениях нет половины характеристик, в других — одинаковые тексты на десятки позиций.
Через API таблица с фактами превращается в заголовки и описания одной командой. Для второго города модель пишет другой текст с теми же фактами.
Для кого
Для всех, у кого объявлений больше, чем хочется писать руками.
Магазин на Авито
Новые товары из каталога: характеристики есть, текстов нет. Одна строка таблицы — одно объявление. Из той же таблицы — описания для сайта.
Сотни объявлений за минуту.
Мастера и сервисы
Ремонт, уборка, грузоперевозки, репетиторы. Условия работы, стаж и цена — в данных, текст — от модели.
Отдельный текст на каждую услугу.
Агентства с автозагрузкой
Десятки клиентов, разные города, общий процесс: таблица — скрипт — файл автозагрузки.
Один ключ на всех клиентов.
Перепродажа б/у
Состояние и дефекты из таблицы приёмки. Модель называет их прямо, без «в отличном состоянии».
Меньше споров с покупателями.
Как текст попадает на Авито
Четыре шага. Модель пишет тексты, а размещает их автозагрузка Авито — без ручного копирования.
Шаг 1
Таблица
Товары или услуги с фактами и ценой: выгрузка из учётной системы или Google-таблица.
id, name, facts, price, city
Шаг 2
Скрипт и Polza
Скрипт отправляет каждую строку модели и получает заголовок и описание в JSON.
python write_ads.py
Шаг 3
Файл автозагрузки
Тексты ложатся в поля
TitleиDescriptionфайла, который Авито забирает по ссылке.feed.xml
Шаг 4
Объявления
Автозагрузка создаёт и обновляет объявления. Изменили текст в файле — объявление обновится при следующей загрузке.
30 объявлений · 3 категории · 3 города
Тексты в файле автозагрузки
Скрипт кладёт заголовок в Title, описание — в Description внутри CDATA, чтобы переносы строк и тире дошли до объявления как есть. Цена, адрес, категория и фото берутся из вашей таблицы. Обязательные поля и лимиты зависят от категории — сверяйте файл с форматом автозагрузки Авито.
<Ads formatVersion="3" target="Avito.ru">
<Ad>
<Id>B03</Id>
<Title>iPhone 13 128 ГБ, аккумулятор 84%</Title>
<Description><![CDATA[iPhone 13 на 128 ГБ, пользовались два года. Телефон подойдёт…]]></Description>
<Price>38000</Price>
<Address>Казань</Address>
<!-- категория, фото и поля категории — из вашего каталога -->
</Ad>
</Ads>Как это выглядит в объявлении
Реальные тексты из теста. Модель пишет описание строками с тире — так его проще читать с экрана.
Ремонт холодильников на дому, выезд в день обращения
от 1 500 ₽
Частный мастер с опытом 12 лет выполняет ремонт холодильников на дому в Екатеринбурге. Выезд по городу в день обращения, запчасти привожу с собой.
— Выезд и диагностика — 500 ₽, при ремонте диагностика бесплатно.
— Гарантия на работу — 6 месяцев.
— Стоимость ремонта — от 1500 ₽.
— Работаю по Екатеринбургу, выезд в день обращения.
Пишите в сообщения на Авито, чтобы вызвать мастера.
Настольная лампа Lumo Q с Qi-зарядкой — 3 290 ₽
Монитор-лампа Lumo Bar 5 Вт с пультом — 2 790 ₽
Лампа для рисования Lumo Draw, 14 Вт, CRI 95 — 5 490 ₽
Термокружка Arctic 470 мл сталь 18/8 — 1 490 ₽
Настольная лампа Lumo Q с Qi-зарядкой
3 290 ₽
Настольная лампа Lumo Q на гибкой стойке. В корпус встроена площадка для беспроводной зарядки смартфонов — разместите телефон на основании, и он начнёт заряжаться без подключения кабеля. Подойдёт для рабочего места или прикроватного столика.
— Мощность лампы: 12 Вт
— Беспроводная зарядка Qi: 10 Вт
— Цветовая температура: регулируется от 3000 до 6000 K
— Таймер отключения: 30 минут
— Стойка: гибкая
— Состояние: новая
Цена: 3290 ₽
Город: Москва
Заинтересовала лампа — пишите в сообщения на Авито.
Сколько стоят 1 000 объявлений
Замер — фактический расход по полю cost_rub на 8 одинаковых объявлениях, пересчитанный на 1 000; у DeepSeek — среднее по трём прогонам. Рассуждение отключено у всех моделей. Стоимость «сейчас» Polza.ai оценивает по текущим ценам каталога.
| Модель | 1 000 объявлений, замер 6 октября | Ответ | Знаков в описании | 1 000 объявлений, оценка сейчас |
|---|---|---|---|---|
| GPT-5 Mini | 54 ₽ | 7,1 с | 364 | 57,84 ₽ |
| Gemini 2.5 Flash | 63 ₽ | 3,0 с | 370 | 71,78 ₽ |
| DeepSeek V4 Pro | 10 ₽ | 6,2 с | 305 | 170 ₽ |
| Grok 4.3 | 118 ₽ | 2,2 с | 233 | 222 ₽ |
| Claude Sonnet 5 | 440 ₽ | 4,7 с | 336 | 641 ₽ |
Замер — 6 октября 2026, по ценам того дня.
«Оценка сейчас» — по текущим ценам каталога для объёмов, которые оценила редакция, а не замерил тест: 700 токенов на входе (промпт и факты) и 400 на выходе (заголовок и описание в JSON) на одно объявление.
В основном прогоне DeepSeek V4 Pro 30 объявлений стоили 0,35 ₽ по ценам 6 октября. Как отключить рассуждение и закрепить провайдера — в сценарии про SEO-тексты: как не переплатить за рассуждение и провайдера.
Готовый скрипт на Python
Читает таблицу, пишет объявления параллельно, повторяет запросы при ошибках и печатает расход. С аргументом-городом пишет второй вариант текста для другого города. Нужен пакет openai и ключ в POLZA_API_KEY.
Вход: ads.csv
Тип, название, факты через точку с запятой, цена и город. Для б/у в фактах — срок использования и дефекты.
id,type,name,facts,price,city
B03,б/у,"iPhone 13, 128 ГБ","б/у 2 года; аккумулятор 84%; без сколов; трещина на защитном стекле, экран целый; полный комплект с коробкой; не ремонтировался",38000,Казань
S01,услуга,Ремонт холодильников на дому,"частный мастер; стаж 12 лет; выезд по городу в день обращения; диагностика 500 ₽, бесплатно при ремонте; гарантия на работу 6 месяцев; запчасти привожу с собой",от 1500,ЕкатеринбургВыход: ads.jsonl
Заголовок и описание по схеме. Реальный ответ из теста.
{
"id": "S01",
"title": "Ремонт холодильников на дому, выезд в день обращения",
"description": "Частный мастер с опытом 12 лет выполняет ремонт холодильников на дому в Екатеринбурге. Выезд по городу в день обращения, запчасти привожу с собой.\n— Выезд и диагностика — 500 ₽, при ремонте диагностика бесплатно.\n— Гарантия на работу — 6 месяцев.\n— Стоимость ремонта — от 1500 ₽.\n— Работаю по Екатеринбургу, выезд в день обращения.\n\nПишите в сообщения на Авито, чтобы вызвать мастера."
}# write_ads.py — тексты объявлений для Авито из CSV через Polza
import asyncio, csv, json, os, sys
from openai import AsyncOpenAI, APIStatusError
MODEL = "deepseek/deepseek-v4-pro"
PROVIDER = "streamlake/fp8" # самый дешёвый провайдер модели: top_provider.name в каталоге
CONCURRENCY = 10
ai = AsyncOpenAI(base_url="https://polza.ai/api/v1", api_key=os.environ["POLZA_API_KEY"])
SYSTEM = open("prompt.txt", encoding="utf-8").read()
SCHEMA = {
"name": "avito_ad",
"strict": True,
"schema": {
"type": "object",
"properties": {"title": {"type": "string"}, "description": {"type": "string"}},
"required": ["title", "description"],
"additionalProperties": False,
},
}
async def write(row, sem, stats, city=None):
prompt = (f"Тип: {row['type']}\nНазвание: {row['name']}\nФакты: {row['facts']}\n"
f"Цена: {row['price']} ₽\nГород: {city or row['city']}")
if city: # второе объявление того же товара в другом городе
prompt += "\nЭто второе объявление того же товара в другом городе: напиши его другими словами, факты те же."
async with sem:
for attempt in range(5):
try:
r = await ai.chat.completions.create(
model=MODEL,
messages=[{"role": "system", "content": SYSTEM},
{"role": "user", "content": prompt}],
response_format={"type": "json_schema", "json_schema": SCHEMA},
extra_body={"reasoning": {"effort": "none"},
"provider": {"only": [PROVIDER], "allow_fallbacks": False}},
)
break
except APIStatusError as e:
if e.status_code in (429, 500, 502, 503) and attempt < 4:
await asyncio.sleep(2 ** attempt)
continue
raise
stats["rub"] += r.usage.model_extra.get("cost_rub", 0)
return {"id": row["id"], "city": city or row["city"], **json.loads(r.choices[0].message.content)}
async def main():
# python write_ads.py [город для второго варианта]
second_city = sys.argv[1] if len(sys.argv) > 1 else None
rows = list(csv.DictReader(open("ads.csv", encoding="utf-8")))
sem, stats = asyncio.Semaphore(CONCURRENCY), {"rub": 0}
results = await asyncio.gather(*(write(r, sem, stats, second_city) for r in rows), return_exceptions=True)
name = "ads_variant.jsonl" if second_city else "ads.jsonl"
ok = 0
with open(name, "w", encoding="utf-8") as out, open("errors.txt", "w", encoding="utf-8") as err:
for row, res in zip(rows, results):
if isinstance(res, Exception):
err.write(f"{row['id']}\t{res}\n")
else:
out.write(json.dumps(res, ensure_ascii=False) + "\n")
ok += 1
print(f"Готово {ok} из {len(rows)}, расход {stats['rub']:.2f} ₽")
asyncio.run(main())Промпт для объявлений
Промпт задаёт структуру описания: кому подойдёт, факты строками, условия, призыв написать. Так все объявления выглядят одинаково аккуратно, а покупатель находит нужное за секунды.
Вторая версия добавляет три запрета по итогам первого прогона: условия сделки только из данных, без оценок состояния, без обещаний про чужие правила. Модель дописывала «самовывоз», «в хорошем состоянии» у телефона с трещиной и «подходит под нормы большинства авиакомпаний».
Ты пишешь объявления для Авито.
Заголовок:
- до 50 символов: что это и главный параметр;
- без капслока, эмодзи и слов «срочно», «лучший»,
«идеальный».
Описание — от 400 до 1000 символов:
1. Первый абзац: что это и кому подойдёт.
2. Характеристики или состояние — строками, каждая
начинается с «— ».
3. Условия: цена, город, самовывоз или выезд —
только если они есть в данных.
4. Последняя строка — предложение написать в
сообщения на Авито.
Правила:
- Только факты из данных. Не придумывай гарантию,
доставку, скидки, торг, сроки, комплектацию и
причины продажи.
- Для б/у вещей перечисли все дефекты из данных
прямо, не смягчай и не пропускай.
- Самовывоз, доставку, встречу, торг и обмен
упоминай, только если они есть в данных.
- Не оценивай состояние словами «хорошее»,
«отличное», «как новый», «надёжный» и не пиши «всё
работает», если этого нет в данных — только факты.
- Не обещай, что товар подходит под чужие правила и
нормы, если этого нет в данных.
- Не указывай телефоны, ссылки, мессенджеры и адреса
сайтов.
- Без восклицательных знаков, капслока и слов
«уникальный», «идеальный», «лучший»,
«качественный».
Верни JSON: title — заголовок, description —
описание.Проверка перед загрузкой
Пять проверок кодом. Они дешевле модели-проверки и ловят то, что промпт не удержал.
Заголовок до 50 символов
Такой лимит задаёт промпт: короткий заголовок целиком виден в выдаче. В тесте модель превысила его в 1 объявлении из 30 — такие перегенерируйте.
Условия, которых нет в данных
Ищите в описании «самовывоз», «доставка», «торг», «обмен» и сверяйте с фактами. В тесте так нашлись 8 лишних условий в первом прогоне и 2 во втором.
Нет контактов и ссылок
Телефоны, ссылки и мессенджеры в описании модель не писала ни разу, но проверка стоит одну строку кода.
Структура на месте
Строки с тире и призыв написать в сообщения. В одном из трёх прогонов на 8 объявлениях DeepSeek потеряла список в 6 текстах — проверка отправит их на повтор.
Дефекты б/у названы
Каждое слово из дефектов в фактах — «трещина», «пятно», «шум» — должно быть в описании. В тесте модель назвала все дефекты во всех 7 объявлениях с ними.
Тексты не повторяются
Для второго города модель писала другой текст: совпадение с первым вариантом — от 30 до 65% по символам. Выше 70% — перегенерируйте.
Через Claude, OpenAI и Grok — или без кода
Скрипт и файл автозагрузки соберёт ИИ-агент. Модели для текстов — в том же каталоге Polza.ai.
Claude Code и Claude Desktop
Положите таблицу и промпт в папку и отдайте Claude задание ниже: агент напишет тексты и соберёт feed.xml.
Claude Sonnet 5: 1 000 объявлений — 641 ₽, оценка по ценам каталога.
Codex и ChatGPT Desktop
То же задание выполняет Codex CLI. Модели GPT подключаются тем же ключом Polza.
GPT-5 Mini: 1 000 объявлений — 57,84 ₽, оценка по ценам каталога.
Grok
Модели xAI в том же API: MODEL = "x-ai/grok-4.3" в скрипте.
Grok 4.3: 1 000 объявлений — 222 ₽, оценка по ценам каталога.
Задание для агента
Подходит для Claude Code, Codex и других агентов из интеграций. Агент покажет первые 20 объявлений до полного прогона.
В папке лежат ads.csv и prompt.txt.
Напиши и запусти скрипт на Python:
для каждой строки запрос к https://polza.ai/api/v1
через OpenAI SDK, ключ — в переменной POLZA_API_KEY,
модель deepseek/deepseek-v4-pro без рассуждений
(reasoning: {effort: none}), провайдер streamlake/fp8,
системный промпт — prompt.txt,
ответ — JSON с полями title, description.
Потом собери из ответов файл автозагрузки feed.xml:
Title, Description в CDATA, Price, Address из таблицы.
Сначала 20 строк и покажи их, после моего «ок» — все.Без кода: n8n и Dify
Google-таблица с товарами, нода OpenAI Chat Model с адресом https://polza.ai/api/v1, тексты — обратно в таблицу. Файл автозагрузки собирается из неё так же, как в скрипте.
Тест редакции: 30 объявлений
10 новых товаров магазина, 10 б/у вещей частника и 10 услуг в трёх городах. Данные вымышленные, в 7 б/у вещах — реальные по смыслу дефекты: трещина, пятно, шум при отжиме. Редактор прочитал каждое объявление. Замер 6 октября 2026: весь тест, включая сравнение пяти моделей, стоил 6,5 ₽ по ценам того дня.
- Объявлений
- 30
- Время
- 39 с
- Расход
- 0,35 ₽
- Без выдумок
- 26 из 30
Два прогона DeepSeek V4 Pro
| Прогон | Расход | Время | Заголовок до 50 | Лишние условия | Объявления с выдумкой | Дефекты б/у названы |
|---|---|---|---|---|---|---|
| v1: базовый промпт | 0,35 ₽ | 28 с | 29 из 30 | 8 | 11 | 7 из 7 |
| v2: запрет условий и оценок | 0,35 ₽ | 39 с | 29 из 30 | 2 | 4 | 7 из 7 |
Лишние условия — самовывоз, доставка, торг, обмен, которых нет в фактах; ищутся кодом. Выдумки — по вычитке редактора. Телефонов, ссылок, капслока и восклицательных знаков не было ни в одном объявлении. Расход — по ценам 6 октября 2026.
Второй вариант для другого города
Для 10 товаров мы попросили второй текст для Санкт-Петербурга с теми же фактами. Это стоило 0,12 ₽ по ценам 6 октября. Совпадение с первым вариантом — от 30 до 65% по символам, заголовки разные во всех 10.
Монитор-лампа Lumo Bar 5 Вт с пультом
Монитор-лампа Lumo Bar — накладной светильник на монитор. Подойдёт тем, кто работает или играет за экраном и хочет добавить локальное освещение рабочей зоны без бликов.
Характеристики и комплектация:
— новая
— мощность: 5 Вт
— крепление на монитор толщиной 0,5–3 см
— асимметричный свет без бликов на экране
— пульт управления в комплекте
— питание от USB
Цена: 2790 ₽
Город: Москва
По всем вопросам пишите в сообщения на Авито.
LED-лампа Lumo Bar на монитор, 5 Вт
Настольная LED-лампа с креплением на верхний край монитора. Подойдёт тем, кто хочет дополнительно подсветить рабочую зону, не занимая место на столе.
— Тип: монитор-лампа
— Состояние: новая
— Мощность: 5 Вт
— Крепление: на монитор толщиной от 0,5 до 3 см
— Особенность: асимметричный свет для отсутствия бликов на экране
— Управление: пульт
— Питание: USB
Цена: 2790 ₽
Город: Санкт-Петербург
По всем вопросам пишите в сообщения на Авито.
Пять моделей на 8 трудных объявлениях
| Модель | 1 000 объявлений, замер | Структура | Лишние условия | Что увидел редактор |
|---|---|---|---|---|
| DeepSeek V4 Pro * | 10 ₽ | 18 из 24 | 1 | В двух прогонах из трёх — полная структура, в одном потеряла список и призыв. |
| GPT-5 Mini | 54 ₽ | 8 из 8 | 1 | Аккуратно, каждая строка «параметр: значение». Один раз дописала «самовывоз: да». |
| Gemini 2.5 Flash | 63 ₽ | 8 из 8 | 0 | Структура на месте, но добавляет общие слова: «поддерживает современные приложения». |
| Grok 4.3 | 118 ₽ | 8 из 8 | 2 | Самая быстрая и короткая. Дважды дописала «самовывоз». |
| Claude Sonnet 5 | 440 ₽ | 8 из 8 | 0 | Полно и без выдумок, структура во всех 8. |
Трудные — те, где модель ошибалась в первом прогоне: б/у с дефектами, услуги с условиями, товар с «нормами авиакомпаний». Промпт v2. * DeepSeek прогнали трижды после сбоя в первом прогоне, в таблице — сумма и среднее по трём. Стоимость — замер 6 октября 2026 по ценам того дня, текущая — в разделе «Стоимость».
Вывод
Для каталога в сотни позиций — DeepSeek V4 Pro и пять проверок кодом: 26 из 30 объявлений без выдумок, по оценке на текущих ценах каталога 1 000 объявлений — 170 ₽. Если нужен ровный результат без повторов — Claude Sonnet 5 или GPT-5 Mini. Дефекты б/у все модели называли прямо — это заслуга данных: что записано в таблице приёмки, то и попадёт в объявление.
Вопросы
Можно ли загружать тексты на Авито без проверки?
После пяти проверок кодом — да, кроме объявлений, которые проверка отправила на повтор. Первые 20–30 объявлений прочитайте целиком: так вы увидите, что нужно добавить в промпт.
Как сделать разные тексты для разных городов?
Запустите скрипт второй раз с названием города. Модель пишет другими словами с теми же фактами: в тесте совпадение с первым вариантом было 30–65%.
Сколько объявлений можно сделать за час?
В тесте 30 объявлений заняли 39 секунд при 10 параллельных запросах — около 2 800 в час.
Модель напишет, что вещь в хорошем состоянии?
Промпт запрещает оценки состояния. В объявление попадают только факты из таблицы: срок использования и дефекты. В первом прогоне модель один раз написала «в хорошем состоянии» про телефон с трещиной на стекле, во втором — ни разу.
Нужно ли знать формат автозагрузки?
Скрипт возвращает тексты, а файл автозагрузки собирается из них и вашей таблицы. Агент вроде Claude Code соберёт его по заданию со страницы; обязательные поля категории сверьте со спецификацией автозагрузки Авито.
Можно ли платить юрлицом?
Да. Polza.ai работает по договору: счёт, УПД и НДС. Расход виден в кабинете по ключам и моделям.
Другие сценарии: SEO-тексты · Ответы на отзывы · Тесты по урокам · Письма клиентам · Протоколы встреч
Напишите первые 20 объявлений
Ключ, таблица с фактами и скрипт со страницы. Прогон показывает, как ваши товары будут выглядеть на Авито.
Остались вопросы? Документация Polza.AI, поддержка в Telegram или support@polza.ai
Страницу проверила редакция Polza.AI, обновлено . Цифры теста — замер 6 октября 2026 по ценам того дня; стоимость «сейчас» Polza.ai считает по каталогу и обновляет каждый час.
Разработчикам: вход через Polza
Связанные страницы: модели для текста, Codex, для бизнеса.