GPT API'yi çağıran bir fonksiyon yayınladınız. Staging ortamında sorunsuz çalışıyor. Üretimde ilk yüz kullanıcıyla karşılaştığında, günlükleriniz 429 Çok Fazla İstek ile doluyor. Şimdi tahmin yürütüyorsunuz: dakikadaki istekler mi, dakikadaki tokenlar mı, yoksa günlük limitler mi? Hala 1. seviyede misiniz? Geçen hafta geçtiğiniz modelin eskisine göre daha katı limitleri mi vardı?
Daha önce OpenAI ile çalıştıysanız, her yeni modelle birlikte hız limiti hikayesinin daha karmaşık hale geldiğini bilirsiniz. GPT-5.5'in GPT-4.1'den farklı limitleri var, görüntü modelleri metin modellerinden farklı sayılıyor ve harcamanız arttıkça kullanım seviyeniz sessizce değişiyor. Apidog, her isteğin yanıt başlıklarını incelemek, eş zamanlı trafiği simüle etmek ve kodunuzu dağıtmadan önce tam olarak hangi limite ulaştığınızı doğrulamak için size tek bir çalışma alanı sunar. Henüz Apidog'a sahip değilseniz indirin; aşağıdaki iş akışı ücretsiz planda da çalışır.
Gerçekten Önemli Olan Dört Limit
OpenAI, her GPT API anahtarı için çeşitli hız limitleri uygular. Herhangi bir üretim uygulamasında bu dördünün de uygulandığını göreceksiniz:
- RPM (dakikadaki istekler): dakikada gönderebileceğiniz API çağrısı sayısı. Çoğu seviyedeki en düşük limittir.
- TPM (dakikadaki tokenlar): dakikada işleyebileceğiniz toplam girdi ve çıktı tokenları. Çoğu insanın unuttuğu limittir.
- RPD (günlük istekler): ücretsiz ve 1. seviye anahtarlar için günlük bir üst sınır. Çoğu metin modeli için daha yüksek seviyelerde ortadan kalkar.
- IPM / TPD / toplu işlem kuyruğu limitleri: görüntü oluşturma, ses, gömme ve toplu işlem uç noktaları için modele özel limitler. Her uç nokta ailesinin kendi üst sınırı vardır.
İsteğiniz reddedildiğinde, API HTTP 429 ve aşağıdaki gibi bir JSON gövdesi döndürür:
{
"error": {
"message": "Rate limit reached for gpt-5.5 in organization org-abc on tokens per min (TPM): Limit 30000, Used 28432, Requested 3120.",
"type": "tokens",
"param": null,
"code": "rate_limit_exceeded"
}
}
Gövdenin hangi boyutu aştığınızı söylediğine dikkat edin: tokens, requests veya bazen tokens_usage_based. Bir şeyler bozulduğunda okuyacağınız ilk şey budur. Bir TPM aşımından kaynaklanan hata, bir RPM aşımından farklı görünür ve çözüm de farklıdır. Bir 429, başka bir 429 değildir.
HTTP düzeyinde 429'un ne anlama geldiğine dair uçtan uca bir referans için MDN 429 belgelerine ve RFC 6585 spesifikasyonuna bakın. Yeniden deneme başlıkları ve seviye değişimi etrafındaki OpenAI'ye özgü davranışlar için, OpenAI'nin yer işaretlemeniz gereken resmi bir hız limiti sayfası bulunmaktadır.
Seviyeler Nasıl Çalışır ve Neden Sürekli Terfi Edersiniz (veya Takılı Kalırsınız)
GPT API anahtarınız bir OpenAI kullanım seviyesinde yer alır. Seviyeler, RPM ve TPM limitlerinizin arkasındaki gerçek sayıları belirler. İki şeye göre seviye atlarsınız: hesabınızdaki toplam harcama ve ilk ödeme yapmanızdan bu yana geçen süre. Ücretsizden 5. seviyeye kadar altı seviye vardır ve metin modelleri için genel görünüm şöyledir:
| Seviye | Harcama sınırı | Bekleme süresi | Metin RPM | Metin TPM |
|---|---|---|---|---|
| Free | none | none | 3 | 40k |
| 1 | $5 paid | none | 500 | 30k–200k by model |
| 2 | $50 paid | 7 days | 5,000 | 450k |
| 3 | $100 paid | 7 days | 5,000 | 1M |
| 4 | $250 paid | 14 days | 10,000 | 2M |
| 5 | $1,000 paid | 30 days | 10,000 | 2M+ |
Yukarıdaki sayılar açıklayıcıdır; kesin limitler zamanla değişir ve modele göre farklılık gösterir. Bir iş yükünü boyutlandırmadan önce canlı limitlerinizi doğrudan kontrol panelinden veya daha iyisi kendi API yanıt başlıklarınızdan (aşağıda ele alınmıştır) okuyun.
İki pratik çıkarım:
- Ödeme yaptığınızda otomatik olarak terfi edersiniz. Seviyeler isteğe bağlı değildir. Harcamanız bir seviye sınırını aştığı ve bekleme süresi geçtiği anda, yaptığınız bir sonraki istek yeni limitlere göre çalışır. Bildirim yok, geçiş adımı yok.
- Düşürülebilirsiniz. Hesabınız uzun süre hareketsiz kalırsa veya ödeme yönteminiz başarısız olursa, tekrar alt seviyelere düşebilirsiniz. Herhangi bir faturalandırma değişikliğinden sonra üretimde test edin.
Diğer model sağlayıcılarının seviye sistemleriyle yan yana karşılaştırma için, OpenAI API kullanıcı hız limitleri açıklayıcımıza, Claude API hız limitleri kılavuzumuza ve Grok-3 API hız limitleri kılavuzumuza bakın. Zihinsel model sağlayıcılar arasında aynıdır; ancak belirli sayılar ve boyutlar farklıdır.
Canlı Limitlerinizi Yanıt Başlıklarından Okuyun
Mevcut limitlerinizi bulmak için kontrol panellerini karıştırmanıza gerek yok. Her GPT API yanıtı bunları başlıklarda taşır. Bu dördünü arayın:
x-ratelimit-limit-requests: bu uç nokta için RPM limitiniz.x-ratelimit-remaining-requests: bu dakikada kaç tane kaldığı.x-ratelimit-limit-tokens: TPM limitiniz.x-ratelimit-remaining-tokens: bu dakikada kaç token kaldığı.
Genellikle x-ratelimit-reset-requests ve x-ratelimit-reset-tokens da bulunur, her ikisi de kotanın dolmasına kadar insan tarafından okunabilir bir süre verir (örneğin 6s, 1m30s).
Bunları okumanın en temiz yolu, tek bir sohbet tamamlama isteği göndermek, başlıkların geri gelmesini izlemek ve düşündüğünüz seviyede olduğunuzu doğrulamaktır. Apidog bunu tek tıklamayla sağlar.
Adım 1: Apidog'da GPT isteğini yapılandırın
Apidog'u açın, yeni bir proje oluşturun ve içine yeni bir istek ekleyin.
Metot: POST URL: https://api.openai.com/v1/chat/completions
Başlıklar sekmesinde:
| Anahtar | Değer |
|---|---|
Authorization |
Bearer {{OPENAI_API_KEY}} |
Content-Type |
application/json |
Çift parantez sözdizimi, bir Apidog ortam değişkeninden çeker, bu da anahtarınızın hiçbir zaman isteğin içinde yaşamayacağı anlamına gelir. Değişkeni Ortamlar altında bir kez ayarlayın, kişisel ve ekip anahtarları arasında geçiş yapmak için ortamları değiştirin ve koleksiyonun geri kalanı otomatik olarak devreye girer. Aynı numara, OpenAI'nin faturalandırma atfı için eklemenize izin verdiği kuruluş ve proje kimlikleri için de geçerlidir.
Gövde sekmesinde JSON'u seçin ve yapıştırın:
{
"model": "gpt-5.5",
"messages": [
{"role": "user", "content": "ping"}
],
"max_tokens": 10
}
Gönder'e tıklayın. Normal bir tamamlama geri almalısınız. Şimdi yanıt panelindeki Başlıklar sekmesine tıklayın ve x-ratelimit-* satırlarına gidin. Bu dört sayı sizin mevcut gerçeğinizdir. Ekran görüntüsü alın. Bunlar, test edeceğiniz temel değerlerdir.
Sohbet tamamlama isteği kurulumunu daha ayrıntılı incelemek isterseniz, Apidog ile ChatGPT API'sini nasıl test edeceğinize dair kılavuzumuz kimlik doğrulama, akış ve araç çağrılarını uçtan uca kapsar.
Adım 2: Limitleri kasıtlı bir ani yüklenme ile doğrulayın
Başlıkları okumak size limiti söyler. Tek bir istek göndermek, limit anındaki davranış hakkında hiçbir şey kanıtlamaz. Kısıtlamanın gerçekten başlıkların söylediği yerde devreye girdiğini doğrulamak için küçük bir ani yüklenme testi istersiniz.
Apidog, aynı isteği N kez eş zamanlı olarak gönderebilen bir Test Çalıştırıcısı ile birlikte gelir. Kayıtlı isteğinizi açın, Gönder'in yanındaki açılır menüye tıklayın ve Test Senaryosunda Çalıştır'ı seçin. Ayarlayın:
- Yinelemeler: 50 (veya belirtilen RPM'nizin rahatça üzerinde olan herhangi bir sayı)
- Eş Zamanlılık: 10
- Yinelemeler Arası Gecikme: 0 ms
Çalıştırın. İki sonuç faydalıdır:
- Bazı istekler ani yüklenme bitmeden 429 döner. İyi. Bu, yanıt başlığındaki limit ile hesap durumunuzun senkronize olduğunu doğrular.
- Tüm 50 istek başarılı olur ve başlıklar
remaining-requestsdeğerinin beklendiği gibi azaldığını gösterir. RPM'niz düşündüğünüzden daha yüksek; tam değer için yanıt panelini kontrol edin.
Apidog'un test çalıştırıcısı her yanıtı kaydeder, böylece durum koduna göre sıralayabilir ve her 429'u tek bir görünümde toplayabilirsiniz. Bir 429 satırına tıklayın ve gövdesini okuyun. message alanı size RPM, TPM veya günlük limiti aşıp aşmadığınızı söyler. Üretim kodunuzda boyutlandıracağınız boyut budur.
Limite ulaştığınızda ne yapacağınıza dair bir başlangıç için, hız limiti aşıldı kılavuzu karşılaşabileceğiniz her 429 yüzeyini ayrıntılı olarak anlatır.
Adım 3: RPM aşmalarını TPM aşmalarından ayırın
Yukarıdaki ilk ani yüklenme RPM'i ölçer, çünkü her istek küçüktür. TPM'yi test etmek için daha az istek göndermeniz gerekir, ancak her biri daha büyük olmalıdır. İstek gövdenizi, messages çok daha büyük bir yük taşıyacak şekilde düzenleyin:
{
"model": "gpt-5.5",
"messages": [
{"role": "system", "content": "<3,000 tokens of context here>"},
{"role": "user", "content": "Summarise the above in one sentence."}
],
"max_tokens": 200
}
Bu kez 5 eş zamanlılıkta belki 20 yineleme ile başka bir senaryo çalıştırın. Eğer 30k TPM limiti olan 1. seviyedeyseniz, istek limitlerini aşmadan çok önce token limitlerini aşacaksınız.
Bu ayrım önemlidir çünkü çözüm farklıdır. Gerçek iş yükünüz çok sayıda küçük istek gönderiyorsa, RPM'i düzeltin: kuyruğa alın, toplu işleyin veya kademeli olarak gönderin. Daha az sayıda büyük istek gönderiyorsa, TPM'i düzeltin: sistem istemlerini kırpın, bağlamları prompt_cache mekanizmasıyla önbelleğe alın veya isteği bölün.
Adım 4: Eş Zamanlı Kullanıcıları Simüle Edin
Ani yüklenme testleri kendi üst sınırınızı ölçer. Üretim trafiği farklı görünür: birçok kullanıcı, değişen istek boyutları, sabit bir temel üzerine ani yüklenmeler.
Apidog'da, yinelemeler arasında rastgele uyku süreleri ile isteğin üç veya dört varyasyonunu (küçük, orta, büyük) döngüleyen bir test senaryosu oluşturun. Çalıştırıcı, JavaScript istek öncesi ve sonrası komut dosyalarını destekler, böylece şunları yapabilirsiniz:
- Her yinelemede rastgele bir mesaj uzunluğu seçin.
- Her yanıttan sonra
x-ratelimit-remaining-tokensdeğerini okuyun ve bir eşiğin altına düştüğünde senaryoyu iptal edin. - 200'ler ile 429'lar için gecikmeyi ayrı ayrı kaydedin, böylece kısıtlamanın p95'i nasıl etkilediğini görebilirsiniz.
Senaryo bittiğinde, rapor size durum kodlarının bir histogramını verir. Bu histogram, bir çalışma kitabına sabitleyebileceğiniz en kullanışlı yapıdır. Bir iş arkadaşınız "hız limitimiz var mı?" dediği anda, tekrar çalıştırır ve karşılaştırırsınız.
Kısıtlandığınızda Ne Yapmalısınız
Duvarın nerede olduğunu ölçtükten sonra, üç dürüst seçeneğiniz var.
Geri Çekilin. Her GPT çağrısını üstel geri çekilmeli bir yeniden deneme ile sarın. 429 yanıtından x-ratelimit-reset-tokens başlığını okuyun ve bunu ilk yeniden deneme gecikmeniz olarak kullanın; bu başlık OpenAI'nin "bu kadar bekle" sorusuna verdiği gerçek cevaptır. Naif bir time.sleep(2 ** attempt) de işe yarar, ancak beklemek zorunda olmadığınız saniyeleri boşa harcar.
Kuyruğa Alın. Trafiğiniz ani yüklenmeler içeriyorsa, istekleri bir kuyruğa koyun ve limitinizin hemen altında bir hızla boşaltın. TPM'nizin biraz altına sabitlenmiş bir token-bucket sınırlayıcı standart bir modeldir. Uygulama takaslarını API hız sınırlaması nasıl uygulanır ve API'lerde hız sınırlaması uygulama makalelerinde inceledik.
Toplu İşleyin. OpenAI'nin Toplu İşlem API'si daha yüksek limitlerde ve eş zamanlı çağrıların yarısı fiyatına çalışır. İş yükünüz 24 saatlik dönüş süresine (gece zenginleştirme, belge sınıflandırma, gömme yeniden oluşturma) izin veriyorsa, onu Toplu İşleme taşıyın ve kullanıcıya yönelik trafik için eş zamanlı kotanızı boşaltın.
Birini seçmeden önce kısıtlama ve hız sınırlaması arasındaki farkı daha derinlemesine okumak isterseniz, kısıtlama vs. hız limiti terminolojideki en kısa yoldur.
Yaygın GPT 429 Hataları ve Anlamları
Üç farklı 429 çeşidi, gerçek dünya vakalarının yaklaşık %90'ını kapsar.
Hız limiti aşıldı … dakikadaki isteklerde (RPM), kodunuzun boyutundan bağımsız olarak dakikada çok fazla çağrı yaptığı anlamına gelir. Eş zamanlılık kontrolü ekleyin. Paralel bir map içinde her kaydı ateşlemeyin; işçi havuzunuzu RPM'nizin iki güvenlik faktörüne bölünmüş haliyle sınırlayın.
Hız limiti aşıldı … dakikadaki tokenlarda (TPM), çağrılarınızın çok büyük olduğu anlamına gelir. İstemi denetleyin. Çoğu TPM aşımı, zamanla büyüyen sistem istemlerinden veya tüm belgeleri bağlama dolduran RAG boru hatlarından kaynaklanır. Kırpın, önbelleğe alın veya bölün.
Mevcut kotanızı aştınız, lütfen planınızı ve faturalandırma detaylarınızı kontrol edin 429 gibi görünse de aslında bir hız limiti değil, bir faturalandırma engelidir. Hesabınız aylık harcama limitine ulaştı, kayıtlı kartınız başarısız oldu veya ön ödemeli bakiyeniz sıfıra düştü. Çözüm kodunuzda değil, faturalandırma panelindedir.
SSS
Apidog, GPT hız limitlerini test etmek için ücretli mi? Hayır. Ücretsiz plan, tek istek testini ve küçük eş zamanlı test çalıştırmalarını kapsar. Yalnızca daha büyük test yükleri, ekip çalışma alanları veya zamanlanmış çalıştırmalar istiyorsanız ücretli bir plana ihtiyacınız vardır. Detaylar için Apidog fiyatlandırmasına bakın.
Gerçek tokenları yakmadan hız limitlerini test edebilir miyim? Kısmen. En ucuz temel kontrol, max_tokens: 1 ve tek karakterlik bir mesajla yapılan tek seferlik bir istektir; bu, sentin küçük bir kısmına mal olur ve başlıklar eksiksiz döner. Ani yüklenme testleri için gerçek token harcarsınız, ancak her çağrıyı çok küçük tutabilirsiniz. Tamamen çevrimdışı bir prova istiyorsanız, Apidog'un sahte sunucusunu kullanarak 429 yanıt şeklini simüle edin ve yeniden deneme mantığınızın OpenAI'yi hiç çağırmadan çalıştığını kanıtlayın.
1. seviye anahtarım neden 1. seviye bir meslektaşımınkinden daha yavaş hissediyor? Seviye limitleri anahtar başına değil, kuruluş başınadır. Anahtarınız diğer yoğun kullanıcılarla paylaşılan bir kuruluştaysa, onların trafiğiyle rekabet ediyorsunuz demektir. Apidog bunu açıkça gösterebilir: aynı isteği her iki anahtardan da yan yana çalıştırın ve x-ratelimit-remaining-tokens azalmasını karşılaştırın.
Hangi modelin hangi limite sahip olduğunu nasıl anlarım? Yanıt başlıklarını okuyun. Blog yazılarındaki (bu dahil) genel tablolara güvenmeyin. Her modeli Apidog'dan tek bir ucuz istek ile vurun ve başlıkları kaydedin. Aynı isme sahip ancak farklı anlık görüntü sürümlerine (örneğin gpt-5.5 vs gpt-5.5-0901) sahip modeller farklı limitlere sahip olabilir.
Akış istekleri farklı mı sayılır? TPM için evet. Bir akış isteği, max_tokens değerine göre önceden token ayırır, bu nedenle uzun bir max_tokens değeri, gerçek tamamlama kısa olsa bile TPM bütçenizi tüketebilir. max_tokens değerini en sıkı gerçekçi üst sınıra düşürün. Akış davranışını Apidog ile ChatGPT API'sini nasıl test edeceğiniz kılavuzumuzda ele alıyoruz.
Apidog hız limiti testimimi ekibimle paylaşabilir miyim? Evet. İsteği ve test senaryosunu paylaşılan bir projeye kaydedin. Çalışma alanınızdaki herkes, ortamları değiştirerek aynı ani yüklenmeyi kendi anahtarına karşı çalıştırabilir. Bu, "benim anahtarım mı yoksa onlarınki mi kısıtlandı?" sorusunu 10 saniyelik bir soru haline getirir.
