Fluxio

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.

Hôte de l'API Fluxiohttps://api.fluxioapi.com

Envoyez 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