Felo API PlatformFelo API Platform

LLM-шлюз

LLM-шлюз зі вбудованим шаром даних

Три базові URL, один ключ, один баланс. Чат, зображення, відео й вирішальні моделі — на вашому поточному SDK; пошук, документи й слайди — з того самого балансу, від десятої частини офіційної ціни постачальника.

  • ⁦10⁩%

    Стартова ставка щодо офіційної ціни API постачальника

  • ⁦5,000+⁩

    API у тому самому каталозі

У шлюзу зазвичай одна поверхня. Тут їх три.

У них спільний акаунт, ключ і баланс, але вони відповідають на різні питання й живуть за різними базовими URL. Зрозуміти, яку саме ви викликаєте, — це і є вся суть.

ПоверхняБазовий URLДля чого
Модельний APIopenapi.felo.ai/api/v1 · openapi.felo.ai/apiПрямий виклик мовної, графічної, відео- або вирішальної моделі
API данихopenapi.felo.ai/v1/betaВиклик указаного стороннього постачальника даних або пошуку
Felo APIsopenapi.felo.ai/v2Власні процеси Felo: пошук, офіс, вилучення, знання

Один ключ покриває всі три. Поповнення купує сервісні кредити в доларах США, і виклик моделі, виклик API даних та процес Felo списуються з одного й того самого — окремий акаунт на кожного постачальника не потрібен.

Читати документацію

Шість ендпоінтів, а не один

Усе під /api/v1 — це виклик моделі, але вид моделі визначає, який ендпоінт може відповісти; і кожен ендпоінт повертає свій формат.

ЕндпоінтПротоколПовертає
POST /api/v1/chat/completionsOpenAI Chat CompletionsПотік або одна відповідь
POST /api/v1/responsesOpenAI ResponsesПотік або одна відповідь
POST /api/v1/messagesAnthropic MessagesПотік або одна відповідь
POST /api/v1/images/generationsКонверт зображень OpenAItask_id для опитування
POST /api/v1/videos/generationsКонверт відео OpenAItask_id для опитування
POST /api/v1/decisionsСхема рішень FeloТипізовані відповіді, без потоку

Три чат-поверхні — нативні реалізації, а не шар трансляції: кожна віддає події у своєму протоколі, тож потік розбирається так само, як зараз.

Ендпоінт обирають за видом моделі, а не навмання

Кожна модель у каталозі має model_kind, і вид визначає, який ендпоінт може її викликати. Виявлення безкоштовне: читається локальний каталог.

# discover before you call — free, reads the catalog
GET /api/v1/models   # every kind, with channels and rates
GET /api/v1/models/{model_id}  # one model, in detail
GET /api/v1/videos/models     # video_generation only
GET /api/v1/decisions/models  # decisions only
model_kindЕндпоінт
chatResponses, Chat Completions або Messages — що підтримує модель
image_generationPOST /api/v1/images/generations
video_generationPOST /api/v1/videos/generations
decisionsPOST /api/v1/decisions

Фільтр ?provider= лишає одного постачальника, ?exclude_video_and_decisions=true — тільки чат і зображення. Наявність у каталозі не обіцянка: відеомодель не відповість на чат-запит, а API поверне model_kind_mismatch.

Маршрут за замовчуванням або один заголовок для вибору постачальника

Одну модель можуть віддавати кілька вищих каналів, у кожного свій постачальник і опублікована ставка. Без заголовка платформа обере канал сама; з X-Felo-Channel обираєте ви.

# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic  # ordered selection, not a retry list
  • Значення — упорядкований список публічних кодів каналів з channels[].code моделі, що перевіряється в тому порядку, у якому ви його записали.
  • Надсилається лише група постачальника першого каналу, і платите ви за ставкою цього каналу.
  • Автоматичного перемикання немає. Список каналів — це вибір, а не політика повторів: якщо постачальник відмовив, повторіть зі свого застосунку з іншим каналом.

X-Felo-Channel працює на всіх шести ендпоінтах генерації вище. На API даних і Felo APIs він не діє: там запит іде до постачальника, вказаного в самому запиті.

Читати документацію

Скільки насправді коштує виклик

Виклик моделі тарифікується за токенами — вхід, вихід, кеш — із множником знижки каналу. Ставки публікуються за 1 млн токенів для читабельності, але тарифікація йде з точністю до токена за поточним знімком цін, тож короткий запит не округлюється до мільйона.

  • Ставки кешу застосовуються лише коли відповідь протоколу повідомляє про використання кешу; модель без такої звітності тарифікується повністю за вхідною ставкою.
  • Вебпошук, який модельний сервіс справді виконав і відзвітував, коштує $0.01 за пошук.
  • Деякі моделі тарифікуються ступенями за розміром промпту: Claude Haiku 5.5 коштує $0.10 на вході й $0.50 на виході за 1 млн токенів до промпту в 100K токенів, а вище — $0.50 і $2.50 за весь запит.
  • Перше поповнення — від $1. Ні підписки, ні плати за робоче місце, ні мінімальних зобовʼязань: ключ, що простоює, нічого не коштує.

Виклики API даних і процеси Felo списуються з того самого балансу, кожен за своєю опублікованою базою: за успішний запит, за повернутий елемент або за фактичні витрати.

Ставки та кредити

Два обмеження, схожі зовні й цілком різні

Скінчилися кредити — 402 INSUFFICIENT_CREDITS. Занадто часті виклики — 429 RATE_LIMITED. Очікування знімає друге і ніколи не знімає перше.

СтатусКодЩо робити
401UNAUTHORIZEDВиправити або перевипустити ключ
402INSUFFICIENT_CREDITSПоповнити в розділі оплати консолі й повторити
404залежить від ендпоінтаПеревірити ID моделі, задачі або маршруту
429RATE_LIMITEDДочекатися Retry-After і повторити
5xxCHAT_FAILED, SERVICE_UNAVAILABLEПовторити з експоненційною затримкою та джиттером

Сьогодні документовані жорсткі ліміти є лише в /v2/chat. Виклики моделей теж можуть обмежуватися на боці апстріму, і це проявляється як 429 — читайте X-RateLimit-* і Retry-After, а не вшивайте числа. У кожній відповіді є request_id, а надісланий вами X-Request-Id повертається назад, тож логи збігаються.

Читати документацію

Зображення й відео добудовуються у фоні

Обидва ендпоінти генерації повертають task_id замість результату. Надіслати, опитати, забрати — і врахуйте: після створення задачі більшість відмов приходить як 200 із термінальним статусом, а не як HTTP-помилка.

# submit, then poll the task
POST /api/v1/images/generations       → task_id
GET  /api/v1/images/generations/{id}  → status, result
POST /api/v1/videos/generations       → task_id
GET  /api/v1/videos/generations/{id}  → status, result

Спершу статус, потім результат: failed і interrupted — теж відповіді, причина в error.message. Якщо 402 прийшов під час надсилання, задача не створювалася. SuperAgent працює інакше — віддає stream_key і надсилає події через SSE, опитувати нічого.

Читати документацію

Змініть базовий URL — клієнт лишається

Обом SDK достатньо вказати цей базовий URL, код змінювати не потрібно. npx feloapi-cli setup запише ту саму конфігурацію для Claude Code і Codex.

# OpenAI SDK
base_url = "https://openapi.felo.ai/api/v1"

# Anthropic SDK — one level up; the SDK appends /v1/messages
base_url = "https://openapi.felo.ai/api"

# pin a provider (optional)
default_headers = {"X-Felo-Channel": "claude-cc"}

ID моделей у різних постачальників не збігаються. Оберіть модель у каталозі до того, як перемкнете базовий URL, інакше перший же виклик поверне 404.

Та половина, яку шлюз зазвичай лишає вам

LLM-шлюз маршрутизує виклики моделей. Тут той самий ключ дістає до каталогу на ⁦5,000+⁩ API — тож крок пошуку у вашому агенті, створені ним слайди й прочитаний ним документ списуються з одних і тих самих кредитів, а не ще з трьох постачальників.

  • Search
  • PPT Task
  • SuperAgent
  • Web Fetch
  • X Search
  • Mindmap
  • Landing Page Task
  • LiveDoc
  • YouTube Subtitling

Виклики API даних ідуть під /v1/beta до іменованих постачальників — Tavily, Exa, Apollo та решти з каталогу — кожен за своєю опублікованою базою.

Усі API

Де шлюз закінчується

  • Автоматичного перемикання між каналами немає — повтори лишаються на вашому застосунку, і це свідомо.
  • Наявність у каталозі не гарантує сумісності: у кожного виду моделі одна поверхня виклику.
  • Документованого ліміту запитів на виклики моделей немає, але ліміт вищого постачальника діє.
  • Кредити передплатні, неповоротні й не виводяться — поповнюйте на суму, яку збираєтеся витратити.

Шість питань про LLM-шлюз

Що таке LLM-шлюз?

Один ендпоінт перед багатьма постачальниками моделей: код звертається до одного базового URL, одного ключа й одного балансу замість дюжини SDK різних вендорів. AI-шлюз робить те саме; цей ще й продає API даних, потрібні агенту.

Чи можна лишити свій OpenAI або Anthropic SDK?

Так. Chat Completions і Responses мають форму OpenAI, Messages — нативний. Базові URL: https://openapi.felo.ai/api/v1 і https://openapi.felo.ai/api — на рівень вище, бо цей SDK сам дописує /v1/messages.

Як зрозуміти, яку модель викликати?

GET /api/v1/models перелічує всі види з каналами й ставками; у відео- й вирішальних моделей свої списки. Дивіться model_kind і викликайте відповідний ендпоінт. Наявність у списку не означає, що модель приймає кожен ендпоінт.

Чи є перемикання, коли постачальник не відповідає?

Ні, і це свідомо. Список каналів — це вибір, а не політика повторів: надсилається лише перший. Перемикання має жити у вашому застосунку, де видно помилку, бюджет і той запасний варіант, який вам справді потрібен.

Скільки це коштує?

Кожна модель має ставку Felo, що починається від десятої частини офіційної ціни постачальника, а платите ви за ставкою обраного каналу. Передплата, оплата за виклик, перше поповнення від $1, без підписки.

Чи можна викликати зображення, відео й API даних?

Так. Один ключ дістає до чат-, графічних, відео- й вирішальних моделей і каталогу на ⁦5,000+⁩ API за /v1/beta — усе списується з одного балансу.

Спробуйте на одному виклику

Створіть ключ, поповніть баланс і спрямуйте свій поточний SDK на один базовий URL.