Passerelle LLM
Une passerelle LLM avec la couche de données intégrée
Trois URL de base, une clé, un solde. Chat, image, vidéo et modèles de décision avec le SDK que vous utilisez déjà ; recherche, documents et diapositives sur les mêmes crédits — à partir d'un dixième du prix officiel du fournisseur.
10%
Tarif de départ, face au prix officiel de l'API du fournisseur
5,000+
API dans le même catalogue
Une passerelle n'a généralement qu'une surface. Celle-ci en a trois.
Elles partagent votre compte, votre clé et votre solde, mais répondent à des questions différentes et vivent à des URL de base différentes. Savoir laquelle vous appelez, c'est tout l'enjeu.
| Surface | URL de base | Pour quoi faire |
|---|---|---|
| API de modèles | openapi.felo.ai/api/v1 · openapi.felo.ai/api | Appeler directement un modèle de langage, d'image, de vidéo ou de décision |
| API de données | openapi.felo.ai/v1/beta | Appeler un fournisseur tiers de données ou de recherche nommé |
| Felo APIs | openapi.felo.ai/v2 | Workflows propres à Felo : recherche, bureautique, extraction, connaissances |
Une clé couvre les trois. Une recharge achète des crédits de service en dollars, et l'appel de modèle, l'appel d'API de données et le workflow Felo sont débités du même solde — pas de compte séparé par fournisseur.
Lire la documentationSix points de terminaison, pas un
Tout ce qui est sous /api/v1 est un appel de modèle, mais le type de modèle détermine quel point de terminaison peut répondre — et chacun renvoie son propre format.
| Point de terminaison | Protocole | Renvoie |
|---|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions | Flux ou une réponse |
POST /api/v1/responses | OpenAI Responses | Flux ou une réponse |
POST /api/v1/messages | Anthropic Messages | Flux ou une réponse |
POST /api/v1/images/generations | Enveloppe image d'OpenAI | Un task_id à interroger |
POST /api/v1/videos/generations | Enveloppe vidéo d'OpenAI | Un task_id à interroger |
POST /api/v1/decisions | Schéma de décision Felo | Réponses typées, sans flux |
Les trois surfaces de chat sont des implémentations natives, pas une couche de traduction : chacune diffuse ses événements dans son propre protocole, vous analysez donc le flux exactement comme aujourd'hui.
Choisir le point de terminaison par type de modèle, pas au hasard
Chaque modèle du catalogue porte un model_kind, et le type détermine quel point de terminaison peut l'appeler. La découverte est gratuite : elle lit le catalogue local.
# 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 | Point de terminaison |
|---|---|
chat | Responses, Chat Completions ou Messages, selon ce que le modèle prend en charge |
image_generation | POST /api/v1/images/generations |
video_generation | POST /api/v1/videos/generations |
decisions | POST /api/v1/decisions |
Filtrez avec ?provider= pour ne voir qu'un fournisseur, ou ?exclude_video_and_decisions=true pour masquer tout sauf le chat et l'image. Figurer au catalogue n'est pas une promesse : un modèle vidéo ne répond pas à une requête de chat, et l'API renvoie model_kind_mismatch.
Route par défaut, ou un en-tête pour choisir le fournisseur
Un modèle peut être servi par plusieurs canaux en amont, chacun avec son fournisseur et son tarif publié. Sans l'en-tête, la plateforme en choisit un ; avec X-Felo-Channel, c'est vous.
# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic # ordered selection, not a retry list- La valeur est une liste ordonnée de codes de canal publics tirés de
channels[].codedu modèle, validée dans l'ordre où vous l'écrivez. - Seul le groupe de fournisseurs du premier canal est soumis, et c'est le tarif de ce canal que vous payez.
- Il n'y a pas de bascule automatique. Une liste de canaux est une sélection, pas une politique de nouvelle tentative — si un fournisseur échoue, renvoyez depuis votre application avec un autre canal.
X-Felo-Channel fonctionne sur les six points de terminaison de génération ci-dessus. Il ne s'applique ni à l'API de données ni aux Felo APIs : ces appels vont au fournisseur que vous nommez dans la requête.
Ce que coûte réellement un appel
Les appels de modèle sont facturés au token — entrée, sortie et cache — avec le multiplicateur de remise du canal. Les tarifs sont affichés par million de tokens pour la lisibilité, mais la facturation utilise la précision au token du relevé de prix courant : une requête courte n'est jamais arrondie au million.
- Les tarifs de cache ne s'appliquent que si la réponse du protocole signale une utilisation du cache ; un modèle qui ne le signale pas facture tout au tarif d'entrée.
- Une recherche web que le service de modèle exécute et signale coûte $0.01 par recherche.
- Certains modèles sont facturés par paliers selon la taille du prompt : Claude Haiku 5.5 coûte $0.10 en entrée et $0.50 en sortie par million de tokens jusqu'à un prompt de 100K tokens, puis $0.50 et $2.50 pour toute la requête au-delà.
- La première recharge est de $1. Pas d'abonnement, pas de frais par siège, pas d'engagement minimum — une clé inactive ne coûte rien.
Les appels d'API de données et les workflows Felo sont débités du même solde, chacun selon sa base publiée : par requête réussie, par élément renvoyé ou selon l'usage réel.
Tarifs et créditsDeux limites qui se ressemblent et n'en sont pas
Un solde vide renvoie 402 INSUFFICIENT_CREDITS. Des appels trop rapides renvoient 429 RATE_LIMITED. Attendre règle la seconde et jamais la première.
| Statut | Code | Que faire |
|---|---|---|
| 401 | UNAUTHORIZED | Corriger ou régénérer la clé |
| 402 | INSUFFICIENT_CREDITS | Recharger dans la facturation de la console, puis renvoyer |
| 404 | dépend du point de terminaison | Vérifier l'ID du modèle, de la tâche ou de la route |
| 429 | RATE_LIMITED | Attendre Retry-After, puis réessayer |
| 5xx | CHAT_FAILED, SERVICE_UNAVAILABLE | Réessayer avec un backoff exponentiel et du jitter |
Aujourd'hui, seul /v2/chat documente des limites strictes. Les appels de modèle peuvent aussi être limités en amont, ce qui apparaît comme un 429 — lisez X-RateLimit-* et Retry-After plutôt que de coder des nombres en dur. Chaque réponse porte un request_id, et l'en-tête X-Request-Id que vous envoyez est renvoyé tel quel, pour que vos journaux et les nôtres se recoupent.
L'image et la vidéo se terminent en arrière-plan
Les deux points de terminaison de génération renvoient un task_id au lieu d'un résultat. Soumettre, interroger, récupérer — et notez qu'une fois la tâche créée, la plupart des échecs arrivent en 200 avec un statut terminal, pas en erreur 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, resultLisez le statut avant le résultat : failed et interrupted sont aussi des réponses, et error.message en donne la raison. Un 402 à la soumission signifie que la tâche n'a jamais été créée. SuperAgent fonctionne autrement — il renvoie un stream_key et pousse les événements en SSE, il n'y a rien à interroger.
Changez l'URL de base, gardez le client
Les deux SDK fonctionnent sans modification dès que l'URL de base pointe ici. npx feloapi-cli setup écrit la même configuration pour Claude Code et 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"}Les ID de modèles ne sont pas identiques d'un fournisseur à l'autre. Choisissez dans le catalogue avant de basculer l'URL de base, sinon le premier appel répond 404.
La moitié qu'une passerelle vous laisse d'habitude
Une passerelle LLM achemine des appels de modèle. Ici, la même clé atteint aussi un catalogue de 5,000+ API — l'étape de recherche de votre agent, les diapositives qu'il produit et le document qu'il relit sont donc facturés sur les mêmes crédits, et non chez trois fournisseurs de plus.
- Search
- PPT Task
- SuperAgent
- Web Fetch
- X Search
- Mindmap
- Landing Page Task
- LiveDoc
- YouTube Subtitling
Les appels d'API de données vont à des fournisseurs nommés sous /v1/beta — Tavily, Exa, Apollo et le reste du catalogue — chacun selon sa propre base publiée.
Où la passerelle s'arrête
- Pas de bascule automatique entre canaux — la logique de nouvelle tentative reste dans votre application, volontairement.
- Figurer au catalogue ne garantit pas la compatibilité ; chaque type de modèle a une seule surface d'appel.
- Aucune limite de débit de plateforme n'est documentée pour les appels de modèle, mais la limite du fournisseur en amont s'applique toujours.
- Les crédits sont prépayés, non remboursables et non retirables — rechargez le montant que vous comptez dépenser.
Six questions sur la passerelle LLM
Qu'est-ce qu'une passerelle LLM ?
Un point d'entrée devant de nombreux fournisseurs de modèles, pour que votre code parle à une URL de base, une clé et un solde au lieu d'une douzaine de SDK. Une passerelle IA fait la même chose ; celle-ci vend en plus les API de données dont un agent a besoin.
Puis-je garder mon SDK OpenAI ou Anthropic ?
Oui. Chat Completions et Responses ont la forme d'OpenAI et Messages est natif. Les URL de base sont https://openapi.felo.ai/api/v1 et https://openapi.felo.ai/api — un niveau au-dessus, car ce SDK ajoute lui-même /v1/messages.
Comment savoir quel modèle appeler ?
GET /api/v1/models liste tous les types avec leurs canaux et tarifs ; les modèles vidéo et de décision ont leurs propres listes. Lisez le model_kind et appelez le point de terminaison correspondant. Figurer dans la liste ne garantit pas que chaque point de terminaison accepte ce modèle.
Y a-t-il une bascule si un fournisseur tombe ?
Non, et c'est délibéré. Une liste de canaux est une sélection, pas une politique de nouvelle tentative : seul le premier est soumis. La bascule appartient à votre application, où l'on voit l'erreur, le budget et le repli que vous voulez vraiment.
Combien ça coûte ?
Chaque modèle a un tarif Felo qui démarre à un dixième du prix officiel du fournisseur, et le canal que vous fixez détermine le tarif payé. Prépayé, facturé à l'appel, première recharge de $1, sans abonnement.
Puis-je aussi appeler image, vidéo et API de données ?
Oui. Une clé atteint les modèles de chat, d'image, de vidéo et de décision et le catalogue de 5,000+ API derrière /v1/beta — tout est facturé sur les mêmes crédits.
Essayez sur un seul appel
Créez une clé, rechargez et pointez le SDK que vous utilisez déjà vers une URL de base.