İçeriğe geç
Updraft Docs
English

Oran sınırı ve kota

İlk yıl API ücretsizdir: plan katmanı, fatura ya da ödeme yoktur. Yine de her anahtarlı istek sayılır ve kötüye kullanıma karşı sınırlıdır. Sınırlar ürün başına ayrıdır.

Ürünler ve sınırlar

Ürün Neyi kapsar Dakika Gün
tiles Anahtarlı karo istekleri, bölge paketi 1 200 200 000
query Geri kalan her /v1 çağrısı (okuma, yükleme, rıza, paylaşım) 60 10 000
render Uçuş videosu (sonraki sürüm) 5 100

Bunlar standart anahtarın değerleridir; dakika ve gün pencereleri UTC'dir ve sabittir (dakika başında, gün UTC gece yarısında sıfırlanır). Ayrıca her anahtarın bütün ürünleri kapsayan bir aylık kotası vardır (UTC ayı); değeri anahtarla birlikte size bildirilir. Daha yüksek sınır gerekiyorsa yöneticiye yazın.

429 yanıtı

Sınır dolunca API 429 döner, gövde her hatadaki biçimdedir (Hatalar):

{"code": "rate_limited", "detail": "rate limit of 60 per minute reached"}
code Ne doldu
rate_limited Dakika ya da gün penceresi
quota_exceeded Aylık kota
Başlık Anlamı
Retry-After Pencerenin bitişine kalan saniye (en az 1)
X-RateLimit-Limit Dolan pencerenin sınırı
X-RateLimit-Window minute, day ya da month

Reddedilen istek sayılmaz; 401 ve 403 de sayılmaz. Geçersiz istek (422) sayılır.

İstemci ne yapmalı

  • 429'da Retry-After kadar bekleyin; aynı isteği hemen yinelemeyin.
  • Okuma yanıtlarını ETag ile saklayın: aynı sorguyu If-None-Match ile sorduğunuzda veri değişmediyse 304 gelir (gövdesiz, ucuz).
  • Sürekli 429 alıyorsanız istek düzeninizi gözden geçirin ya da yöneticiden sınır artırımı isteyin.
// Retry-After'a uyan basit istemci (Node 24 ya da tarayıcı fetch'i).
export async function updraftGet(url, apiKey, { attempts = 3 } = {}) {
  for (let attempt = 1; ; attempt += 1) {
    const response = await fetch(url, { headers: { 'X-Api-Key': apiKey } });
    if (response.status !== 429 && response.status < 500) return response;
    if (attempt >= attempts) return response;
    const wait = Number(response.headers.get('Retry-After') ?? 2 ** attempt);
    await new Promise((resolve) => setTimeout(resolve, wait * 1000));
  }
}

Karolarda sınır

Anahtarlı karo istekleri yukarıdaki tiles sınırlarına tabidir ve kullanımınıza sayılır. Anahtarsız karo istekleri istemci adresi başına kaba bir sınırla korunur (aşımda gövdesiz düz 429) ve sayılmaz. Ayrıntı: Karolar ve stiller.