API kasıtlı olarak küçük tutulmuştur: bir uç nokta, iki metot.
Tek URL — GET
GET https://yandex.com/indexnow?url=<String>&key=<String>[&keyLocation=<String>]url ve key zorunludur; keyLocation ise yalnızca anahtar dosyası kök dizinde değilse gereklidir. URL, RFC 3986 standartlarına uygun olmalıdır.
Çoklu URL — POST
POST https://yandex.com/indexnow
Content-Type: application/json; charset=utf-8
{ "host": "www.example.com",
"key": "…",
"keyLocation": "https://www.example.com/key.txt",
"urlList": [ "https://www.example.com/url1", … ] }İstek başına 10.000 URL’ye kadar. host, key ve urlList zorunludur.
Ele alınması gereken yanıt kodları
- 200 OK — kabul edildi.
- 202 Accepted — yeni anahtar doğrulanmayı bekliyor. Hata değildir; gönderime devam edin.
- 400 — gövdede geçersiz parametreler.
- 403 Invalid key — anahtar yüklenemedi veya gönderilen URL’lerle eşleşmiyor. Dizin kapsamlı bir anahtarda bu genellikle yanlış anahtardan ziyade bir kapsam ihlalidir.
- 405 — yalnızca GET ve POST desteklenir.
- 422 — geniş kapsamlı hata: geçersiz anahtar konumu, geçersiz URL, anahtarın çok kısa veya çok uzun olması, geçersiz karakterler, eksik anahtar, host veya URL, 10.000’den fazla URL,
urlList‘in dizi olmaması veya boş olması. - 429 Too Many Requests — IP başına limit aşıldı.
Hız sınırlaması
Yandex, istek sayısında bir sınır olmadığını ve algoritmalarının aşırı gönderimi engellediğini belirtirken, aynı zamanda 429 kodunu da dokümante etmektedir. Birlikte değerlendirildiğinde: değişiklikler gerçekleştikçe gönderim yapın, mümkün olduğunda toplu işlem kullanın ve 429 kodunu bir hata olarak değil, bekleme süresiyle (backoff) yeniden deneme gerektiren bir baskı sinyali olarak ele alın.
Uygulama notları
Loglarda 202 ve 200 kodlarını ayırt edin; böylece yeni bir anahtar bozuk bir anahtarla karıştırılmaz. 422 kodunu yeniden deneme gerektiren bir durum değil, düzeltme gerektiren kalıcı bir hata olarak ele alın. Yoğun yayın sistemlerinde 429 kodunu tetikleyen sayfa başına GET isteği göndermek yerine, değişiklikleri tek bir POST isteğinde gruplandırın.
Biz bunu nasıl uyguluyoruz
The three response codes to handle properly are 202, 422 and 429, and integrations routinely treat all non-200 responses as failure. That produces two bad behaviours: regenerating a valid key during its verification window, and retrying a malformed request forever. We batch into POST for anything above a handful of URLs, which also avoids most rate limiting.
İlgili hizmetler