Documentation développeur
Fluxio parle trois dialectes du streaming. Repérez le protocole utilisé par votre code, découvrez les événements exacts qu'il recevra, puis configurez votre client pour utiliser l'hôte API.
https://api.fluxioapi.comEnvoyez votre clé via Authorization: Bearer (format OpenAI), x-api-key (format Anthropic) ou x-goog-api-key (Gemini). Les trois protocoles partagent le même hôte.
Format OpenAI : complétions de chat via SSE
POST /v1/chat/completions avec "stream": true. La réponse est un flux text/event-stream composé de lignes data:, contenant chacune un fragment JSON.
curl https://api.fluxioapi.com/v1/chat/completions --no-buffer \
-H "Authorization: Bearer fio_your_key_here" -H "Content-Type: application/json" \
-d '{"model":"gpt-6.1-sol","stream":true,"messages":[{"role":"user","content":"Hello from the river bank"}]}'
Chaque fragment contient le morceau de texte suivant dans choices[0].delta.content ; le dernier fragment avant [DONE] contient le décompte des tokens :
data: {"choices":[{"index":0,"delta":{"content":"Rivers"}}]}
data: {"choices":[{"index":0,"delta":{"content":" bend"}}]}
data: {"choices":[],"usage":{"prompt_tokens":14,"completion_tokens":2,"prompt_tokens_details":{"cached_tokens":0}}}
data: [DONE]
Fluxio demande toujours ce dernier fragment d'utilisation, même si votre requête omet include_usage ou le définit sur false.
La Responses API (/v1/responses) diffuse des événements typés tels que response.output_text.delta et indique l'utilisation dans response.completed.
Format Anthropic : événements Messages
POST /v1/messages avec "stream": true et un en-tête anthropic-version (Fluxio ajoute 2023-06-01 s'il est absent). Les événements arrivent dans cet ordre :
event: message_start
data: {"type":"message_start","message":{"usage":{"input_tokens":25,"cache_read_input_tokens":0,"output_tokens":1}}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Current"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":31}}
event: message_stop
Les décomptes des tokens en entrée et du cache proviennent de message_start ; le décompte final des tokens en sortie provient de message_delta.
Les modèles Claude sont proposés uniquement aux clients officiels Claude Code et Claude Desktop, en version 2.1.285 ou ultérieure — il s'agit d'une règle du fournisseur en amont. GPT, Gemini et les autres familles fonctionnent avec n'importe quel client ou SDK au format OpenAI.
Format Gemini : streamGenerateContent natif
Les modèles Gemini diffusent leurs réponses via leur propre route. Ajoutez alt=sse pour recevoir des événements envoyés par le serveur ; sans ce paramètre, la réponse est un tableau JSON transmis par fragments.
curl "https://api.fluxioapi.com/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" --no-buffer \
-H "x-goog-api-key: fio_your_key_here" -H "Content-Type: application/json" \
-d '{"contents":[{"role":"user","parts":[{"text":"Name one river that crosses three countries"}]}]}'
Chaque fragment inclut un total cumulé dans usageMetadata ; le dernier détermine le montant facturé, et les tokens de réflexion sont comptés comme des tokens en sortie.
Les modèles Gemini utilisent uniquement leur protocole natif. Pour le streaming, appelez :streamGenerateContent?alt=sse ; /v1/chat/completions refuse les identifiants Gemini.
Ce qui est compté, et comment
- Chaque requête est facturée selon les tokens indiqués par le fournisseur en amont : entrée, sortie, écritures dans le cache et lectures du cache, chacun selon son propre tarif.
- Si le fournisseur en amont n'indique aucune utilisation, l'appel est facturé comme 2 000 tokens d'entrée et 2 000 tokens de sortie, et marqué comme estimé.
- La fermeture prématurée d'un flux facture tout de même les tokens produits jusqu'à cet instant.
- Les appels de comptage des tokens (count_tokens et countTokens) sont gratuits.
- HTTP 402 signifie que le solde ou le forfait mensuel associé à la clé est épuisé — rechargez votre compte pour reprendre.
Configuration du client
Claude Code · Claude Desktop
Définissez l'URL de base sur l'hôte de l'API lui-même (sans /v1), utilisez votre clé comme jeton d'authentification, puis lancez claude.
export ANTHROPIC_BASE_URL=https://api.fluxioapi.com
export ANTHROPIC_AUTH_TOKEN=fio_your_key_here
claude
Codex · OpenAI SDK
Les clients au format OpenAI utilisent l'hôte de l'API suivi de /v1 comme URL de base, ainsi que votre clé comme clé API. Les requêtes de chat sont envoyées à /v1/chat/completions.
export OPENAI_BASE_URL=https://api.fluxioapi.com/v1
export OPENAI_API_KEY=fio_your_key_here
codex
import os, openai
river = openai.OpenAI(base_url="https://api.fluxioapi.com/v1", api_key=os.environ["FLUXIO_KEY"])
reply = river.chat.completions.create(model="gpt-6.1-sol", stream=True,
messages=[{"role": "user", "content": "Describe a waterfall in three lines"}])
for piece in reply:
print(piece.choices[0].delta.content or "", end="", flush=True)
Identifiants GPT pour commencer : gpt-6.1-sol · gpt-6-astra · gpt-5.6-sol
Gemini CLI
Gemini CLI utilise l'hôte de l'API seul (n'ajoutez pas /v1beta) ainsi que votre clé :
export GOOGLE_GEMINI_BASE_URL=https://api.fluxioapi.com
export GEMINI_API_KEY=fio_your_key_here
gemini
Identifiants Gemini : gemini-3.1-pro · gemini-4-argon · gemini-3.8-flash · gemini-2.5-flash