REST API

Bağlantılar

İstek alanları, bağlantı başına sonuçlar ve yinelenen istekler.

Bağlantı oluşturma

POST https://www.ninjabuy.com/api/v1/links, bearer belirteci ve Content-Type: application/json gerektirir.

AlanKurallar
links1 ile 2.000 dize içeren zorunlu dizi. Her girdinin başındaki ve sonundaki boşluklar temizlenir; uzunluğu 1 ile 4.096 karakter olmalıdır.
campaignİsteğe bağlı; küçük harf, rakam veya tirelerden oluşan 3 ile 64 karakter, ilk karakter harf veya rakam: ^[a-z0-9][a-z0-9-]{2,63}$. Ziyaretlerde utm_campaign olarak taşınır.
labelBağlantı listenizde isteğe bağlı ad: baştaki ve sondaki boşluklar temizlendikten sonra 1 ile 40 yazdırılabilir karakter, kontrol karakteri içermez. Boşlukların temizlenmesi uyarı üretir.
asyncİsteğe bağlı boolean. true her zaman bir arka plan işi başlatır.

Taobao, Tmall, Weidian ve 1688 ürün bağlantıları, desteklenen alışveriş aracısı bağlantıları ve kısa bağlantılar, Weidian ve Taobao mağazaları (desteklenen bir aracıdaki sayfaları dahil) ve desteklenen herkese açık NinjaBuy sayfaları dönüştürülebilir. NinjaBuy URL'si veya /search?q=hoodie gibi yalın bir yol kabul edilir. Mevcut bir NinjaBuy referans bağlantısını yapıştırmak, aynı hedefe giden ve sizin hesabınıza atfedilen bir bağlantı oluşturur.

Anında veya toplu işleme

async: true olmadan en fazla 100 girdi, results, warnings ve request_id içeren 200 döndürür. 100'den fazla girdi veya async: true, iş bilgisi, Location ve Retry-After ile 202 döndürür. Hızlı başlangıç ve İşler sayfalarına bakın.

Sonuçlar, yinelenen girdiler dâhil giriş sırasını korur. Her satırda input ve status, isteğe bağlı olarak target, url, code ve note bulunur.

DurumAnlamı
okDönüştürüldü; url, hesabınıza atfedilen NinjaBuy bağlantısıdır.
unsupportedTanındı ancak bağlantı oluşturulamaz; örneğin desteklenmeyen bir pazaryeri veya özel NinjaBuy sayfası.
unreadableKullanılabilir hedef okunamadı.
sheetGoogle Sheet URL'si; bu uç nokta içeriğini dönüştürmez.

E-tablo için içeriğini XLSX’e dönüştürmek üzere E-tablolar API’sini kullanın veya NinjaBuy’a yapıştırın. Mevcut bir NinjaBuy /spreadsheets/d/<sheet id> sayfasının kendisi de hesabınıza atfedilen bir bağlantı alabilir.

Yinelenen istekler ve atıf

Aynı hesap, normalleştirilmiş hedef, kampanya ve etiket için REST, MCP ve toplu işlemede aynı bağlantı döner. Farklı kampanya veya etiket ayrı bir bağlantı oluşturur. Idempotency-Key olmadan toplu isteği yinelemek yeni bir iş oluşturur; bağlantıların yeniden kullanılması iş gönderimlerini tekilleştirmez.

Yeni REST bağlantıları createdVia: "api" kaydeder. Bağlantıyı yeniden kullanmak özgün kaynağını (api, mcp, share veya redirect) korur. Bu alan, MCP list_links ve link sonuçlarında bulunur; REST oluşturma yanıtında bulunmaz. Atıf ve raporlama için Referanslar sayfasına bakın.

Idempotency-Key

Başka bir iş oluşturmadan veya bağlantı oluşturma kotasından başka bir çağrı tüketmeden isteği yinelemek için POST /api/v1/links, POST /api/v1/uploads, POST /api/v1/sheets üzerinde isteğe bağlı Idempotency-Key gönderin. Amaçlanan her istek için benzersiz bir anahtar kullanın: 1 ile 255 yazdırılabilir ASCII karakteri.

Idempotency-Key: partner-batch-2026-10-23-001

24 saat boyunca aynı hesap, anahtar ve doğrulanmış istek; özgün durumu, bayt düzeyinde aynı gövdeyi ve özgün request_id dâhil başlıkları Idempotent-Replayed: true ile yeniden döndürür. JSON nesnesindeki anahtar sırası önemli değildir. 24 saat sonra anahtar yeniden kullanılabilir.

  • Aynı anahtarla farklı bir gövde veya POST yolu 422 (idempotency-key-reused) döndürür; yeni bir anahtar kullanın.
  • İlk istek çalışırken yinelemeler Retry-After ile 409 (idempotency-key-in-progress) döndürür; yeniden denemeden önce bekleyin.
  • Geçersiz anahtar 400 (bad-idempotency-key) döndürür. Geçersiz gövdeler anahtar ayırmaz.
  • İşlem başlayınca hatalar dâhil ilk yanıtı saklanır. 429 saklanmaz: Retry-After sonrasında aynı anahtarla yeniden deneyin.

Çöken bir istek, anahtarın süresi dolana kadar devam ediyor durumunda kalabilir. Bu istek yineleme özelliği, yukarıdaki eşleşen bağlantıların yeniden kullanılmasından ayrıdır.