Перейти к содержимому

API индексации

API индексации обновляет цены, наличие и остатки уже проиндексированных товаров за секунды — без перезагрузки фида. Типичный сценарий: товар закончился на складе, и он должен перестать показываться «в наличии» прямо сейчас, а не через час, когда придёт следующий фид.

  1. Откройте личный кабинет → Профиль → выпустите API-ключ.
  2. Передавайте его в заголовке Authorization: Bearer <ключ>.
  3. У пользователя должно быть право редактировать проект, а сам проект должен быть активен.

Ключ бессрочный. Храните его на сервере и не используйте в браузере или мобильном приложении — для них есть публичное API поиска, которому ключ не нужен.

POST https://web4.searchbooster.io/api/v1/{uuid}/product/update

Окно терминала
curl -X POST 'https://web4.searchbooster.io/api/v1/{uuid}/product/update' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
--data-raw '{
"offers": [
{
"id": "627834",
"fields": {
"available": true,
"price": 7777,
"oldPrice": 8888,
"count": 12,
"regions": {
"msk": { "available": true, "price": 7590, "count": 3 },
"spb": { "available": false }
}
}
}
]
}'
Поле Тип Описание
offers array, до 250 Пачка товаров. Больше — разбейте на несколько запросов.
offers[].id string, числовой offer@id из фида. Сейчас поддерживаются только числовые ID.
fields.available boolean Наличие (регион global).
fields.price number Цена. Передавайте числом, не строкой.
fields.oldPrice number Зачёркнутая цена.
fields.count number Остаток (регион global).
fields.prices.{type}.price / .oldPrice number Типизированные цены, как <price type="…"> в фиде.
fields.regions.{regionId} object available, price, oldPrice, count для региона. Регион должен быть в фиде.
fields.pictures string[] Новые картинки.
Статус Тело Что значит
200 {"status":"success"} Всё применено.
200 {"status":"warning","missing_offers":["123"]} Остальные применены, этих ID нет в индексе.
400 {"status":"error","errors":[…]} Ошибка применения.
401 {"message":"Unauthenticated."} Нет или неверный ключ.
403 — Нет прав на проект.
404 — Проект не найден или не активен.
422 {"message":"…","errors":{"offers.0.fields.price":["…"]}} Ошибка валидации (например, цена строкой или больше 250 офферов).
  • Изменения пишутся в индекс сразу и видны в поиске и рекомендациях через ~1 секунду.
  • Если в этот момент идёт индексация фида, изменение ставится в очередь и применяется сразу после неё — ничего не теряется.
  • Следующая индексация перезапишет значения из фида. Поэтому фид тоже должен содержать актуальные данные, а API — только ускорять доставку изменений между выгрузками.