Platform API
Kataloğu, fiyatları, bakiyenizi ve kullanımınızı koddan okuyun.
Burada istem göndermek dışında her şey var: hangi modeller mevcut, her sağlayıcı ne kadar ücret alıyor, ne kadar harcadınız ve elinizde hangi anahtarlar var. Hepsi, tamamlama isteklerini gönderdiğiniz api ana makinesinde JSON döndürür.
Katalog ve fiyat uç noktaları geneldir ve hiçbir kimlik bilgisi gerektirmez. Kendi hesabınızla ilgili her şey bir kimlik bilgisi ister ve bunun iki türü vardır.
Bunlar birbirinin yerine geçmez. Bir API anahtarı bakiyenizi okuyamaz, bir erişim belirteci de tamamlama isteği gönderemez.
| Kimlik bilgisi | Görünümü | Neye açar |
|---|---|---|
| API anahtarı | sk-... | Çıkarımı, model listesini ve yalnızca o anahtarın kullanım sayacını. |
| Erişim belirteci | 29 ila 32 karakter, ön ek yok | Hesabınızı: bakiye, anahtar yönetimi, kullanım kayıtları. |
İkisi de aynı başlıkta taşınır, Authorization: Bearer ve ardından değer. Başka hiçbir şey okunmaz. Eski örnekler bir New-Api-User başlığı ekler, o başlık yok sayılır ve çerez üzerinden bir yedek yol yoktur.
Uç nokta bu başlık olmadan da yanıt verecek olsa bile başlığı gönderin. Kimlik bilgisi taşımayan bir hesap isteği bize ulaşmadan önce bir doğrulamaya takılabilir ve doğrulama JSON yerine HTML döndürür.
Önce Ayarlar sayfasını açın, Güvenlik altındaki API erişimi bölümünü bulun ve bir belirteç oluşturun. Belirteç yalnızca bir kez gösterilir. Yalnızca oturumunuz açıkken oluşturulabilir, bu yüzden bir betik kendi belirtecini üretemez.
Aynı anda tek bir erişim belirteciniz olur. Yenisini oluşturmak eskisini sessizce geçersiz kılar ve onu hâlâ kullanan her şey çalışmayı bırakır.
Ona bir parola gibi davranın. Para harcayabilir, anahtar oluşturabilir ve geçmişinizi okuyabilir. Bir betiğin artık ihtiyacı kalmadığında aynı ekrandan iptal edin.
Tek bir genel istek, fiyatları milyon token başına dolara çevrilmiş olarak bütün modelleri döndürür. Anahtar yok, kayıt yok.
curl https://api.unorouter.com/api/pricing/catalog{
"counts": { "models": 239, "free": 134, "paid": 105, "vendors": 50 },
"first_free_model": "glm-5.3:free",
"vendors": [{ "vendor_id": 4, "vendor_name": "Zhipu", "icon": "Zhipu.Color" }],
"models": [
{
"model_name": "glm-5.3",
"vendor": "Zhipu",
"type": "text",
"is_free": false,
"online": true,
"input_price": 0.05103,
"output_price": 0.160382187,
"original_input_price": 1.26,
"original_output_price": 3.960054,
"tags": "Text,Reasoning,Tools,Cache",
"supported_endpoint_types": ["openai", "anthropic"],
"uptime_24h": 99.965,
"success_rate": 95,
"avg_latency_ms": 11062
}
]
}input_price ve output_price, o modeli şu anda sunan en ucuz sağlayıcıda bugün gerçekten ödeyeceğiniz tutardır. original_input_price ve original_output_price satıcının kendi liste fiyatıdır, dolayısıyla ikisi arasındaki fark indirimdir. is_free hiçbir zaman ücret almayan modelleri, online ise şu anda etkin bir sağlayıcısı olanları işaretler.
İki küçük akrabası: /api/pricing/counts yalnızca toplamları döndürür ve düzenli olarak sorgulanacak kadar ucuzdur, /api/pricing/vendors ise satıcı listesini döndürür. Daha eski /api/pricing uç noktası dolar yerine ham oranları döndürür ve birkaç kat daha büyüktür.
Çoğu modeli birden fazla sağlayıcı farklı ücretlerle sunar. Hepsini görmek için tek bir model sorgulayın.
curl "https://api.unorouter.com/api/pricing/catalog/model?model=glm-5.3"{
"model_name": "glm-5.3",
"model_ratio": 0.63,
"completion_ratio": 3.1429,
"cache_ratio": 0.1857,
"input_price": 0.05103,
"output_price": 0.160382187,
"grid_min_ratio": 0.0405,
"auto_chain": ["a7-bbgt-2846-glm-5.3", "a7-kkl-3731-glm-5.3", "a7-4069-glm-5.3"],
"group_ratio": {
"a7-bbgt-2846-glm-5.3": 0.0405,
"a7-kkl-3731-glm-5.3": 0.0911,
"a7-4069-glm-5.3": 0.1214
},
"enable_groups": ["a7-bbgt-2846-glm-5.3", "a7-kkl-3731-glm-5.3"]
}auto_chain, yönlendirmenin sağlayıcıları denediği sıradır, en ucuzdan başlar. group_ratio her sağlayıcının çarpanını verir ve fiyat bundan çıkar:
input $/1M = model_ratio * 2 * group_ratio
output $/1M = input * completion_ratio
cached $/1M = input * cache_ratio
glm-5.3 on a7-bbgt-2846: 0.63 * 2 * 0.0405 = $0.05103 / 1M in
0.05103 * 3.1429 = $0.16038 / 1M outBu grup adları, bir anahtarı sabitlediğiniz adlarla aynıdır, bkz. Grup Sabitleme
Bağlan düğmesine bastığınızda çoğu istemcinin çağırdığı şey, OpenAI uyumlu listedir. Bir API anahtarı gerektirir.
curl https://api.unorouter.com/v1/models \
-H "Authorization: Bearer $UNOROUTER_API_KEY"Yalnızca o anahtarın gerçekten kullanabileceği modelleri döndürür, bu yüzden ücretsiz kademedeki bir anahtar, bakiyesi olan bir anahtardan daha az model görür. Her kayıt ayrıca, düz OpenAI'nin sağlamadığı context_length ve max_output_tokens alanlarını taşır.
Yol /v1/models şeklindedir. /v1 kısmını atarsanız API yerine bir web sayfasına ulaşırsınız, istemciler bunu beklenmeyen bir doctype hakkında JSON ayrıştırma hatası olarak bildirir.
Tek bir çağrı, harcanabilir kalan tutar dahil hesabınızı döndürür.
curl https://api.unorouter.com/api/user/self \
-H "Authorization: Bearer $UNOROUTER_ACCESS_TOKEN"{
"success": true,
"message": "",
"data": {
"id": 12345,
"username": "you",
"group": "default",
"quota": 265000,
"used_quota": 4231900,
"request_count": 1884,
"aff_code": "ABC123"
}
}Tutarlar dolar değil quota birimi cinsindendir. 500.000 birim bir ABD dolarıdır, dolayısıyla yukarıdaki bakiye 0,53 ABD dolarıdır. Parayı göstermek için 500.000'e bölün.
quota, hâlâ harcayabileceğiniz tutardır. used_quota ve request_count yalnızca artan, ömür boyu toplamlardır, dolayısıyla used_quota herhangi bir şey ile bakiyeniz arasındaki fark değildir.
Anahtarlarınızı listeleyin, sonra birini id ile açığa çıkarın.
curl "https://api.unorouter.com/api/token/?p=1&page_size=20" \
-H "Authorization: Bearer $UNOROUTER_ACCESS_TOKEN"
curl -X POST https://api.unorouter.com/api/token/42/key \
-H "Authorization: Bearer $UNOROUTER_ACCESS_TOKEN"Listeleme her anahtarın değerini maskeler, açığa çıkarmanın ayrı bir çağrı olmasının nedeni budur. O çağrı hız sınırlıdır ve denetim kaydınıza yazılır.
Anahtar oluşturmak success döndürür, anahtarın kendisini değil. Önce oluşturun, id'sini bulmak için listeleyin, sonra görüntüleyin. Güncelleme güncellenmiş nesneyi döndürür, ancak nesnenin tamamını gönderin: atlanmayı yalnızca cross_group_retry, group_mapping ve auto_groups atlatır, atladığınız diğer her alan boş olarak geri yazılır.
Kendi istek geçmişiniz sayfalanır ve filtrelenebilir.
curl -G https://api.unorouter.com/api/log/self \
-H "Authorization: Bearer $UNOROUTER_ACCESS_TOKEN" \
-d p=1 \
-d page_size=100 \
-d type=2 \
-d start_timestamp=1789344000 \
-d model_name=glm-5.3| Parametre | Anlamı |
|---|---|
type | 1 yükleme, 2 tüketim, 3 yönetim, 5 hata, 6 iade, 7 oturum açma. Hepsi için boş bırakın. |
start_timestamp, end_timestamp | Unix saniyesi. İkisi arasındaki aralık on yıldan uzun olamaz. |
model_name, token_name, group | Tek bir modele, tek bir anahtara veya tek bir sağlayıcı grubuna daraltın. |
request_id, upstream_request_id | Tek bir isteği bulun, bizim kimliğimizle veya sağlayıcının kimliğiyle. |
Sayfalama için p ve page_size ekleyin, sayfa boyutu en fazla 100 olabilir. Kardeş uç nokta /api/log/self/stat aynı filtreler için yalnızca toplamları döndürür: harcama, dakikadaki istek ve dakikadaki token.
Tek bir anahtarın kalan bakiyesini erişim belirteci olmadan okumak için anahtarın kendisiyle kimlik doğrulaması yapın:
curl https://api.unorouter.com/api/usage/token/ \
-H "Authorization: Bearer $UNOROUTER_API_KEY"{
"object": "token_usage",
"name": "SillyTavern",
"total_granted": 500000,
"total_used": 231900,
"total_available": 268100,
"unlimited_quota": false,
"model_limits_enabled": false,
"expires_at": 0
}Hesap uç noktaları yükünü sarmalar. Sayfalananlar iki kez sarmalar.
{ "success": true, "message": "", "data": { ... } }
{ "success": true, "message": "", "data": {
"page": 1, "page_size": 20, "total": 137, "items": [ ... ]
} }Genel katalog uç noktaları istisnadır ve nesnelerini sarmalayıcı olmadan doğrudan döndürür.
Çoğu hata yine de success alanı false olan ve nedenini açıklayan bir mesaj içeren HTTP 200 döndürür. Durum kodu yerine bu alanı kontrol edin.
Kimlik doğrulama istisnadır ve gerçek bir durum döndürür: hatalı kimlik bilgisi için AUTH_UNAUTHORIZED ile 401, süresi dolmuş olan için AUTH_TOKEN_EXPIRED, oturum kapatıldıktan sonra AUTH_SESSION_REVOKED ve hesabın o yolu çağırmasına izin verilmediğinde 403 AUTH_INSUFFICIENT_PRIVILEGE.