Felo APIs
LLM API
Felo model endpoint'lerini OpenAI ve Anthropic uyumlu protokollerle çağırın.
/api/v1/modelsKimlik doğrulama
Bearer API key or X-API-Key
İçerik türü
application/json
Hız sınırı notları
Model service limits may apply. Retry with backoff on 429 or 503.
LLM API, Felo API Platform aracılığıyla doğrudan model çağırma endpoint'leri sunar. Genel amaçlı dil modellerini çağırmak, OpenAI uyumlu veya Anthropic uyumlu istemcileri yeniden kullanmak ya da ajan çerçevelerini Felo API Platform'a bağlamak istediğinizde bunu kullanın.
LLM API şu anda üç sohbet uyumlu model çağırma yüzeyi içerir:
POST /api/v1/responses: OpenAI Responses uyumluPOST /api/v1/chat/completions: OpenAI Chat Completions uyumluPOST /api/v1/messages: Anthropic Messages uyumlu
Decisions API
POST https://openapi.felo.ai/api/v1/decisionsDurum bilgisini ve dar kapsamlı tipli soruları jev-1.13 modeline gönderin (kabul edilen diğer biçim: typesafe/jev-1.13). Chat Completions, Messages veya Responses endpoint'lerini değil, /api/v1/decisions kullanın. Akış desteklenmez.
İstek Alanları
model:jev-1.13state: Değerlendirilecek bağlam; bir dize veya JSON değeri.questions:type,instructionsvecriteriakullanan adlandırılmış sorular.
import os
import requests
response = requests.post(
"https://openapi.felo.ai/api/v1/decisions",
headers={"Authorization": f"Bearer {os.environ['FELO_API_KEY']}"},
json={
"model": "jev-1.13",
"state": "Help! My payouts have been failing for 3 days.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this message convey urgency?",
"criteria": {"true": "Time-sensitive", "false": "No urgency"},
},
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Payments, invoicing, refunds",
"technical": "Bugs, outages, integrations",
"sales": "Pricing, upgrades, new accounts",
},
},
"frustration": {
"type": "score",
"instructions": "How frustrated is the customer?",
"criteria": ["Calm", "Frustrated", "Very angry"],
},
},
},
timeout=60,
)
response.raise_for_status()
answers = response.json()["answers"]
print(answers["is_urgent"]["noul"])
print(answers["department"]["choice"], answers["department"]["probabilities"])
print(answers["frustration"]["score"])Yanıt Türleri
noul: 0 ile 1 arasında bir olasılık. choice: seçilen seçenek ve olasılık dağılımı. score: sıralı kriterler için sayısal bir puan ve dağılımı.
Hatalar error.code (sayısal HTTP durumu) ve error.message kullanır. answers alanını okumadan önce 2xx dışındaki yanıtları ele alın.
Kullanım ve Fiyatlar
Yanıt usage.input_tokens, usage.output_tokens içerir ve usage.cost içerebilir. 2026-10-12 tarihinde kontrol edilen referans ücretler: milyon token başına giriş USD 0.042; çıkış USD 0. Sıfır çıkış ücreti, giriş kullanımının ücretsiz olduğu anlamına gelmez. Ücretler değişebilir; tahminler için yayımlanmış model fiyatını ve geçerli hesap indirimlerini kullanın.
Kimlik Doğrulama
LLM API istekleri bir Felo API Platform anahtarı gerektirir. Authorization: Bearer ... veya X-API-Key seçeneklerinden birini kullanın.
Authorization: Bearer YOUR_API_KEYX-API-Key: YOUR_API_KEYAPI anahtarlarını oluşturma ve yönetme hakkında ayrıntılar için Kimlik Doğrulama Kılavuzu sayfasına bakın.
Temel URL
Genel Felo API Platform ana bilgisayarını kullanın:
https://openapi.felo.aiSDK istemcileri için Temel Kullanım bölümünde gösterilen protokole özgü temel URL'yi yapılandırın.
Ortak Başlıklar
| Başlık | Zorunlu | Açıklama |
|---|---|---|
Authorization | X-API-Key kullanılmadığı sürece evet | Bearer YOUR_API_KEY biçimindeki API anahtarı |
X-API-Key | Authorization kullanılmadığı sürece evet | Bearer başlığına alternatif API anahtarı |
Content-Type | Evet | application/json olmalıdır |
X-Request-Id | Hayır | Sorun giderme için isteğe bağlı istek kimliği |
Model Keşfi
Genel katalog tüm model kategorilerini içerir. Video veya karar modellerini keşfetmek için ayrılmış listeleri kullanın:
| Endpoint | Model kategorileri |
|---|---|
GET /api/v1/models | Tüm kategoriler (değişmedi) |
GET /api/v1/videos/models | Video üretimi (video_generation) |
GET /api/v1/decisions/models | Jev dahil kararlar (decisions) |
Üç endpoint de isteğe bağlı provider sorgu parametresini kabul eder (örneğin openrouter) ve {"object":"list","data":[...]} döndürür. Her öğe id, object, created, owned_by ve model_kind içerir. Ayrılmış listeler, etkin sağlayıcı eşleme geçersiz kılmalarından sonraki geçerli kategoriyi kullanır.
Yalnızca etkin, listelenmiş, silinmemiş ve güncel fiyatlandırması sağlayıcı koşullarıyla eşleşen modeller döndürülür; sıfır fiyat geçerlidir. Yeni eşitlenen modeller, bir yönetici bunları listeleyene kadar gizlenir. Tüm listeler, model adı ve kimliği eşitlik bozucu olarak kullanılarak yapılandırılmış sıralamayı paylaşır. Eşleşme yoksa HTTP 200 ve boş bir data dizisi döner. Keşif yerel kataloğu okur; bir model çağrısı başlatmaz veya ücretlendirmez.
Yalnızca GET /api/v1/models, exclude_video_and_decisions parametresini kabul eder (boolean, varsayılan false). Etkin video_generation ve decisions türlerini hariç tutmak için true olarak ayarlayın; görsel modeller uygun kalmaya devam eder. provider ile birlikte kullanılabilir. Atlanması veya false olarak ayarlanması tam kataloğu korur. Geçersiz boolean değerleri HTTP 422 döndürür.
curl "https://openapi.felo.ai/api/v1/models?exclude_video_and_decisions=true&provider=openrouter" \
-H "Authorization: Bearer ${FELO_API_KEY}"
curl "https://openapi.felo.ai/api/v1/videos/models?provider=openrouter" \
-H "Authorization: Bearer ${FELO_API_KEY}"
curl "https://openapi.felo.ai/api/v1/decisions/models?provider=openrouter" \
-H "Authorization: Bearer ${FELO_API_KEY}"Çağrı endpoint'ini model_kind değerine göre seçin: modelin desteklediği şekilde Responses, Chat Completions veya Messages için chat; POST /api/v1/videos/generations için video_generation; POST /api/v1/decisions için decisions; POST /api/v1/images/generations için image_generation. Ayrıntılar GET /api/v1/models/{model_id} adresinde kalır. Listelenmiş bir model, her çağrı endpoint'iyle uyumlu olmak zorunda değildir.
Görsel modellerin ayrılmış bir liste endpoint'i yoktur. GET /api/v1/models isteğini model_kind: "image_generation" ile filtreleyin. Görsel istek alanları için Görsel Üretimi sayfasına bakın.
Modeller ve Fiyatlar
İstekler, X-Felo-Channel ile bir kanal sabitlemediğiniz sürece modelin varsayılan kanalını kullanır. Model kataloğundan genel kanal kodlarının sıralı, virgülle ayrılmış listesini geçin; varsayılanı kullanmak için başlığı atlayın. default değerini yalnızca tek başına kullanın. Yalnızca ilk kanalın sağlayıcı grubu gönderilir; otomatik yedekleme yoktur. Kanallar ve Sağlayıcı Yönlendirmesi sayfasına bakın.
Fiyatlar USD olarak listelenir. Token ücretleri okunabilirlik için 1 milyon token başına gösterilir; faturalandırma, güncel fiyat anlık görüntüsündeki token başına hassasiyeti kullanır. Önbellek ücretleri yalnızca protokol yanıtı önbellek kullanımı içerdiğinde geçerlidir. Tire işareti, ayrı bir yayımlanmış ücret veya yayımlanmış sınır olmadığı anlamına gelir. Model hizmeti tarafından bildirildiğinde web arama kullanımı, arama başına $0.01 üzerinden ücretlendirilir.
| Model Kimliği | Bağlam | Maks. çıktı | Girdi / 1M token | Çıktı / 1M token | Önbellek okuma / 1M token | Önbellek yazma / 1M token |
|---|---|---|---|---|---|---|
claude-haiku-4-5 | 200K | 64K | $1.00 | $5.00 | $0.10 | $1.25 |
claude-sonnet-4-6 | 1M | 128K | $3.00 | $15.00 | $0.30 | $3.75 |
claude-opus-4-8 | 1M | 128K | $5.00 | $25.00 | $0.50 | $6.25 |
claude-sonnet-5 | 1M | 128K | $2.00 | $10.00 | $0.20 | $2.50 |
claude-haiku-5-5 | 1M | 128K | $0.10 | $0.50 | $0.01 | $0.0125 |
gpt-5.5 | 1.05M | 128K | $5.00 | $30.00 | $0.50 | - |
gpt-5.5-pro | 1.05M | 128K | $30.00 | $180.00 | - | - |
gpt-5.6-luna | 1.05M | 128K | $1.00 | $6.00 | $0.10 | $1.25 |
gpt-5.6-terra | 1.05M | 128K | $2.50 | $15.00 | $0.25 | $3.125 |
gpt-5.6-sol | 1.05M | 128K | $5.00 | $30.00 | $0.50 | $6.25 |
grok-4.5 | 500K | - | $2.00 | $6.00 | $0.50 | - |
deepseek-v4-flash | 1M | 384K | $0.09 | $0.18 | $0.018 | - |
Claude Haiku 5.5 kademeli fiyatlandırma kullanır: 100K token'a kadar olan istemler yukarıdaki standart ücretlerden faturalandırılır; istemi 100K token'ı aşan istekler, isteğin tamamı için 1M token başına $0.50 girdi, $2.50 çıktı, $0.05 önbellek okuma ve $0.0625 önbellek yazma üzerinden faturalandırılır.
GPT-5.6 üç kademede sunulur: hızlı ve maliyet verimli iş yükleri için Luna; dengeli kodlama, akıl yürütme ve ajan görevleri için Terra; amiral gemisi karmaşık akıl yürütme ve kodlama için Sol. Her kademe ayrıca, aynı temel modeli pro akıl yürütme moduyla kullanan bir -pro model kimliği sunar (gpt-5.6-luna-pro, gpt-5.6-terra-pro ve gpt-5.6-sol-pro). -pro kimlikleri için fiyatlandırma, bağlam uzunluğu ve maksimum çıktı değişmez.
DeepSeek V4 Flash, akıl yürütme ve akıl yürütme dışı modları, JSON çıktısını, araç çağrılarını, Responses API'yi ve Anthropic API uyumluluğunu destekler. Felo'nun Responses, Chat Completions ve Messages yüzeyleri aracılığıyla kullanılabilir. Önbellek yazma fiyatlandırması henüz yayımlanmamıştır.
Temel Kullanım
Bu örnekler resmi OpenAI ve Anthropic SDK'larını kullanır. Örnekleri çalıştırmadan önce FELO_API_KEY değişkenini Felo API Platform anahtarınıza ayarlayın.
export FELO_API_KEY="YOUR_API_KEY"SDK'ları Yükleme
OpenAI SDK
Responses API ve Chat Completions API için OpenAI SDK'sını kullanın.
##### JavaScript
npm install openai##### Python
pip install openaiAnthropic SDK
Messages API için Anthropic SDK'sını kullanın.
##### JavaScript
npm install @anthropic-ai/sdk##### Python
pip install anthropicİstemcileri Yapılandırma
OpenAI uyumlu endpoint'ler, /api/v1 içeren OpenAI SDK temel URL'sini kullanır; çünkü SDK /responses ve /chat/completions gibi kaynak yollarını ekler.
JavaScript
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});Python
import os
from openai import OpenAI
openai = OpenAI(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api/v1",
)Anthropic uyumlu endpoint'ler, /v1 içermeyen Anthropic SDK temel URL'sini kullanır; çünkü SDK /v1/messages yolunu ekler.
JavaScript
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api",
});Python
import os
from anthropic import Anthropic
anthropic = Anthropic(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api",
)Responses API'yi Kullanma
Yeni OpenAI uyumlu entegrasyonlar ve ajan tarzı yanıt nesneleri için Responses API'yi kullanın.
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});
const response = await client.responses.create({
model: "gpt-5.6-sol",
input: "Write a one-sentence bedtime story about a unicorn.",
});
console.log(response.output_text);Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api/v1",
)
response = client.responses.create(
model="gpt-5.6-sol",
input="Write a one-sentence bedtime story about a unicorn.",
)
print(response.output_text)Chat Completions Kullanımı
Uygulamanız zaten OpenAI tarzı messages gönderiyorsa Chat Completions kullanın.
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});
const completion = await client.chat.completions.create({
model: "gpt-5.6-sol",
messages: [
{
role: "user",
content: "Give me one sentence about why API compatibility matters.",
},
],
});
console.log(completion.choices[0].message.content);Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api/v1",
)
completion = client.chat.completions.create(
model="gpt-5.6-sol",
messages=[
{
"role": "user",
"content": "Give me one sentence about why API compatibility matters.",
}
],
)
print(completion.choices[0].message.content)Messages Kullanımı
İstemciniz veya ajan çerçeveniz Anthropic uyumlu istek ve yanıt biçimleri bekliyorsa Messages kullanın.
JavaScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 128,
messages: [
{
role: "user",
content: "Summarize the value of direct model APIs in one sentence.",
},
],
});
const text = message.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("");
console.log(text);Python
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ.get("FELO_API_KEY"),
base_url="https://openapi.felo.ai/api",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=128,
messages=[
{
"role": "user",
"content": "Summarize the value of direct model APIs in one sentence.",
}
],
)
text = "".join(block.text for block in message.content if block.type == "text")
print(text)Resmi Belgeler
- OpenAI API Hızlı Başlangıç
- OpenAI Create response
- OpenAI Create chat completion
- Claude Messages API
- Anthropic TypeScript SDK
- Anthropic Python SDK
Ajan istemcisi kurulumu için Claude Code ve Codex Yapılandırması sayfasına bakın.
Protokol Başvurusu
Responses
Bu endpoint'i OpenAI Responses API uyumlu istemciler ve entegrasyonlar için kullanın.
Endpoint
POST https://openapi.felo.ai/api/v1/responsesİstek Gövdesi
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
model | string | Evet | Genel Felo model kimliği |
input | string or array | Evet | Kullanıcı girdisi, çok turlu girdi veya çok kipli girdi |
instructions | string | Hayır | Sistem veya geliştirici talimatları |
stream | boolean | Hayır | Server-Sent Events akışının kullanılıp kullanılmayacağı |
temperature | number | Hayır | Örnekleme sıcaklığı |
max_output_tokens | integer | Hayır | Maksimum çıktı token sayısı |
SDK İsteği
const response = await client.responses.create({
model: "gpt-5.6-sol",
input: "Reply with exactly: responses ok",
});
console.log(response.output_text);Yanıt Metni Yolu
output_textChat Completions
Bu endpoint'i OpenAI Chat Completions uyumlu istemciler ve SDK'lar için kullanın.
Endpoint
POST https://openapi.felo.ai/api/v1/chat/completionsİstek Gövdesi
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
model | string | Evet | Genel Felo model kimliği |
messages | array | Evet | Konuşma mesajları |
messages[].role | string | Evet | system, user veya assistant |
messages[].content | string | Evet | Mesaj içeriği |
stream | boolean | Hayır | Server-Sent Events akışının kullanılıp kullanılmayacağı |
temperature | number | Hayır | Örnekleme sıcaklığı |
max_tokens | integer | Hayır | Maksimum çıktı token sayısı |
SDK İsteği
const completion = await client.chat.completions.create({
model: "gpt-5.6-sol",
messages: [
{
role: "user",
content: "Reply with exactly: chat completions ok",
},
],
});
console.log(completion.choices[0].message.content);Yanıt Metni Yolu
choices[0].message.contentMessages
Bu endpoint'i Anthropic Messages uyumlu istemciler ve SDK'lar için kullanın.
Endpoint
POST https://openapi.felo.ai/api/v1/messagesİstek Gövdesi
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
model | string | Evet | Genel Felo model kimliği |
max_tokens | integer | Evet | Maksimum çıktı token sayısı |
messages | array | Evet | Konuşma mesajları |
messages[].role | string | Evet | user veya assistant |
messages[].content | string or array | Evet | Düz metin veya Anthropic içerik blokları |
system | string | Hayır | Sistem istemi |
stream | boolean | Hayır | Server-Sent Events akışının kullanılıp kullanılmayacağı |
temperature | number | Hayır | Örnekleme sıcaklığı |
SDK İsteği
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 64,
messages: [
{
role: "user",
content: "Reply with exactly: messages ok",
},
],
});
const text = message.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("");
console.log(text);İçerik Bloğu İsteği
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 64,
messages: [
{
role: "user",
content: [
{
type: "text",
text: "Reply with exactly: messages ok",
},
],
},
],
});Yanıt Metni Yolu
content[].textAkış
Server-Sent Events almak için stream değerini true yapın. Olay yükü biçimi seçilen protokolü izler:
- Responses akışları, Responses uyumlu yanıt olayları döndürür.
- Chat Completions akışları, OpenAI uyumlu sohbet tamamlama parçaları döndürür.
- Messages akışları, Anthropic uyumlu mesaj olayları döndürür.
const stream = await client.responses.create({
model: "gpt-5.6-sol",
input: "Write one sentence.",
stream: true,
});İstemciler, üç endpoint arasında paylaşılan tek bir olay şeması beklemek yerine akışı kullandıkları protokole göre ayrıştırmalıdır.
Hatalar
LLM API, mümkün olan her durumda seçilen protokolün hata biçimini döndürür. Yaygın nedenler şunlardır:
| HTTP Durumu | Neden | Önerilen İşlem |
|---|---|---|
400 | Geçersiz JSON gövdesi veya eksik zorunlu protokol alanları | model, messages, input, max_tokens ve içerik bloğu alanlarını kontrol edin |
401 | Eksik veya geçersiz API anahtarı | Authorization: Bearer ... veya X-API-Key değerini doğrulayın |
402 | Hesap kredisinin yetersiz olması | Felo hesap bakiyenizi kontrol edin |
429 | Hız sınırı aşıldı | İstekleri yavaşlatın ve daha sonra yeniden deneyin |
502 | Model hizmeti isteği başarısız oldu | Yeniden deneyin ve destek ekibiyle iletişime geçerken X-Request-Id sağlayın |
503 | Model hizmeti geçici olarak kullanılamıyor | Geri çekilerek yeniden deneyin veya yayımlanmış başka bir model seçin |