Yıllık Yıllık ödeyin, tüm ücretli planlarda 2 ay ücretsiz. Planları gör
Giriş yap Ücretsiz başla

OpenAI uyumlu API

Son güncelleme: 11 Kas 2026

Nedir

OpenAI uyumlu API, OpenAI'ın chat completions biçimini konuşan bir aracın ToRun'un sohbet modellerini kullanmasını sağlar; ücreti ToRun hesabınızdan ödenir. opencode gibi bir kodlama ajanı, ToRun'un MCP araçlarının yanında ToRun'u model sağlayıcısı olarak da kullanabilir.

Adres ve oturum açma

Temel URL https://mcp.torun.ai/v1
Oturum açma Authorization: Bearer <your developer key>

MCP sunucusu için kullandığınız geliştirici anahtarını kullanın: bkz. Geliştirici anahtarları. OpenAI uyumlu API eklenmeden önce oluşturulan bir anahtar 403 insufficient_scope yanıtını alır. Bir anahtarın izinleri hiçbir zaman değişmez, bu yüzden yeni bir anahtar oluşturun.

API'nin iki uç noktası vardır: GET /v1/models ve POST /v1/chat/completions. /v1 altındaki diğer her yol 404 not_found yanıtını verir.

Modeller

GET /v1/models önce torun/auto modelini, ardından planınızın kullanabildiği her metin modelini model kimliğiyle listeler. Her model şunları belirtir:

  • ne kadar metin okuyabildiğini (context_length) ve ne uzunlukta bir yanıt yazabildiğini (max_completion_tokens),
  • araç çağırıp çağıramadığını (supports_tools) ve görsel okuyup okuyamadığını (supports_vision),
  • milyon token başına Runs cinsinden fiyatını (pricing: input ve output).

torun/auto, ToRun'un her istek için bir model seçmesini sağlar: istekte görsel varsa görsel okuyabilen, tools gönderiyorsa araç çağırabilen bir model.

Chat completions

POST /v1/chat/completions şunları kabul eder:

  • system, developer (system olarak işlenir), user, assistant ve tool rolleriyle messages,
  • tools ve tool_choice (auto, none, required ya da adı verilen tek bir fonksiyon): aracınızın kendi araçları ona araç çağrısı olarak geri döner ve ToRun onları hiçbir zaman çalıştırmaz,
  • json_object ile response_format. json_schema kabul edilir ve JSON olarak yanıtlanır, ancak şemanın kendisi zorunlu tutulmaz,
  • temperature (0 ile 2 arası), top_p (0 ile 1 arası), max_completion_tokens veya max_tokens, stop (en fazla 4 dizi), seed ve reasoning_effort,
  • stream ve stream_options.include_usage.

1'den büyük n, logprobs, top_logprobs, ses ve metin dışındaki her çıktı yok sayılmak yerine 400 unsupported_parameter ile reddedilir.

Görseller

Bir görseli satır içi olarak, bir image_url parçasında data:image/...;base64,... biçiminde, istek başına en fazla 20 MB olarak gönderin. Bağlantı olarak gönderilen bir görsel 400 image_url_not_supported ile reddedilir: ToRun onu indirmez. Görseller, uygulamada olduğu gibi güvenlik denetiminden geçirilir.

Akış

"stream": true ile yanıt, chat.completion.chunk biçiminde sunucu tarafından gönderilen olaylar olarak gelir:

  • İlk parça assistant rolünü taşır ve araç çağrıları index değerleriyle akar.
  • Gönderilecek bir şey yokken her 15 saniyede bir : keepalive yorum satırı gelir; SSE ayrıştırıcıları bunu atlar.
  • data: [DONE] başarılı bir akışı sonlandırır.
  • stream_options.include_usage ile son parçanın choices alanı boştur ve usage taşır.
  • Akış başladıktan sonraki bir hata tek bir data: {"error": ...} olayı olarak gelir ve [DONE] gelmez.

Akış kullanılmayan bir çağrı 110 saniye sonra 504 timeout ile durdurulur. Uzun istekleri "stream": true ile gönderin.

Kullanım

usage; prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details.cached_tokens ve completion_tokens_details.reasoning_tokens alanlarını, ayrıca çağrının Runs cinsinden maliyeti olan torun_credits alanını taşır.

opencode'da kullanın

Geliştiriciler sayfasındaki opencode yapılandırması, ToRun'u MCP sunucusunun yanında model sağlayıcısı olarak ekler:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "torun": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "ToRun",
      "options": { "baseURL": "https://mcp.torun.ai/v1", "apiKey": "{env:TORUN_API_KEY}" },
      "models": { "torun/auto": { "name": "ToRun Auto" } }
    }
  }
}

OpenAI sohbet API'sini konuşan diğer her araç da aynı şekilde çalışır. Sayfanın OpenAI API sekmesi şu çağrıyı gösterir:

curl https://mcp.torun.ai/v1/chat/completions \
  -H "Authorization: Bearer $TORUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "torun/auto", "messages": [{"role": "user", "content": "Hello"}]}'

Çağrılar nasıl ödenir

API çağrıları, uygulamadaki aynı kullanımla aynı miktarda Runs tutar. Bunları yalnızca ücretli kaynaklar öder: önce ücretli planınızın payı, anahtarda buna izin verdiyseniz ardından cüzdanınız. Ücretsiz pay API çağrılarını hiçbir zaman ödemez. Anahtarın aylık ve günlük sınırları geçerlidir ve yanıtlar sohbet yanıtları gibi güvenlik denetiminden geçirilir.

Sınırlar

Her anahtar bu API'ye dakikada 60 istek gönderebilir ve aynı anda 4 tamamlama çalıştırabilir. Bunun üstünde API, Retry-After başlığıyla 429 rate_limit_exceeded yanıtını verir.

Hatalar

Her hata {"error": {"message": ..., "type": ..., "param": ..., "code": ...}} biçimindedir. message, isteğin Accept-Language başlığının istediği dildedir.

Durum Kod Anlamı
400 invalid_json, missing_parameter, invalid_parameter, unsupported_parameter İstek hatalı biçimlendirilmiş ya da ToRun'un desteklemediği bir parametre kullanıyor.
400 image_url_not_supported Bir görsel bağlantı olarak gönderildi; satır içi gönderin.
400 content_blocked Güvenlik denetimi içeriği engelledi.
400 upstream_rejected Modelin sağlayıcısı isteği reddetti; mesaj nedenini söyler.
401 invalid_api_key Anahtar eksik, yanlış yazılmış ya da iptal edilmiş.
402 insufficient_credits, wallet_spend_not_allowed, spending_cap_reached Hesap ya da anahtar çağrının ücretini ödeyemiyor.
403 insufficient_scope Anahtar bu API eklenmeden önce oluşturuldu; yeni bir anahtar oluşturun.
403 model_not_available Model planınızda yok.
403 account_suspended, no_developer_access Hesap askıya alınmış ya da geliştirici erişimi yok.
404 model_not_found Model kimliği, GET /v1/models listesindekilerden biri değil.
404 not_found /v1 altında böyle bir yol yok.
429 rate_limit_exceeded Çok fazla çağrı; Retry-After içindeki süre kadar bekleyin.
500 internal_error ToRun tarafında bir şey başarısız oldu.
502 upstream_error, empty_reply Modelin sağlayıcısı başarısız oldu ya da boş bir yanıt gönderdi.
503 upstream_error, cap_unreadable, scan_unavailable Çağrının ihtiyaç duyduğu bir hizmet bir an için kullanılamıyor; tekrar deneyin.
504 timeout Akış kullanılmayan bir çağrı 110 saniyeyi aştı.

Ödenemeyen bir istek 429 değil 402 yanıtını verir, böylece bir istemci onu yeniden denemeye devam etmez.