OneProvider

Streaming (SSE)

Recibe las respuestas mientras se escriben: pon stream:true en cualquier endpoint y los eventos SSE de Anthropic llegan intactos. Python, Node y fetch.

Activa stream:true en cualquiera de los dos endpoints. Los tipos de evento SSE de Anthropic llegan sin cambios y sin búfer.

Todos los modelos, capacidades y precios Índice de la documentación para agentes de IA: https://oneprovider.dev/docs/llms.txt

Por qué usar streaming

  • El tiempo hasta el primer token baja de segundos a ~100 ms.
  • Los ciclos largos de uso de herramientas se mantienen por debajo del límite de 6 minutos para que empiece la respuesta, porque un stream empieza a responder de inmediato. Cualquier solicitud tiene un tope de 10 minutos; consulta Códigos de error .
  • Mejor experiencia: renderizado progresivo en lugar de indicadores de carga congelados.

Tipos de evento

  • message_start: primer evento, devuelve los metadatos del asistente.
  • content_block_start · content_block_delta · content_block_stop: un conjunto por cada bloque de texto o tool_use. Los deltas son text_delta o input_json_delta (para la entrada de herramientas).
  • message_delta: stop_reason y actualización de usage al final.
  • message_stop: evento final.
  • ping: señal de actividad cada ~15 s.

Python (Anthropic SDK)

python
with client.messages.stream(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Tell me a haiku about Frankfurt."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print("\n--", final.usage)

Node / TypeScript

ts
const stream = client.messages.stream({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Tell me a haiku about Frankfurt." }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
const final = await stream.finalMessage();
console.log("--", final.usage);

fetch directo (navegador, edge)

ts
const r = await fetch("https://api.oneprovider.dev/v1/messages", {
method: "POST",
headers: {
"x-api-key": KEY,
"anthropic-version": "2023-06-01",
"content-type": "application/json",
},
body: JSON.stringify({
model: "claude-sonnet-5-5",
max_tokens: 1024,
stream: true,
messages: [{ role: "user", content: "stream me a poem" }],
}),
});
const reader = r.body!.pipeThrough(new TextDecoderStream()).getReader();
while (true) {
const { value, done } = await reader.read();
if (done) break;
process.stdout.write(value);
}
Sin búfer Los eventos llegan a tu cliente en cuanto el modelo los produce. Cualquier solicitud, incluidas las de streaming, tiene un tope de 10 minutos; consulta Códigos de error .

Respuestas rápidas

¿Qué base URL uso?

Claude Code y los SDK de Anthropic usan https://api.oneprovider.dev. Los SDK de OpenAI y los clientes compatibles con OpenAI usan https://api.oneprovider.dev/v1. Una misma clave funciona con ambas; la lista de modelos está en la página de modelos y las tarifas, en la página de precios .

¿Cómo me autentico?

Envía la clave sk-… tal cual en x-api-key o en Authorization: Bearer: en uno de los dos, nunca en ambos. Guarda la clave en una variable de entorno, no en un archivo que se suba al repositorio. Más sobre la autenticación .

¿Dónde obtengo una clave?

Abre tu panel en el bot de Telegram @oneprovider_robot o en app.oneprovider.dev, recarga el saldo y pulsa “Emitir una clave”. Cada clave puede tener su propio límite de gasto. Panel y claves de API .

¿Qué significan 401, 404 y 429?

401: falta la clave, está mal escrita o se envió en un encabezado equivocado; pega la clave completa, sin comillas ni espacios. 404: casi siempre es una base URL incorrecta, por ejemplo con /v1 ausente o duplicado. 429 con “Insufficient balance”: se agotó el saldo del panel o el límite de gasto de la clave, así que recarga en lugar de reintentar; cualquier otro 429 es un límite de frecuencia, así que espera según Retry-After. Detalles: códigos de error y solución de problemas .

¿Por qué se cortan o se reinician los streams?

Las VPN y los proxies VLESS suelen almacenar SSE en búfer o romper la negociación de HTTP/2. OneProvider no tiene restricciones regionales y no almacena los streams en búfer: desactiva el proxy y reintenta.

¿Dónde pregunto si esto no basta?

Escribe a @Oneproviderhelpbot en Telegram o abre “Soporte” en el panel web, con el código de estado HTTP y el mensaje de error exacto. Cómo funciona el soporte .

Última actualización: 2026-11-08 ¿Encontraste un error? @Oneproviderhelpbot