НОВОЕ Новые услуги: голосовой поиск и мерчандайзинг выдачи — управляйте тем, что покупатель найдёт первым Подробнее →
Документация

Документация и API

Всё для интеграции: REST API поиска, подсказок, рекомендаций, AI-консультанта и аналитики.

Подключение занимает от нескольких часов. Авторизация во всех методах — заголовок X-API-Key с токеном из личного кабинета (страница «Профиль»). Все ответы — JSON в UTF-8.

Зарегистрируйтесь и получите API-токен в личном кабинете JoyAdmin
Загрузите каталог: YML, XML или CSV — через кабинет или POST /api/upload/
Подключите поиск на сайт — один GET-запрос к /api/search/
Добавьте маячок событий — и в кабинете появится CTR и конверсия поиска
GET /api/search/

Первый запрос — проверьте, что каталог ищется:

curl -H "X-API-Key: ВАШ_ТОКЕН" \
  "https://joyadmin.ru/api/search/?q=пакет+майка&limit=20"
{"status": "success", "total": 20, "time": 0.4,
 "results": [{"id": "210013", "name": "...", "price": 8250,
   "in_stock": true, "url": "...", "image": "...", "score": 12.3}]}

Гибридный поиск (текстовый + векторный), исправление опечаток и раскладки, синонимы, буст товаров в наличии.

GET /api/search/?q=...&limit=40

Основной поиск. Параметры: q — запрос, limit — до 100 результатов.

GET /api/search/suggest/?q=пак&limit=10

Мгновенные подсказки для выпадашки под поисковой строкой: популярные запросы вашего магазина (type=query, с частотой) и названия товаров (type=product, со ссылкой). Минимум 2 символа.

{"query": "пак", "suggestions": [
  {"text": "пакет майка", "type": "query", "count": 11},
  {"text": "Пакет ПВД 30*40", "type": "product", "url": "..."}]}
POST /api/search/image/

Поиск по фото: изображение (multipart, поле image, до 8 МБ) распознаётся ИИ в текстовый запрос, дальше обычный поиск. В ответе — recognized_query и results.

curl -H "X-API-Key: ВАШ_ТОКЕН" \
  -F "image=@photo.jpg" -F "limit=10" \
  https://joyadmin.ru/api/search/image/

Рекомендации на векторах каталога и AI-консультант, который отвечает строго по данным товара.

GET /api/recommend/similar/?product_id=210013&limit=10

Похожие товары для блока в карточке: ближайшие аналоги по смыслу (векторная близость), товары в наличии выше. product_id — тот же id, что возвращает поиск.

{"status": "success", "product_name": "Рукав ПВД 40 см, 50 мкм",
 "results": [{"id": "210076", "name": "Рукав ПВД 40 см, 80 мкм", ...}]}
POST /api/assistant/ask/

AI-консультант в карточке товара. Параметры: product_id и question (form-data или JSON). Отвечает только на основе данных товара — характеристики, цена, наличие; не выдумывает.

curl -X POST -H "X-API-Key: ВАШ_ТОКЕН" \
  -d "product_id=210013" \
  -d "question=Какая толщина и есть ли в наличии?" \
  https://joyadmin.ru/api/assistant/ask/

→ {"status": "success", "answer": "Толщина рукава — 50 мкм, товар в наличии."}

События превращают статистику в деньги: CTR, конверсия и выручка поиска. Плюс методы для синхронизации каталога и выгрузки аналитики.

GET|POST /api/search/event/

Маячок событий: type = click | add_to_cart | purchase, q — поисковый запрос, product_id, pos — позиция в выдаче, revenue — сумма для покупки. Всегда отвечает 204 и не задерживает страницу.

fetch('https://joyadmin.ru/api/search/event/'
  + '?type=add_to_cart'
  + '&q=' + encodeURIComponent(query)
  + '&product_id=210013&revenue=8250',
  { headers: { 'X-API-Key': 'ВАШ_ТОКЕН' }, keepalive: true });
GET /api/stats/?period=day|month|year

Вся аналитика кабинета в JSON: тоталы с динамикой, CTR, скорость поиска, устройства, таймлайн, топы запросов и товаров. Дубли склеены, боты отфильтрованы.

POST /api/products/update/

Точечное обновление цен и остатков — сразу в базе и в поисковом индексе, без перезагрузки прайса. До 500 товаров за запрос.

curl -X POST -H "X-API-Key: ВАШ_ТОКЕН" -H "Content-Type: application/json" \
  -d '{"products": [{"id": "210013", "price": 8250, "in_stock": true}]}' \
  https://joyadmin.ru/api/products/update/
POST /api/upload/

Загрузка прайса по расписанию: multipart-поле file (YML/XML/CSV) или параметр url. Ответ 202 с upload_id, обработка в фоне — статус по GET /api/upload/status/?id=...

Обратная связь

Спасибо! Мы получили ваше сообщение.