İçeriğe atla

Kimlik doğrulama

Tek başlık, tek anahtar ve her biri belirli bir anlam taşıyan birkaç hata.

Başlık

Anahtarınızı her istekte X-API-Key başlığıyla gönderin. OAuth akışı, token değişimi ya da yenilenmesi gereken bir şey yoktur.

curl -X POST https://api.occultapi.com/api/astro/tithi/ \
  -H "X-API-Key: yt_live_a1b2c3d4_x9K2mQ7vB4nR8sL1wY6tZ3pC5hJ0dF" \
  -H "Content-Type: application/json" \
  -d '{ "date_time": "2026-09-16T06:00:00+05:30", "latitude": 26.9124, "longitude": 75.7873, "timezone_as_float": 5.5 }'

Anahtar biçimi

Anahtarlar yt_live_a1b2c3d4_x9K2mQ7vB4nR8sL1wY6tZ3pC5hJ0dF biçimindedir: marka, ortam, sekiz karakterlik herkese açık bir önek ve ardından gizli kısım.

  • yt_live_… bakiyenizden gerçek kredi harcar.
  • yt_test_… geliştirme içindir ve kullanım kayıtlarınızda bu şekilde etiketlenir.

Önek bilerek herkese açık ve dizinlenmiş tutulur. Bir anahtar günün birinde herkese açık bir depoya sızarsa, gizli yarısına kimsenin ihtiyacı olmadan yalnızca önekiyle bulunup iptal edilebilir.

Bir kez gösterilir, hash olarak saklanır

Anahtar yalnızca bir kez, oluşturduğunuz anda gösterilir. Biz sadece SHA-256 hash'ini saklarız; bu yüzden ne bir yönetici ne de bir veritabanı dökümü onu geri getirebilir. Bu, anahtarı size gerçekten yeniden gönderemeyeceğimiz anlamına da gelir. Sonrasında yalnızca önekini ve son dört karakterini görürsünüz; bir listede iki anahtarı ayırt etmek için bu yeterlidir.

Anahtarınızı mı kaybettiniz? Yenisini oluşturun ve eskisini iptal edin. Bu, bize yazmaktan daha hızlıdır; zaten bizim yapabileceğimiz de yalnızca budur.

Hatalar ve hangilerinin kimlik doğrulama sorunu olmadığı

Her hata, is_error: true içeren standart yanıt yapısını kullanır ve message alanında değişmeyen, makinenin okuyabileceği bir kod taşır. Kodunuzda açıklama metnine göre değil, bu koda göre dallanın.

DurummessageAnlamıNe yapmalı
401invalid_api_keyAnahtar eksik, hatalı biçimde, iptal edilmiş ya da süresi dolmuş.X-API-Key başlığının bize gerçekten ulaştığını kontrol edin. Anahtarı yenilediyseniz yenisini yayına alın.
402insufficient_creditsAnahtar geçerli. Bakiye boş.Planınızı yükseltin ya da aylık sıfırlamayı bekleyin. Bu bir yetkilendirme sorunu değil; anahtarı yeniden oluşturmak işe yaramaz.
403endpoint_not_allowedBu yol API anahtarlarına açık değil: yol ya da metot yanlış veya endpoint kullanımdan kaldırılmış.Yolu ve metodu referansla karşılaştırın. Ne yeniden denemek ne de yeni anahtar işe yarar.
403scope_not_allowedAnahtarda bu endpoint'in gerektirdiği kapsam yok.Doğru kapsamlarla yeni bir anahtar oluşturun ya da tümüne erişim için kapsamları boş bırakın.
403ip_not_allowedAnahtarın bir IP izin listesi var ve istek bu listede olmayan bir adresten geldi.İzinli bir IP'den çağırın ya da doğru IP'lerle yeni bir anahtar oluşturun. Her adrese izin vermek için IP listesini boş bırakabilirsiniz.
403account_suspendedHesap askıya alındı; bu yüzden hesaptaki tüm anahtarlar reddediliyor.Destek ekibiyle iletişime geçin. Anahtarı yeniden oluşturmak işe yaramaz.
429api_key_rate_limitedBu anahtarla bir dakika içinde çok fazla istek gönderildi.Bekleyin ve Retry-After başlığındaki saniye kadar sonra yeniden deneyin.
400(alan hataları)İstek gövdesi hatalı. message, sorunlu her alanı adıyla belirtir.message alanını okuyun; sorunu net olarak söyler. Ücret alınmaz.

Tekrarlamaya değer olan şu: 402 bir kimlik doğrulama hatası değildir. Anahtar sağlamdır, yalnızca bakiye boştur. Sık yapılan yanlış hamle anahtarı yeniden oluşturmaktır ve hiçbir şeyi değiştirmez.

Kredi başlıkları

Her yanıt, çağrının neye mal olduğunu ve ne kadar kredi kaldığını taşır. Böylece harcamanızı ikinci bir istek yapmadan izleyebilirsiniz.

X-Credits-Cost:      1    # what this endpoint costs
X-Credits-Charged:   1    # what you were actually billed — 0 on any error
X-Credits-Remaining: 149  # balance after this call

Kayda geçirmeniz gereken başlık X-Credits-Charged. Başarısız bir istek her zaman 0 gösterir: kredi, hesaplama başlamadan önce ayrılır ve hesaplama sorunsuz tamamlanmazsa geri bırakılır. Bu yüzden hata ayıklarken bozuk bir entegrasyon bakiyenizi eritemez.

Hız sınırları

Sınırlar anahtar başına ve dakika başına uygulanır. Amaçları sizi kısıtlamak değil, sızan bir anahtarın verebileceği zararı sınırlamaktır. Sınırı aşarsanız, saniye cinsinden bir Retry-After başlığıyla birlikte 429 alırsınız; hemen yeniden denemek yerine o kadar bekleyin. Yanıtlarda ayrıca X-RateLimit-Limit ve X-RateLimit-Remaining başlıkları da bulunur.

429 yanıtları hiçbir zaman ücretlendirilmez. Normal kullanımda sınıra takılıyorsanız, sınırı yükseltmemiz için bize yazın.

Anahtarınızı güvende tutun

  • Tarayıcıdan değil, sunucunuzdan çağırın. Ön yüz paketine ya da mobil uygulamaya konmuş bir anahtar, adı ne olursa olsun herkese açık bir anahtardır. Herkes onu okuyup bakiyenizi harcayabilir.
  • Anahtarı bir ortam değişkeninde ya da gizli bilgi yöneticisinde saklayın. Asla commit etmeyin.
  • Her ortam için ayrı anahtar kullanın; böylece birini iptal ettiğinizde diğerleri çalışmaya devam eder.
  • Anahtarı şu sırayla yenileyin: yeni anahtarı oluşturun, yayına alın, ardından eskisini iptal edin. Bu sırayla yaparsanız arada hiçbir şey kesintiye uğramaz.
  • Bir anahtarın sızmış olma ihtimali varsa hemen iptal edin. İptal anında geçerli olur ve kalan kredileriniz etkilenmez.

Bunların hepsini Anahtarlar sayfanızdan yönetin.

Sonraki