Авторизация: заголовок Authorization: Bearer <партнёрский ключ>. У sandbox и production разные ключи и базовые URL (выдаются при онбординге).
Один вызов на ход диалога, синхронно с ответом ассистента. Тело ≤ 256 КБ — передавайте последние ~8–12 ходов, а не всю историю.
Запрос
{
"messages": [ {"role":"user","content":"нужен рюкзак для ноутбука"} ],
"geo": "MY",
"session_id": "abc123",
"lang": "ru"
}
messages[]— обязательно; история диалога, ролиuser/assistant.geo— обязательно; страна пользователя, ISO-3166 alpha-2 (MY,ID,BR…). От неё зависят инвентарь и ставки.session_id— опционально; стабильный на сессию пользователя, для честных лимитов и антифрода.lang— опционально; подсказка о языке интерфейса.- Опциональный заголовок
X-Forwarded-Forс IP конечного пользователя для лимитов на пользователя. PII не требуется.
Ответ 200
{
"reply": "…текст ассистента, показывать всегда…",
"ad": {
"type": "product",
"title": "…", "desc": "…", "price": "MYR 129",
"image": "https://cdn…/p.jpg",
"sponsored": true,
"click_url": "https://api.indoleads.ai/c/<token>"
},
"intent": { "show_ad": true, "confidence": 0.72, "category": "…" }
}
reply— рендерить всегда.ad— объект илиnull(нет коммерческого интента).type:product|offer|coupon(естьcode) |banner. Рисуйтеtitle,desc,price,image; ссылка наclick_urlсrel="sponsored noopener" target="_blank"и видимой меткой Sponsored. Никогда не переписывайте и не оборачивайтеclick_url.intent— для вашей аналитики.
Коды ответа
| Код | Значение | Что делать |
|---|---|---|
| 200 | ok (ad может быть null) | показать reply; если есть ad — карточку |
| 400 | нет messages[] / битый JSON | исправить запрос |
| 401 / 403 | неверный или отсутствующий ключ | проверить Authorization |
| 429 | превышен лимит | не повторять; показать ответ без карточки |
| 5xx | внутренняя ошибка | 1 повтор с backoff, затем fail-soft |
Задержка: определяется LLM — 0,8–3 с, редко 5–8 с. Таймаут клиента ≥ 10 с. При ошибке/таймауте/ad:null показывайте ответ без карточки — реклама никогда не должна ломать чат.
Статья помогла?
Отлично!
Спасибо за ваш отзыв
Извините, что не удалось помочь!
Спасибо за ваш отзыв
Комментарий отправлен
Мы ценим вашу помощь и постараемся исправить статью