GPT, Codex, DeepSeek ve GLM tek API üzerinden.
Model.sale tanıdık bir OpenAI uyumlu base URL sunar. Anahtarınızı sunucu tarafında tutun, aktif bir model kimliği seçin ve her çağrıyla dönen istek kimliğini ve kullanım bilgisini inceleyin.
Endpoint'ler
| Yöntem | Yol | Amaç |
|---|---|---|
| GET | /v1/models | Çağrılabilir modeller |
| GET | /v1/models/{id} | Tek bir çağrılabilir model (OpenAI models.retrieve) |
| GET | /v1/catalog | Canlı durumlu, fiyatlı tüm kayıt |
| POST | /v1/responses | Responses, JSON ve SSE (GPT/Codex) |
| POST | /v1/chat/completions | Chat Completions, JSON ve SSE (GPT/GLM/DeepSeek) |
Kimlik doğrulama
Anahtarı Authorization: Bearer ms_live_… (OpenAI SDK'ları, Codex) veya x-api-key: ms_live_… (Anthropic SDK'ları) olarak gönderin. Tarayıcı uygulamaları API'yi doğrudan çağırabilir: /v1/* için CORS çerezsiz etkindir — anahtarı yalnızca kontrol ettiğiniz bir tarayıcıya verin.
En küçük istek
Modeli, GET /v1/models'in döndürdüğü bir kimlikle değiştirin.
curl https://api.model.sale/v1/responses \
-H "Authorization: Bearer $MODEL_SALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","input":"Reply exactly OK"}'Akış (streaming)
stream: true ayarlayın. Responses akışları son bir response olayıyla, Chat Completions akışları ise [DONE] ile biter. Her yanıt x-model-sale-request-id başlığını taşır.
Hatalar ve limitler
Hatalar OpenAI biçimini kullanır: {error:{message,type,param,code}}. type kategoridir, code ise belirli nedendir.
| Durum | type | Tipik code | Ne yapmalı |
|---|---|---|---|
| 400 | invalid_request_error | invalid_json, model_required | İstek gövdesini düzeltin; mesaj sorunu belirtir. |
| 401 | authentication_error | invalid_api_key | Anahtarı kontrol edin veya panelden yenisini oluşturun. |
| 402 | insufficient_quota | insufficient_balance | Faturalamadan bakiye yükleyin, sonra tekrar deneyin. |
| 403 | permission_error | model_not_allowed, ip_not_allowed | Anahtarın model veya IP kısıtlamalarını ayarlayın. |
| 404 | not_found_error | model_not_found | GET /v1/models içindeki bir kimliği kullanın. |
| 429 | rate_limit_error | rate_limit_exceeded | Retry-After saniye bekleyin veya anahtarın limitlerini yükseltin. |
| 502/503 | server_error | upstream_error, model_unavailable | Geri çekilmeyle yeniden deneyin; başarısız istekler ücretlendirilmez. |