REST API

Поиск

Ищите товары или распознавайте вставленные ссылки маркетплейсов.

GET /api/v1/search требует bearer-токен. Используется та же логика поиска, что в магазине и приложении, без записи истории клиента или посещений.

curl --get https://www.ninjabuy.com/api/v1/search \
  -H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
  --data-urlencode "q=hoodie" \
  --data-urlencode "provider=taobao" \
  --data-urlencode "page=0"

Параметры запроса

ПараметрПравила
qОбязательный; пробелы по краям удаляются. Ключевые слова: от 2 до 120 символов. Вставленные ссылки: до 2048 символов.
providertaobao (по умолчанию) или a1688.
pageЦелое число от 0 до 20, нумерация с нуля; по умолчанию 0.

Передавайте каждый параметр один раз. Неверные или повторяющиеся параметры возвращают 400 с проблемой bad-body.

Виды ответов

Каждый успешный ответ содержит kind и request_id.

kindПоля и значение
productsРезультаты поиска: items, page, pageSize, totalCount, maximumPageCount и unread (объект с хостом для непрочитанной ссылки, иначе null).
productОдин товар: handle и url магазина. Вставленная ссылка или поиск по идентификатору товара могут сразу вернуть этот вид.
vendorРаспознанный магазин: vendor.
sheetРаспознанная Google Таблица: sheetId и gid, допускающий null; без содержимого таблицы.
unsupportedРаспознанная неподдерживаемая ссылка: link с marketplace и id.

Каждый элемент products содержит handle, url магазина, title, price: { amount, currency: "CNY" }, image (допускает null) и marketplace (taobao или a1688). amount — десятичная строка в китайских юанях, соответствующая цене в каталоге магазина. URL поиска — обычные URL товаров; для создания ссылок с атрибуцией используйте Ссылки.

Расходы и ограничения частоты

Вставленные ссылки используют анонимный механизм распознавания и не могут задействовать платный Bright Data Web Unlocker. Распознанные ссылки на товары, продавцов, таблицы и неподдерживаемые ссылки пропускают поиск по ключевым словам. Непрочитанная ссылка может перейти к поиску по ключевым словам и израсходовать квоту поиска OT.

Поиск по ключевым словам имеет собственный лимит 30 вызовов на аккаунт за 60 секунд, отдельный от создания ссылок. Успешные ответы после проверки допуска к поиску по ключевым словам и отказы из-за лимита содержат:

RateLimit-Policy: "search";q=30;w=60
RateLimit: "search";r=29;t=60

Отказ возвращает 429, проблему search-rate-limited и Retry-After в секундах. Распознанные ссылки не расходуют ни одну из двух квот и не содержат заголовков лимита поиска. Каждый ответ содержит X-Request-Id и Cache-Control: no-store. Поля заголовков описаны в разделе Ограничения частоты.