Felo API PlatformFelo API Platform

Gateway LLM

Gateway LLM dengan lapisan data bawaan

Tiga URL dasar, satu kunci, satu saldo. Chat, gambar, video, dan model keputusan dengan SDK yang sudah Anda pakai; pencarian, dokumen, dan slide memakai kredit yang sama — mulai sepersepuluh harga resmi penyedia.

  • ⁦10⁩%

    Tarif awal, dibanding harga API resmi penyedia

  • ⁦5,000+⁩

    API dalam katalog yang sama

Gateway biasanya cuma punya satu permukaan. Yang ini punya tiga.

Ketiganya berbagi akun, kunci, dan saldo Anda, tetapi menjawab pertanyaan berbeda dan berada di URL dasar berbeda. Mengetahui mana yang sedang Anda panggil adalah inti persoalannya.

PermukaanURL dasarUntuk apa
API modelopenapi.felo.ai/api/v1 · openapi.felo.ai/apiMemanggil langsung model bahasa, gambar, video, atau keputusan
API dataopenapi.felo.ai/v1/betaMemanggil penyedia data atau pencarian pihak ketiga berdasarkan nama
Felo APIsopenapi.felo.ai/v2Alur kerja milik Felo: pencarian, perkantoran, ekstraksi, pengetahuan

Satu kunci menutup ketiganya. Satu isi ulang membeli kredit layanan dalam dolar, dan panggilan model, panggilan API data, serta alur kerja Felo ditarik dari saldo yang sama — tidak ada akun terpisah per penyedia.

Baca dokumentasi

Enam endpoint, bukan satu

Semua yang ada di bawah /api/v1 adalah panggilan model, tetapi jenis model menentukan endpoint mana yang bisa menjawab — dan setiap endpoint mengembalikan formatnya sendiri.

EndpointProtokolMengembalikan
POST /api/v1/chat/completionsOpenAI Chat CompletionsStream atau satu respons
POST /api/v1/responsesOpenAI ResponsesStream atau satu respons
POST /api/v1/messagesAnthropic MessagesStream atau satu respons
POST /api/v1/images/generationsSelubung gambar OpenAItask_id untuk dipantau
POST /api/v1/videos/generationsSelubung video OpenAItask_id untuk dipantau
POST /api/v1/decisionsSkema keputusan FeloRespons bertipe, tanpa stream

Tiga permukaan chat adalah implementasi asli, bukan lapisan penerjemah: masing-masing mengirim event dalam protokolnya sendiri, jadi Anda mem-parse stream persis seperti sekarang.

Pilih endpoint berdasarkan jenis model, bukan menebak

Setiap model di katalog membawa model_kind, dan jenis itulah yang menentukan endpoint mana yang dapat memanggilnya. Mencarinya gratis: ia membaca katalog lokal.

# 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_kindEndpoint
chatResponses, Chat Completions, atau Messages, sesuai dukungan model
image_generationPOST /api/v1/images/generations
video_generationPOST /api/v1/videos/generations
decisionsPOST /api/v1/decisions

Saring dengan ?provider= untuk melihat satu penyedia saja, atau ?exclude_video_and_decisions=true untuk menyembunyikan semua kecuali chat dan gambar. Tercantum di katalog bukan janji: model video tidak menjawab permintaan chat, dan API mengembalikan model_kind_mismatch.

Rute bawaan, atau header untuk memilih penyedia

Satu model bisa dilayani beberapa kanal hulu, masing-masing dengan penyedia dan tarif terbitnya. Tanpa header, platform memilih satu; dengan X-Felo-Channel, Anda yang memilih.

# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic  # ordered selection, not a retry list
  • Nilainya berupa daftar terurut kode kanal publik dari channels[].code model, divalidasi sesuai urutan yang Anda tulis.
  • Hanya grup penyedia kanal pertama yang dihubungi, dan tarif kanal itulah yang Anda bayar.
  • Tidak ada perpindahan otomatis. Daftar kanal adalah pilihan, bukan kebijakan percobaan ulang — jika satu penyedia gagal, kirim ulang dari aplikasi Anda dengan kanal lain.

X-Felo-Channel berlaku pada enam endpoint pembangkitan di atas. Ia tidak berlaku untuk API data maupun Felo APIs: panggilan itu menuju penyedia yang Anda sebutkan dalam permintaan.

Baca dokumentasi

Berapa biaya satu panggilan sebenarnya

Panggilan model ditagih per token — masukan, keluaran, dan cache — dengan pengali diskon kanal. Tarif ditampilkan per juta token agar mudah dibaca, tetapi penagihan memakai presisi per token dari snapshot harga terkini: permintaan pendek tidak pernah dibulatkan ke satu juta.

  • Tarif cache hanya berlaku bila respons protokol melaporkan pemakaian cache; model yang tidak melaporkannya menagih semuanya di tarif masukan.
  • Pencarian web yang dijalankan dan dilaporkan layanan model berbiaya $0.01 per pencarian.
  • Sebagian model bertingkat menurut ukuran prompt: Claude Haiku 5.5 berbiaya $0.10 masukan dan $0.50 keluaran per juta token sampai prompt 100K token, di atas itu $0.50 dan $2.50 untuk seluruh permintaan.
  • Isi ulang pertama $1. Tanpa langganan, tanpa biaya per pengguna, tanpa komitmen minimum — kunci yang tidak dipakai tidak berbiaya.

Panggilan API data dan alur kerja Felo juga ditarik dari saldo yang sama, masing-masing menurut dasar terbitnya: per permintaan berhasil, per item yang dikembalikan, atau menurut pemakaian nyata.

Lihat tarif dan kredit

Dua batas yang tampak sama tetapi tidak

Saldo habis mengembalikan 402 INSUFFICIENT_CREDITS. Memanggil terlalu cepat mengembalikan 429 RATE_LIMITED. Menunggu menyelesaikan yang kedua dan tidak pernah yang pertama.

StatusKodeYang perlu dilakukan
401UNAUTHORIZEDPerbaiki atau buat ulang kuncinya
402INSUFFICIENT_CREDITSIsi ulang di penagihan konsol, lalu kirim ulang
404bergantung pada endpointPeriksa ID model, ID tugas, atau rutenya
429RATE_LIMITEDTunggu Retry-After, lalu coba lagi
5xxCHAT_FAILED, SERVICE_UNAVAILABLECoba lagi dengan backoff eksponensial dan jitter

Saat ini hanya /v2/chat yang mendokumentasikan batas keras. Panggilan model juga bisa dibatasi di hulu, dan itu tampil sebagai 429 — bacalah X-RateLimit-* dan Retry-After, jangan menulis angkanya langsung di kode. Setiap respons membawa request_id, dan header X-Request-Id yang Anda kirim dikembalikan apa adanya, sehingga log Anda dan log kami bisa dicocokkan.

Baca dokumentasi

Gambar dan video selesai di latar belakang

Kedua endpoint pembangkitan mengembalikan task_id, bukan hasil. Kirim, pantau, ambil — dan perhatikan: setelah tugas dibuat, sebagian besar kegagalan datang sebagai 200 dengan status akhir, bukan sebagai galat 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

Baca status sebelum hasil: failed dan interrupted juga respons, dan error.message menjelaskan sebabnya. 402 saat mengirim berarti tugasnya tidak pernah dibuat. SuperAgent berbeda: ia mengembalikan stream_key dan mendorong event lewat SSE, jadi tidak ada yang perlu dipantau.

Baca dokumentasi

Ganti URL dasar, pertahankan klien

Kedua SDK berjalan tanpa perubahan begitu URL dasar diarahkan ke sini. npx feloapi-cli setup menulis konfigurasi yang sama untuk Claude Code dan 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 model tidak sama antarpenyedia. Pilih dari katalog sebelum mengubah URL dasar, kalau tidak panggilan pertama akan menjawab 404.

Separuh yang biasanya ditinggalkan gateway kepada Anda

Gateway LLM merutekan panggilan model. Di sini kunci yang sama juga menjangkau katalog API berisi ⁦5,000+⁩ — jadi langkah pencarian agen Anda, slide yang dibuatnya, dan dokumen yang dibacanya ulang ditagih ke kredit yang sama, bukan ke tiga penyedia tambahan.

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

Panggilan API data menuju penyedia bernama di bawah /v1/beta — Tavily, Exa, Apollo, dan sisanya — masing-masing dengan dasar terbitnya sendiri.

Jelajahi semua API

Di mana gateway berhenti

  • Tidak ada perpindahan otomatis antarkanal — logika percobaan ulang ada di aplikasi Anda, dan itu disengaja.
  • Tercantum di katalog tidak menjamin kompatibilitas; setiap jenis model hanya punya satu permukaan panggilan.
  • Tidak ada batas laju tingkat platform yang terdokumentasi untuk panggilan model, tetapi batas penyedia hulu tetap berlaku.
  • Kredit bersifat prabayar, tidak dapat dikembalikan, dan tidak dapat ditarik — isi ulang sejumlah yang Anda perkirakan akan dipakai.

Enam pertanyaan tentang gateway LLM

Apa itu gateway LLM?

Satu titik masuk di depan banyak penyedia model, sehingga kode Anda berbicara dengan satu URL dasar, satu kunci, dan satu saldo, bukan selusin SDK. Gateway AI melakukan hal yang sama; yang ini juga menjual API data yang dibutuhkan sebuah agen.

Bisakah saya tetap memakai SDK OpenAI atau Anthropic?

Bisa. Chat Completions dan Responses berbentuk OpenAI, dan Messages asli. URL dasarnya https://openapi.felo.ai/api/v1 dan https://openapi.felo.ai/api — satu tingkat di atasnya, karena SDK itu menambahkan /v1/messages sendiri.

Bagaimana tahu model mana yang harus dipanggil?

GET /api/v1/models mendaftar semua jenis beserta kanal dan tarifnya; model video dan keputusan punya daftar sendiri. Baca model_kind lalu panggil endpoint yang sesuai. Tercantum di daftar tidak berarti semua endpoint menerima model itu.

Apakah ada perpindahan bila penyedia mati?

Tidak, dan itu disengaja. Daftar kanal adalah pilihan, bukan kebijakan percobaan ulang: hanya kanal pertama yang dihubungi. Perpindahan adalah urusan aplikasi Anda, karena di sanalah terlihat galat, anggaran, dan cadangan yang benar-benar Anda inginkan.

Berapa biayanya?

Setiap model punya tarif Felo yang mulai dari sepersepuluh harga resmi penyedia, dan kanal yang Anda tetapkan menentukan tarif yang dibayar. Prabayar, ditagih per panggilan, isi ulang pertama $1, tanpa langganan.

Bisakah saya juga memanggil gambar, video, dan API data?

Bisa. Satu kunci menjangkau model chat, gambar, video, dan keputusan serta katalog API berisi ⁦5,000+⁩ di balik /v1/beta — semuanya ditagihkan ke kredit yang sama.

Coba dengan satu panggilan

Buat kunci, isi ulang, dan arahkan SDK yang sudah Anda pakai ke URL dasar.