REST API

Быстрый старт

Создайте ссылки сразу, затем получите результаты пакета с помощью curl.

1. Получите данные доступа

Создайте личный ключ API в разделе Аккаунт → Приглашения → Ключи API. Скопируйте его, когда он появится, и передайте скрипту как NINJABUY_API_KEY; храните его в тайне.

Для приложения, действующего от имени других клиентов NinjaBuy, используйте OAuth.

2. Создайте ссылки сразу

curl -sS https://www.ninjabuy.com/api/v1/links \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"links":["https://weidian.com/item.html?itemID=7581746714"],"campaign":"spring-haul","label":"video 3"}'

До 100 входных значений возвращают 200 с results, warnings и request_id. Каждый результат содержит input и status; результат ok включает привязанный url и code. Проверяйте каждую строку: успешный HTTP-ответ не означает, что преобразованы все значения. См. Ссылки.

3. Запустите пакет

Более 100 входных значений автоматически обрабатываются в фоне, до 2 000 на запрос. Чтобы попробовать задание с одной ссылкой, задайте async значение true:

curl -sS -D batch-headers.txt https://www.ninjabuy.com/api/v1/links \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"links":["https://www.ninjabuy.com/search?q=hoodie"],"async":true}'

Ответ имеет статус 202. Location содержит относительный путь, например /api/v1/jobs/JOB_ID; Retry-After: 5 указывает, когда опрашивать задание. Тело содержит job.id, job.status, job.total и job.poll_after_seconds.

4. Читайте результаты по курсору

Используйте идентификатор задания из этого ответа. В первом запросе опустите cursor:

curl -sS "https://www.ninjabuy.com/api/v1/jobs/JOB_ID" \
  -H "Authorization: Bearer $NINJABUY_API_KEY"

В каждом следующем запросе передавайте полученный курсор без изменений, если он не равен null:

curl -sS "https://www.ninjabuy.com/api/v1/jobs/JOB_ID?cursor=RETURNED_CURSOR" \
  -H "Authorization: Bearer $NINJABUY_API_KEY"

Читайте results каждой страницы. Если has_more равно true, запрашивайте следующую страницу. Если оно равно false, но задание имеет статус queued или running, подождите poll_after_seconds и опросите снова с сохранённым курсором. Завершайте, когда задание имеет статус done или failed и все страницы прочитаны. См. Задания и Ошибки.

Следующие шаги

Преобразуйте Google-таблицу или загруженный XLSX/CSV через Таблицы либо найдите товары через Поиск.