Cómo funciona
MarkdownQué ocurre con la solicitud entre tu aplicación y el modelo.
Guía completa
Envías una solicitud a Ailoot API igual que la enviarías directamente a OpenAI, Anthropic o Google. Ailoot verifica la clave y el saldo, transmite la solicitud al modelo, devuelve la respuesta en el mismo formato y cobra según el consumo real.
Una clave, tres formatos
El formato depende de la ruta de la solicitud, no del modelo. Puedes llamar al mismo modelo Claude mediante OpenAI Chat, OpenAI Responses o Anthropic Messages; la respuesta llega en el formato de la ruta utilizada.
| Formato | Ruta | Quién lo utiliza |
|---|---|---|
| OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, la mayoría de los chats y editores, n8n, LangChain |
| OpenAI Responses | /v1/responses | Codex CLI, OpenAI Agents SDK, versiones nuevas del SDK |
| Anthropic Messages | /v1/messages | Claude Code, Anthropic SDK, Zed, Cline |
| Gemini | /v1beta/models/{model}:generateContent | Gemini CLI, Google GenAI SDK |
Dinero: reserva y un solo cargo
- Antes de enviar una nueva solicitud de texto, Ailoot reserva un importe estimado para la entrada y una respuesta típica, considerando el límite (
max_tokens) y las condiciones del modelo específico. Si la reserva no cabe en el saldo disponible o en el límite de la clave, el límite enviado solo puede reducirse cuando el modelo y el método realmente lo respetan, sin bajar de 256 tokens ni del mínimo de respuesta establecido. Para las imágenes, el video y el audio de salida, se mantiene la reserva del costo completo del resultado. - Después de la respuesta, se cobra una sola vez según el consumo real. La reserva no utilizada vuelve inmediatamente al saldo.
- Si la respuesta cuesta más que la reserva, la diferencia se toma del saldo disponible. El saldo nunca queda en negativo.
- Si el saldo no alcanza ni para la reserva mínima, la solicitud no se envía: recibes un error 402 claro y no se cobra nada.
- Si ocurre un error y no hay resultado, no se cobra.
Los detalles y un ejemplo de cálculo están en la página Reserva y cargo.
Errores con Request ID
Cada respuesta recibe un identificador de solicitud, en el encabezado X-Request-ID y en el mensaje de error. Los errores llegan en el JSON del formato que utilizaste, por lo que los SDK los reconocen correctamente. Si algo falla, envía el Request ID a soporte para que encontremos la solicitud en un minuto.
{
"code": "API_KEY_REQUIRED",
"error": {
"code": "invalid_api_key",
"message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
"param": null,
"reason": "invalid_api_key",
"request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
"type": "invalid_request_error"
},
"message": "No API key was sent with the request. Nothing was charged. …"
}Streaming y tiempos de espera
Las respuestas en streaming (stream: true) se envían como Server-Sent Events. Ailoot entrega la respuesta de texto de pago después de calcular el costo. Por eso, con stream: true el formato sigue siendo streaming (SSE), pero el texto llega en un solo bloque cuando termina el modelo, no palabra por palabra. Si la respuesta tarda más de unos 15 segundos, los flujos de Chat Completions, Responses y Messages envían primero las líneas auxiliares : ping (aproximadamente cada 10 segundos), seguidas de la línea : ailoot-charged-usd … con el monto cobrado; después llegan los datos de la respuesta. Los SDK omiten estas líneas de comentario.
El formato Gemini no incluye líneas auxiliares: la respuesta de :streamGenerateContent llega completa después del cálculo. Deja un margen suficiente en el tiempo de espera del cliente para los modelos de razonamiento: varios minutos son normales.
Encabezados de respuesta
X-Request-ID llega en cada respuesta. Ailoot agrega los demás encabezados a las respuestas de texto pagadas:
| Encabezado | Contenido |
|---|---|
X-Request-ID | Identificador de solicitud que pide soporte |
X-Ailoot-Charged-USD | Monto cobrado por esta solicitud, en dólares |
X-Ailoot-Output-Tokens | Tokens de respuesta pagados |
X-Ailoot-Max-Tokens-Capped | Límite al que se redujo la respuesta porque el saldo no cubría la reserva completa |
X-Ailoot-Notice-Code, X-Ailoot-Notice | Explicación si la respuesta se detuvo por el límite de longitud |
Si el flujo ya comenzó con líneas auxiliares, estos datos llegan como una línea de comentario antes de los datos, no como un encabezado.
Caché de prompts
Si el modelo admite caché, volver a enviar un prefijo largo, como una instrucción de sistema o documentos, puede costar menos. Los precios de lectura y escritura de caché aparecen en la ficha del modelo en el catálogo. El desarrollador del modelo decide si se produce un acierto de caché; Ailoot no lo garantiza.