Tokens de entrada vs salida: por qué te cobra una API de IA
Por qué una API de IA cuenta los tokens de entrada y salida por separado, dónde leerlos en el campo usage y cómo calcular el coste de una solicitud.

En esta página
Si acabas de hacer tu primera llamada a la API de un modelo de lenguaje, probablemente hayas visto un bloque usage en la respuesta y te hayas preguntado qué cuenta exactamente. La respuesta corta: cada solicitud tiene dos medidores. Uno cuenta los tokens que envías (entrada), el otro cuenta los tokens que el modelo devuelve (salida). Cada medidor tiene su propio precio, y el coste de una solicitud es la suma de ambos.
Esta guía muestra dónde encontrar los números, cómo convertirlos en dólares y qué puedes cambiar para gastar menos. Si la palabra "token" todavía te resulta difusa, empieza por ¿Qué es un token en IA?.
Qué cuenta como entrada y qué cuenta como salida#
Los tokens de entrada son todo lo que el modelo tiene que leer para responderte:
- tu último mensaje;
- el prompt del sistema (instrucciones como "responde brevemente, en español");
- los mensajes anteriores de la conversación, si los vuelves a enviar;
- documentos, código o resultados de búsqueda que pegues en la solicitud.
Los tokens de salida son todo lo que el modelo genera en respuesta. En el formato compatible con OpenAI, este es el texto en choices[0].. Algunos modelos en modo de razonamiento también generan tokens de razonamiento antes de la respuesta final; consulta la página de precios del modelo para ver si se facturan como salida.
El punto importante para principiantes: el modelo no recuerda tu chat entre solicitudes. Una app de chat reenvía todo el historial cada vez, así que la entrada de una conversación larga crece con cada turno, incluso si tu nuevo mensaje es una sola línea.
Dónde leer los números: el bloque usage#
Toda respuesta no transmitida en streaming de una API compatible con OpenAI termina con un objeto usage. Este es un ejemplo didáctico de su forma:
{
"choices": [
{ "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" }
],
"usage": {
"prompt_tokens": 2000,
"completion_tokens": 500,
"total_tokens": 2500
}
}Desplaza la tabla hacia la derecha →
| Campo | Qué significa | Se factura como |
|---|---|---|
prompt_tokens |
Tokens de todo lo que enviaste | Entrada |
completion_ |
Tokens que generó el modelo | Salida |
total_tokens |
prompt_tokens + completion_ |
No es un precio aparte: es solo la suma |
Un error común de principiante es multiplicar total_tokens por un único precio. Como la entrada y la salida tienen precios distintos, necesitas los dos números por separado.
Algunos proveedores añaden campos extra. Por ejemplo, la propia API de DeepSeek también divide prompt_tokens en prompt_ y prompt_ y, en modo de razonamiento, informa de reasoning_tokens (fuente: documentación de la API de DeepSeek, consultada el 21 de octubre de 2026). Los tres campos de la tabla son los que puedes dar por seguros en cualquier respuesta compatible con OpenAI.
Cuando transmites la respuesta en streaming, el usage no se conoce al principio. En la propia API de DeepSeek llega en el último fragmento de contenido antes de data: [DONE] (documentación de la API de DeepSeek, consultada el 21 de octubre de 2026); otras API pueden enviarlo de otra forma o solo bajo petición, así que comprueba qué recibe tu cliente. El streaming en sí se trata en Respuestas en streaming en Python.
Por qué los dos lados tienen precios distintos#
Leer tu prompt y escribir una respuesta son tipos de trabajo diferentes. El modelo procesa todo el prompt en una sola pasada, pero tiene que producir la respuesta token a token, y cada token nuevo depende de los anteriores. Por eso los proveedores suelen poner un precio más alto a la salida que a la entrada, y por eso ves dos números por modelo en cualquier lista de precios.
El modelo que usamos como ejemplo a continuación, MiniMax-M2.7 (id minimax-m2.7), sigue este patrón. Los precios actuales por 1M de tokens son $0.05 para la entrada y $0.15 para la salida.
La fórmula#
Los precios se cotizan por 1 millón de tokens, así que el coste de una solicitud es:
cost = input_tokens × input_price ÷ 1,000,000
+ output_tokens × output_price ÷ 1,000,000Aquí está con precios redondos inventados, solo para mostrar la aritmética (ejemplo, sustituye por los precios actuales de la tabla de abajo):
# example, substitute current prices from the table
price_in = 0.20 # USD per 1M input tokens
price_out = 0.80 # USD per 1M output tokens
prompt_tokens = 2000
completion_tokens = 500
cost = (prompt_tokens * price_in + completion_tokens * price_out) / 1_000_000
# 2000 × 0.20 ÷ 1,000,000 = 0.0004 (input)
# 500 × 0.80 ÷ 1,000,000 = 0.0004 (output)
# 0.0004 + 0.0004 = 0.0008 USDUn ejemplo resuelto con un modelo real#
Toma la solicitud del ejemplo de usage de arriba: 2.000 tokens de entrada y 500 de salida. En MiniMax-M2.7 a través de CheapTokens cuesta $0.00018. El número se calcula a partir de la lista de precios actual cada vez que se muestra la página.
Una sola solicitud es minúscula, así que ayuda escalar. Una app pequeña que envía 10.000 solicitudes de este tamaño usa 20.000.000 de tokens de entrada y 5.000.000 de tokens de salida, lo que suma $1.75.
La misma solicitud en otros modelos de nuestra lista:
| Modelo | Entrada $/1M | Salida $/1M | Costo | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00006 | $0.00012 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00008 | $0.00017 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00018 | $0.0012 |
2000 tokens de entrada y 500 tokens de salida en total. Los precios por 1M de tokens son actuales y cambian junto con nuestras tarifas; la columna de OpenRouter muestra precios de referencia para la misma carga de trabajo.
Fíjate en que la salida es una parte menor del recuento de tokens aquí (500 de 2.500) pero una parte mayor de la factura que su proporción de tokens, porque los tokens de salida tienen un precio más alto (ver la tabla). Para este modelo, el lado de la salida es también donde se confirma el ahorro frente al precio de referencia de OpenRouter, lo cual es útil si tu app escribe respuestas largas.
Cómo usarlo en código#
Puedes leer usage del paquete oficial de Python openai apuntándolo a la URL base de CheapTokens:
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[{"role": "user", "content": "Explain input and output tokens in two sentences."}],
)
usage = response.usage
print("input:", usage.prompt_tokens)
print("output:", usage.completion_tokens)
print("total:", usage.total_tokens)
# example, substitute current prices from the table above
price_in, price_out = 0.20, 0.80
cost = (usage.prompt_tokens * price_in + usage.completion_tokens * price_out) / 1_000_000
print(f"approx. cost: ${cost:.6f}")Si aún no has enviado una solicitud, sigue primero Tu primera solicitud a la API con CheapTokens.
Cómo gastar menos tokens#
- Acorta el prompt. Recorta el prompt del sistema y elimina las instrucciones que el modelo no necesita. Cada token que envías se factura en cada solicitud.
- Recorta el historial. En un chat largo, conserva los últimos turnos o un resumen breve en lugar de toda la conversación.
- Envía solo la parte relevante de un documento. Una página de texto es más barata que un archivo entero.
- Pide el formato que necesitas. "Responde en tres viñetas" produce menos tokens de salida que un ensayo abierto.
- Configura
max_tokensa propósito. Solo limita la salida. Si es demasiado bajo, la respuesta se corta; los detalles están en ¿Por qué se corta a mitad de frase una respuesta de IA? MiniMax-M2.7 en CheapTokens permite hasta 8.192 tokens de salida por respuesta y tiene una ventana de contexto de 180K.
Para estimar el coste de un flujo de trabajo más grande, consulta Cómo estimar el coste de un agente de IA.
Qué recordar#
- Cada solicitud tiene tokens de entrada (
prompt_tokens) y tokens de salida (completion_).tokens - Tienen precios separados, normalmente con la salida más cara.
- Coste = tokens de entrada × precio de entrada + tokens de salida × precio de salida, con precios por 1M de tokens.
- Lee los números de
usageen la respuesta en lugar de adivinarlos.
En CheapTokens un único saldo prepago cubre todos los modelos, los precios por modelo son fijos sin tarifas de hora punta, y la API es compatible con OpenAI Chat Completions y Anthropic Messages. Para probar el ejemplo de arriba, obtén una clave de API y envía tu primera solicitud.
Precios actuales de cada modelo: Precios de CheapTokens.



