Felo API PlatformFelo API Platform

Felo APIs

LLM API

Volejte endpointy modelů Felo přes protokoly kompatibilní s OpenAI a Anthropic.

GET/api/v1/models

Ověřování

Bearer API key or X-API-Key

Typ obsahu

application/json

Poznámky k limitům

Model service limits may apply. Retry with backoff on 429 or 503.

LLM API zpřístupňuje endpointy pro přímé volání modelů prostřednictvím Felo API Platform. Použijte ho, když chcete volat univerzální jazykové modely, znovu použít klienty kompatibilní s OpenAI nebo Anthropic, nebo připojit agentní frameworky k Felo API Platform.

LLM API v současnosti obsahuje tři plochy pro volání modelů kompatibilní s chatem:

  • POST /api/v1/responses: kompatibilní s OpenAI Responses
  • POST /api/v1/chat/completions: kompatibilní s OpenAI Chat Completions
  • POST /api/v1/messages: kompatibilní s Anthropic Messages

Decisions API

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

Posílejte stav a úzce typované otázky modelu jev-1.13 (přijímáno je také typesafe/jev-1.13). Použijte /api/v1/decisions, nikoli endpointy Chat Completions, Messages nebo Responses. Streamování není podporováno.

Pole požadavku

  • model: jev-1.13
  • state: Kontext k vyhodnocení; řetězec nebo hodnota JSON.
  • questions: Pojmenované otázky pomocí type, instructions a criteria.
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"])

Typy odpovědí

noul: pravděpodobnost od 0 do 1. choice: vybraná možnost a její rozdělení pravděpodobnosti. score: číselné skóre pro uspořádaná kritéria spolu s jeho rozdělením.

Chyby používají error.code (číselný stav HTTP) a error.message. Než začnete číst answers, ošetřete odpovědi, které nejsou 2xx.

Využití a ceny

Odpověď obsahuje usage.input_tokens, usage.output_tokens a může obsahovat usage.cost. Referenční sazby ověřené 2026-10-12: vstup USD 0.042 za milion tokenů; výstup USD 0. Nulová sazba za výstup neznamená, že je využití vstupu zdarma. Sazby se mohou změnit; pro odhady použijte zveřejněnou cenu modelu a příslušné slevy účtu.

Ověřování

Požadavky na LLM API vyžadují klíč Felo API Platform. Použijte buď Authorization: Bearer ..., nebo X-API-Key.

Authorization: Bearer YOUR_API_KEY
X-API-Key: YOUR_API_KEY

Podrobnosti o vytváření a správě API klíčů najdete v příručce k ověřování.

Základní URL

Použijte veřejný hostitel Felo API Platform:

https://openapi.felo.ai

U klientů SDK nakonfigurujte základní URL specifickou pro protokol, jak je uvedeno v části Základní použití.

Společné hlavičky

HlavičkaPovinnéPopis
AuthorizationAno, pokud se nepoužívá X-API-KeyAPI klíč ve formátu Bearer YOUR_API_KEY
X-API-KeyAno, pokud se nepoužívá AuthorizationAlternativa API klíče k hlavičce Bearer
Content-TypeAnoMusí být application/json
X-Request-IdNeVolitelné ID požadavku pro řešení problémů

Objevování modelů

Obecný katalog zahrnuje všechny kategorie modelů. Pro objevení video modelů nebo rozhodovacích modelů použijte vyhrazené seznamy:

EndpointKategorie modelů
GET /api/v1/modelsVšechny kategorie (beze změny)
GET /api/v1/videos/modelsGenerování videa (video_generation)
GET /api/v1/decisions/modelsDecisions, včetně Jev (decisions)

Všechny tři endpointy přijímají volitelný parametr dotazu provider (například openrouter) a vracejí {"object":"list","data":[...]}. Každá položka obsahuje id, object, created, owned_by a model_kind. Vyhrazené seznamy používají efektivní kategorii po uplatnění překryvů mapování povolených poskytovatelů.

Vracejí se pouze povolené, uvedené a nesmazané modely s aktuálními cenami odpovídajícími podmínkám poskytovatele; nulová cena je platná. Nově synchronizované modely jsou skryté, dokud je správce neuvede. Všechny seznamy sdílejí nakonfigurované řazení, přičemž název modelu a ID slouží jako rozhodující kritéria. Pokud nic neodpovídá, vrací se HTTP 200 s prázdným polem data. Objevování čte místní katalog a nevyvolává ani neúčtuje volání modelu.

Pouze GET /api/v1/models přijímá exclude_video_and_decisions (boolean, výchozí false). Nastavte ho na true, chcete-li vyloučit efektivní typy video_generation a decisions; obrazové modely zůstávají zahrnuty. Lze jej kombinovat s provider. Vynechání nebo nastavení na false zachová celý katalog. Neplatné booleovské hodnoty vracejí HTTP 422.

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}"

Endpoint volání zvolte podle model_kind: chat pro Responses, Chat Completions nebo Messages podle toho, co model podporuje; video_generation pro POST /api/v1/videos/generations; decisions pro POST /api/v1/decisions; image_generation pro POST /api/v1/images/generations. Podrobnosti zůstávají na GET /api/v1/models/{model_id}. Uvedený model nemusí být nutně kompatibilní s každým endpointem volání.

Obrazové modely nemají vyhrazený endpoint seznamu. Filtrujte GET /api/v1/models podle model_kind: "image_generation". Pole požadavku pro obrázky najdete v části Generování obrázků.

Modely a ceny

Požadavky používají výchozí kanál modelu, pokud jeden neurčíte pomocí X-Felo-Channel. Předejte uspořádaný seznam veřejných kódů kanálů oddělených čárkami z katalogu modelů; vynecháním hlavičky použijete výchozí kanál. Hodnotu default používejte pouze samostatně. Odesílá se pouze skupina poskytovatele prvního kanálu; neexistuje automatický fallback. Viz Kanály a směrování poskytovatelů.

Ceny jsou uvedeny v USD. Sazby za tokeny jsou pro přehlednost uvedeny za 1 milion tokenů; účtování používá přesnost na úrovni jednotlivých tokenů z aktuálního snímku cen. Sazby mezipaměti platí pouze tehdy, když odpověď protokolu obsahuje využití mezipaměti. Pomlčka znamená, že neexistuje samostatně zveřejněná sazba ani zveřejněný limit. Využití webového vyhledávání, pokud je hlášeno službou modelu, se účtuje ve výši $0.01 za vyhledávání.

ID modeluKontextMax. výstupVstup / 1M tokenůVýstup / 1M tokenůČtení mezipaměti / 1M tokenůZápis do mezipaměti / 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 používá odstupňované ceny: prompty do 100K tokenů se účtují podle standardních sazeb výše a požadavky, jejichž prompt přesahuje 100K tokenů, se za celý požadavek účtují sazbou $0.50 za vstup, $2.50 za výstup, $0.05 za čtení mezipaměti a $0.0625 za zápis do mezipaměti za 1M tokenů.

GPT-5.6 je k dispozici ve třech úrovních: Luna pro rychlé a nákladově efektivní úlohy; Terra pro vyvážené úlohy kódování, uvažování a agentních úloh; a Sol pro špičkové složité uvažování a kódování. Každá úroveň navíc nabízí ID modelu s příponou -pro (gpt-5.6-luna-pro, gpt-5.6-terra-pro a gpt-5.6-sol-pro), které používá stejný základní model s režimem pro uvažování. Ceny, délka kontextu a maximální výstup zůstávají u ID s příponou -pro nezměněné.

DeepSeek V4 Flash podporuje režimy s uvažováním i bez něj, výstup JSON, volání nástrojů, Responses API a kompatibilitu s Anthropic API. Je dostupný prostřednictvím ploch Responses, Chat Completions a Messages od Felo. Ceny za zápis do mezipaměti zatím nejsou zveřejněny.

Základní použití

Tyto příklady používají oficiální sady SDK OpenAI a Anthropic. Před spuštěním příkladů nastavte FELO_API_KEY na svůj klíč Felo API Platform.

export FELO_API_KEY="YOUR_API_KEY"

Instalace sad SDK

OpenAI SDK

Použijte OpenAI SDK pro Responses API a Chat Completions API.

##### JavaScript

npm install openai

##### Python

pip install openai

Anthropic SDK

Použijte Anthropic SDK pro Messages API.

##### JavaScript

npm install @anthropic-ai/sdk

##### Python

pip install anthropic

Konfigurace klientů

Endpointy kompatibilní s OpenAI používají základní URL OpenAI SDK s /api/v1, protože SDK připojuje cesty prostředků, jako jsou /responses a /chat/completions.

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",
)

Endpointy kompatibilní s Anthropic používají základní URL Anthropic SDK bez /v1, protože SDK připojuje /v1/messages.

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",
)

Použití Responses API

Použijte Responses API pro nové integrace kompatibilní s OpenAI a objekty odpovědí ve stylu agentů.

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)

Použití Chat Completions

Použijte Chat Completions, když vaše aplikace už posílá messages ve stylu OpenAI.

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)

Použití Messages

Použijte Messages, když váš klient nebo agentní framework očekává tvary požadavků a odpovědí kompatibilní s Anthropic.

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)

Oficiální dokumentace

Nastavení klientských agentů najdete v části Konfigurace Claude Code a Codex.

Reference protokolů

Responses

Tento endpoint použijte pro klienty a integrace kompatibilní s OpenAI Responses API.

Endpoint

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

Tělo požadavku

ParametrTypPovinnéPopis
modelstringAnoVeřejné ID modelu Felo
inputstring nebo arrayAnoVstup uživatele, vstup pro více kol nebo multimodální vstup
instructionsstringNeSystémové nebo vývojářské instrukce
streambooleanNeZda použít streamování Server-Sent Events
temperaturenumberNeTeplota vzorkování
max_output_tokensintegerNeMaximální počet výstupních tokenů

Požadavek SDK

const response = await client.responses.create({
  model: "gpt-5.6-sol",
  input: "Reply with exactly: responses ok",
});

console.log(response.output_text);

Cesta k textu odpovědi

output_text

Chat Completions

Tento endpoint použijte pro klienty a sady SDK kompatibilní s OpenAI Chat Completions.

Endpoint

POST https://openapi.felo.ai/api/v1/chat/completions

Tělo požadavku

ParametrTypPovinnéPopis
modelstringAnoVeřejné ID modelu Felo
messagesarrayAnoZprávy konverzace
messages[].rolestringAnosystem, user nebo assistant
messages[].contentstringAnoObsah zprávy
streambooleanNeZda použít streamování Server-Sent Events
temperaturenumberNeTeplota vzorkování
max_tokensintegerNeMaximální počet výstupních tokenů

Požadavek SDK

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);

Cesta k textu odpovědi

choices[0].message.content

Messages

Tento endpoint použijte pro klienty a sady SDK kompatibilní s Anthropic Messages.

Endpoint

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

Tělo požadavku

ParametrTypPovinnéPopis
modelstringAnoVeřejné ID modelu Felo
max_tokensintegerAnoMaximální počet výstupních tokenů
messagesarrayAnoZprávy konverzace
messages[].rolestringAnouser nebo assistant
messages[].contentstring nebo arrayAnoProstý text nebo obsahové bloky Anthropic
systemstringNeSystémový prompt
streambooleanNeZda použít streamování Server-Sent Events
temperaturenumberNeTeplota vzorkování

Požadavek SDK

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);

Požadavek s obsahovými bloky

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",
        },
      ],
    },
  ],
});

Cesta k textu odpovědi

content[].text

Streamování

Nastavte stream na true, chcete-li přijímat Server-Sent Events. Formát datové části událostí odpovídá zvolenému protokolu:

  • Streamy Responses vracejí události odpovědí kompatibilní s Responses.
  • Streamy Chat Completions vracejí části dokončení chatu kompatibilní s OpenAI.
  • Streamy Messages vracejí události zpráv kompatibilní s Anthropic.
const stream = await client.responses.create({
  model: "gpt-5.6-sol",
  input: "Write one sentence.",
  stream: true,
});

Klienti by měli stream parsovat podle protokolu, který používají, místo aby očekávali jedno společné schéma událostí pro všechny tři endpointy.

Chyby

LLM API vrací tvar chyby zvoleného protokolu, kdykoli je to možné. Mezi běžné příčiny patří:

Stav HTTPPříčinaDoporučená akce
400Neplatné tělo JSON nebo chybějící povinná pole protokoluZkontrolujte model, messages, input, max_tokens a pole obsahových bloků
401Chybějící nebo neplatný API klíčOvěřte Authorization: Bearer ... nebo X-API-Key
402Nedostatek kreditů na účtuZkontrolujte zůstatek svého účtu Felo
429Překročen limit rychlostiZpomalte požadavky a zkuste to později znovu
502Požadavek na službu modelu selhalZkuste to znovu a při kontaktu s podporou uveďte X-Request-Id
503Služba modelu je dočasně nedostupnáZkuste to znovu s exponenciálním zpožděním nebo zvolte jiný zveřejněný model