Fluxio

Documentación para desarrolladores

Fluxio habla tres dialectos de streaming. Busca el protocolo que usa tu código, consulta los eventos exactos que recibirá y configura tu cliente para usar el host de la API.

Host de la API de Fluxiohttps://api.fluxioapi.com

Envía tu clave como Authorization: Bearer (formato OpenAI), x-api-key (formato Anthropic) o x-goog-api-key (Gemini). Los tres protocolos comparten un mismo host.

Formato OpenAI: respuestas de chat mediante SSE

POST /v1/chat/completions con "stream": true. La respuesta es un text/event-stream de líneas data:, cada una con un fragmento 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"}]}'

Cada fragmento incluye la siguiente parte del texto en choices[0].delta.content; el último fragmento antes de [DONE] contiene el conteo de 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 siempre solicita ese fragmento final de uso, incluso si tu solicitud omite include_usage o lo establece en false.

La Responses API (/v1/responses) transmite eventos tipados como response.output_text.delta y reporta el uso en response.completed.

Formato Anthropic: eventos de Messages

POST /v1/messages con "stream": true y un encabezado anthropic-version (Fluxio agrega 2023-06-01 si falta). Los eventos llegan en este orden:

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

Los conteos de entrada y caché provienen de message_start; el conteo final de salida proviene de message_delta.

Los modelos de Claude solo están disponibles para los clientes oficiales Claude Code y Claude Desktop, versión 2.1.285 o posterior; esta es una regla del proveedor original. GPT, Gemini y las demás familias funcionan con cualquier cliente o SDK compatible con el formato de OpenAI.

Formato Gemini: streamGenerateContent nativo

Los modelos Gemini transmiten a través de su propia ruta. Agrega alt=sse para recibir eventos enviados por el servidor; sin este parámetro, la respuesta es un arreglo JSON entregado por partes.

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"}]}]}'

Cada fragmento incluye un total acumulado en usageMetadata; el último determina el cobro, y los tokens de razonamiento cuentan como salida.

Los modelos de Gemini solo usan su protocolo nativo. Para hacer streaming, llama a :streamGenerateContent?alt=sse; /v1/chat/completions rechaza los IDs de Gemini.

Qué se cuenta y cómo

  • Cada solicitud se factura según los tokens que informa el proveedor original: entrada, salida, escrituras en caché y lecturas de caché, cada uno con su propia tarifa.
  • Si el proveedor original no informa el uso, la llamada se factura como 2,000 tokens de entrada más 2,000 tokens de salida y se marca como estimada.
  • Cerrar un stream antes de tiempo no evita la facturación de los tokens generados hasta ese momento.
  • Las llamadas para contar tokens (count_tokens y countTokens) son gratuitas.
  • HTTP 402 significa que el saldo o el plan mensual asociado a la clave se agotó; recarga para reanudar el servicio.

Configuración del cliente

Claude Code · Claude Desktop

Establece la URL base en el host de la API (sin /v1), usa tu clave como token de autenticación y luego inicia claude.

export ANTHROPIC_BASE_URL=https://api.fluxioapi.com
export ANTHROPIC_AUTH_TOKEN=fio_your_key_here
claude

Codex · OpenAI SDK

Los clientes compatibles con el formato de OpenAI usan el host de la API más /v1 como URL base y tu clave como clave de API. Las solicitudes de chat se envían a /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)

IDs de GPT para comenzar: gpt-6.1-sol · gpt-6-astra · gpt-5.6-sol

Gemini CLI

Gemini CLI usa el host de la API sin modificaciones (no agregues /v1beta) y tu clave:

export GOOGLE_GEMINI_BASE_URL=https://api.fluxioapi.com
export GEMINI_API_KEY=fio_your_key_here
gemini

IDs de Gemini: gemini-3.1-pro · gemini-4-argon · gemini-3.8-flash · gemini-2.5-flash