Felo API PlatformFelo API Platform

Felo APIs

LLM API

Felo model endpoint'lerini OpenAI ve Anthropic uyumlu protokollerle çağırın.

GET/api/v1/models

Kimlik 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 uyumlu
  • POST /api/v1/chat/completions: OpenAI Chat Completions uyumlu
  • POST /api/v1/messages: Anthropic Messages uyumlu

Decisions API

POST https://openapi.felo.ai/api/v1/decisions

Durum 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.13
  • state: Değerlendirilecek bağlam; bir dize veya JSON değeri.
  • questions: type, instructions ve criteria kullanan 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_KEY
X-API-Key: YOUR_API_KEY

API 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.ai

SDK 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ıkZorunluAçıklama
AuthorizationX-API-Key kullanılmadığı sürece evetBearer YOUR_API_KEY biçimindeki API anahtarı
X-API-KeyAuthorization kullanılmadığı sürece evetBearer başlığına alternatif API anahtarı
Content-TypeEvetapplication/json olmalıdır
X-Request-IdHayırSorun 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:

EndpointModel kategorileri
GET /api/v1/modelsTüm kategoriler (değişmedi)
GET /api/v1/videos/modelsVideo üretimi (video_generation)
GET /api/v1/decisions/modelsJev 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ğiBağlamMaks. çıktıGirdi / 1M tokenÇıktı / 1M tokenÖnbellek okuma / 1M tokenÖnbellek yazma / 1M token
claude-haiku-4-5200K64K$1.00$5.00$0.10$1.25
claude-sonnet-4-61M128K$3.00$15.00$0.30$3.75
claude-opus-4-81M128K$5.00$25.00$0.50$6.25
claude-sonnet-51M128K$2.00$10.00$0.20$2.50
claude-haiku-5-51M128K$0.10$0.50$0.01$0.0125
gpt-5.51.05M128K$5.00$30.00$0.50-
gpt-5.5-pro1.05M128K$30.00$180.00--
gpt-5.6-luna1.05M128K$1.00$6.00$0.10$1.25
gpt-5.6-terra1.05M128K$2.50$15.00$0.25$3.125
gpt-5.6-sol1.05M128K$5.00$30.00$0.50$6.25
grok-4.5500K-$2.00$6.00$0.50-
deepseek-v4-flash1M384K$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 openai

Anthropic 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

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

ParametreTürZorunluAçıklama
modelstringEvetGenel Felo model kimliği
inputstring or arrayEvetKullanıcı girdisi, çok turlu girdi veya çok kipli girdi
instructionsstringHayırSistem veya geliştirici talimatları
streambooleanHayırServer-Sent Events akışının kullanılıp kullanılmayacağı
temperaturenumberHayırÖrnekleme sıcaklığı
max_output_tokensintegerHayırMaksimum çı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_text

Chat 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

ParametreTürZorunluAçıklama
modelstringEvetGenel Felo model kimliği
messagesarrayEvetKonuşma mesajları
messages[].rolestringEvetsystem, user veya assistant
messages[].contentstringEvetMesaj içeriği
streambooleanHayırServer-Sent Events akışının kullanılıp kullanılmayacağı
temperaturenumberHayırÖrnekleme sıcaklığı
max_tokensintegerHayırMaksimum çı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.content

Messages

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

ParametreTürZorunluAçıklama
modelstringEvetGenel Felo model kimliği
max_tokensintegerEvetMaksimum çıktı token sayısı
messagesarrayEvetKonuşma mesajları
messages[].rolestringEvetuser veya assistant
messages[].contentstring or arrayEvetDüz metin veya Anthropic içerik blokları
systemstringHayırSistem istemi
streambooleanHayırServer-Sent Events akışının kullanılıp kullanılmayacağı
temperaturenumberHayı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[].text

Akış

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 DurumuNedenÖnerilen İşlem
400Geçersiz JSON gövdesi veya eksik zorunlu protokol alanlarımodel, messages, input, max_tokens ve içerik bloğu alanlarını kontrol edin
401Eksik veya geçersiz API anahtarıAuthorization: Bearer ... veya X-API-Key değerini doğrulayın
402Hesap kredisinin yetersiz olmasıFelo hesap bakiyenizi kontrol edin
429Hız sınırı aşıldıİstekleri yavaşlatın ve daha sonra yeniden deneyin
502Model hizmeti isteği başarısız olduYeniden deneyin ve destek ekibiyle iletişime geçerken X-Request-Id sağlayın
503Model hizmeti geçici olarak kullanılamıyorGeri çekilerek yeniden deneyin veya yayımlanmış başka bir model seçin