Cuánto cuesta programar con ChatGPT: los $20 del Plus frente a la API
La elección entre suscripción y API falla en ambas direcciones, y por el mismo motivo: en el chat cada mensaje reenvía toda la conversación. El gasto no crece con el número de preguntas, crece con su cuadrado.
¿Con prisa? Pide el TL;DR a Claude — lee la página y la resume.
es Traducción automática por mistral-small3.2:24b, revisada por el autor. Leer el original en portugués
Casi todo el mundo que programa con modelos en línea está pagando mal — y lo más interesante es que el error ocurre en las dos direcciones al mismo tiempo.
Por un lado, quien suscribe los US$ 20 y abre el chat tres veces por mes. Está pagando alrededor de siete dólares por conversación y ni siquiera sospecha.
Por otro lado, quien migró a la API porque “por token es mucho más barato”, encendió el script, envió toda la conversación en cada llamada y cerró el mes gastando el doble de la suscripción que canceló.
Los dos errores tienen la misma raíz: nadie hace la cuenta del contexto. Este post es esa cuenta, con los precios vigentes en 10 de febrero de 2025 y la aritmética abierta para que tú la refieras con tu uso.
Los precios que valen hoy
Comencemos por lo que es hecho de tabla. Suscripciones primero:
| Suscripción | Precio mensual (US$) |
|---|---|
| ChatGPT Plus | 20 |
| Claude Pro | 20 |
| Cursor Pro | 20 |
| GitHub Copilot | 10 |
Y las APIs, por millón de tokens:
| Modelo (API) | Entrada (US$/1M) | Salida (US$/1M) |
|---|---|---|
| GPT-4o | 2,50 | 10,00 |
| GPT-4o mini | 0,15 | 0,60 |
| Claude 3.5 Sonnet | 3,00 | 15,00 |
| xAI grok-beta | 5,00 | 15,00 |
Mirando esta segunda tabla, la conclusión parece obvia. Una pregunta de 200 tokens cuesta US$ 0,0005 de entrada en el GPT-4o. Medio milésimo de dólar. Con ese número en la cabeza, US$ 20 por mes se convierten en cuarenta mil preguntas, y la suscripción parece un robo.
Suma la respuesta y el número ya cambia de orden. Una respuesta de 500 tokens cuesta US$ 0,005 — diez veces la pregunta, y la descomposición es limpia: el token de salida cuesta cuatro veces el de entrada, y la respuesta es dos veces y media más grande que la pregunta. Pregunta y respuesta juntas: US$ 0,0105. Ahora los US$ 20 valen 1.905 mensajes, no cuarenta mil.
Aún parece mucho. Es aquí donde la cuenta se desmonta.
La cuenta que nadie hace
La API no tiene memoria. Cada llamada es independiente, y el modelo no sabe nada de lo que fue dicho en la llamada anterior. Si la conversación necesita continuidad, quien carga la continuidad eres tú: en cada mensaje, todo el historial vuelve a ser enviado como entrada, y vuelve a ser cobrado.
La interfaz del chat esconde esto muy bien. Tú escribes una línea y parece que pagaste una línea. Por debajo, se fue toda la conversación completa otra vez.
Entonces, el décimo mensaje no cuesta lo mismo que el primero. Cuesta el primero más todo lo que vino antes. Vamos a escribirlo correctamente.
Llamo C al contexto inicial — el archivo que pegaste, las instrucciones del sistema, el stack trace. p es el tamaño de tu pregunta y r el tamaño de la respuesta del modelo. En el turno n:
entrada no turno n = C + (n − 1) × (p + r) + p
entrada acumulada em N = N × (C + p) + (p + r) × N × (N − 1) / 2
saída acumulada em N = N × r
El término que importa es el del medio. Tiene N × (N − 1), o sea, crece con el cuadrado del número de idas y vueltas. Duplicar el tamaño de la conversación no duplica el costo: lo cuadruplica.
Para que la cuenta se convierta en un número preciso hay que fijar los tres parámetros. Elegí un escenario de sesión de programación que me parece honesto, y dejo declarado que son valores estimados, no medidos: C = 2.000 tokens (un archivo de unas 200 líneas pegado al principio), p = 200 tokens por pregunta (un párrafo y un trozo pequeño) y r = 500 tokens por respuesta (código con explicación corta). Cambia los tuyos y la estructura de la cuenta no cambia.
| Idas y vueltas | Entrada en el último turno | Entrada acumulada | Costo GPT-4o (US$) | Si fuera lineal (US$) |
|---|---|---|---|---|
| 1 | 2.200 | 2.200 | 0,0105 | 0,0105 |
| 5 | 5.000 | 18.000 | 0,0700 | 0,0525 |
| 10 | 8.500 | 53.500 | 0,1838 | 0,1050 |
| 20 | 15.500 | 177.000 | 0,5425 | 0,2100 |
| 30 | 22.500 | 370.500 | 1,0763 | 0,3150 |
Treinta idas y vueltas — una sesión de tarde, nada excepcional — cuestan US$ 1,08, y no los US$ 0,315 que la cuenta de cabeza prometía. Error de 3,4 veces.
Dos números de esta tabla merecen ser dichos en voz alta.
El primero: el trigésimo mensaje solo cuesta US$ 0,061, frente a US$ 0,0105 del primero. La misma pregunta, hecha al final de la conversación, cuesta 5,8 veces más que al principio. Tú no cambiaste nada en tu comportamiento; cambió el tamaño de lo que va junto.
El segundo es peor. De los 370.500 tokens de entrada cobrados en toda la sesión, solo 8.000 son texto que yo escribí: los 2.000 del archivo más las treinta preguntas de 200 tokens. Todo lo demás es material que ya había pasado por allí antes, mío o del modelo. 97,8% de lo que pagas en entrada es conversación reenviada.
No es desperdicio por descuido del proveedor. Es así como funciona la inferencia: sin el historial en el prompt, el modelo no tiene estado. Pero es una cuenta que tú puedes influir, y casi nadie lo intenta.
El punto de inflexión tiene fórmula
Con el costo de una sesión cerrado, el punto de inflexión es una división:
sessões até empatar com a assinatura = 20 / custo_de_uma_sessão
custo_de_uma_sessão =
( entrada_acumulada × preço_entrada + saída_acumulada × preço_saída ) / 1.000.000
Aplicando a cada modelo, en la misma sesión de treinta turnos:
| Modelo (API) | Sesión de 30 turnos (US$) | Sesiones/mes hasta llegar a US$ 20 |
|---|---|---|
| GPT-4o | 1,0763 | 18,58 |
| GPT-4o mini | 0,0646 | 309,72 |
| Claude 3.5 Sonnet | 1,3365 | 14,96 |
| xAI grok-beta | 2,0775 | 9,63 |
Poco menos de dieciocho sesiones de treinta mensajes por mes, en el GPT-4o, y la API ya alcanzó el Plus. En el Claude 3.5 Sonnet bastan quince. En el grok-beta, menos de diez — y es ahí donde el crédito de US$ 25 del beta hace diferencia: cubre doce sesiones, lo que para mucha gente es todo el mes sin sacar la tarjeta del bolsillo.
El GPT-4o mini está en otro planeta: serían 310 sesiones, diez por día, todos los días. Si tu trabajo cabe en el mini, la discusión de suscripción simplemente no existe.
Traduciendo sesiones en horas, que es como la mayoría piensa su propio uso:
| Duración de una sesión | GPT-4o (h/mes para empatar) | Claude 3.5 Sonnet (h/mes) |
|---|---|---|
| 30 min | 9,3 | 7,5 |
| 45 min | 13,9 | 11,2 |
| 60 min | 18,6 | 15,0 |
| 90 min | 27,9 | 22,4 |
Menos de diez horas al mes de conversación densa y la suscripción probablemente no se paga. Más de veinte y la API solo gana si tú haces algo con respecto al contexto. Es exactamente esa franja del medio, entre diez y veinte horas, que traga a casi todo el mundo — y es donde la decisión se decide por detalle, no por precio de tabla.
Lo que la suscripción compra y la API no vende
Antes de tratar la elección como problema de optimización, vale la pena listar lo que los US$ 20 entregan que ninguna planilla de tokens muestra.
Techo de gasto. Veinte dólares son veinte dólares. En la API no existe techo natural: existe una tarjeta registrada y un límite que tú configuraste, si te acordaste de configurarlo. Un bucle mal cerrado en un script nocturno es una clase de error que la suscripción simplemente no tiene.
Cero mantenimiento. Sin clave para guardar, sin .env, sin rotar credencial, sin descubrir que el secreto se filtró en un commit. El costo de esto no es cero, es solo invisible.
La interfaz. Historial buscable, anexo de archivo, subida de imagen, voz, retomar una conversación del miércoles. Reimplementar esto para uso propio es un proyecto paralelo, y proyecto paralelo de infraestructura es donde el tiempo del programador va a morir.
A cambio, el Plus tiene un techo de uso que la API no tiene — y él se mueve. El número de mensajes del GPT-4o por ventana de tres horas varió a lo largo de 2024 y a principios de 2025 según la carga, según relatos recurrentes en el foro de desarrolladores de OpenAI. No es número para basar cuenta: es límite que aparece en el momento equivocado. Quien lo golpea con frecuencia tiene el ChatGPT Pro a US$ 200 por mes, anunciado en diciembre de 2024 con acceso ilimitado al o1 — un escalón de diez veces, que solo tiene sentido para quien ya probó que el escalón de abajo no basta.
Lo que la API da y la suscripción no
Tres cosas, en orden creciente de importancia.
Elegir el modelo por tarea. En el chat tú usas el modelo bueno para todo, incluyendo renombrar variable y escribir mensaje de commit. En la API, lo trivial va al GPT-4o mini, que cuesta exactamente 6% del GPT-4o — en los dos lados, entrada y salida. No es ahorro de centavo: es la diferencia entre US$ 1,08 y US$ 0,06 en la misma sesión. El o3-mini, lanzado a finales de enero, entra en la misma categoría para lo que necesita razonamiento y no conocimiento amplio.
Automatizar. Ejecutar sobre un diff, en un hook de commit, por lotes sobre cien archivos. El chat exige una persona presente pegando texto; la API no exige a nadie. Herramientas como Aider viven de esto.
Controlar el contexto. Esta es la que paga las otras dos, y es el tema del resto del post.
Cortar contexto es la palanca que nadie tira
En el chat, el historial es sagrado: él crece y tú asistes. En la API, el historial es un array que tú montas antes de cada llamada, y tú decides lo que entra.
Vamos a comparar tres políticas en la misma sesión de treinta turnos:
| Política de contexto | Entrada acumulada (tokens) | Costo GPT-4o (US$) | Ahorro |
|---|---|---|---|
| Historial completo | 370.500 | 1,0763 | 0% |
| Ventana de los 4 últimos turnos | 143.000 | 0,5075 | 52,8% |
| Sin historial: solo C más la pregunta | 66.000 | 0,3150 | 70,7% |
Una ventana deslizante de cuatro turnos — que en la práctica cubre casi toda solicitud de programación, porque la pregunta actual rara vez depende de lo que se dijo veinte mensajes atrás — corta el costo a la mitad y no cambia nada en lo que tú escribes.
Y fíjate en la tercera fila: US$ 0,3150. Es exactamente el número de la columna “si fuera lineal” de la primera tabla. La cuenta ingenua no estaba equivocada por casualidad — ella describe con precisión el caso en que tú no envías ningún historial. Toda la diferencia entre la cuenta ingenua y la cuenta real es el historial. Quien fue a la API convencido por la cuenta ingenua hizo, sin saberlo, una promesa de no usar contexto. Después lo usó.
Cache de prompt: descuento con peaje
Existe un segundo camino, que ataca el mismo problema por otro lado: si tú vas a enviar los mismos tokens de nuevo, el proveedor puede cobrar menos por ellos. Los dos grandes ya tenían esto funcionando en febrero de 2025.
En OpenAI, el cache de prompt fue anunciado en octubre de 2024 y es automático — ningún cambio de código. Vale para prefijos con al menos 1.024 tokens, y el descuento es del 50% sobre la parte de la entrada que ya había sido vista. El punto crítico está en la documentación de la API: el acierto solo ocurre en correspondencia exacta de prefijo, y el prefijo en cache suele sobrevivir de cinco a diez minutos de inactividad, llegando como máximo a una hora.
En Anthropic, el cache se convirtió en disponibilidad general en diciembre de 2024 y es explícito: tú marcas el punto de corte con cache_control. La tabla de precios es diferente — para el Claude 3.5 Sonnet, escribir en el cache cuesta US$ 3,75 por millón (25% arriba de la entrada normal) y leer cuesta US$ 0,30 (un décimo de ella). El plazo de validez estándar es de cinco minutos, renovados a cada lectura.
Aplicando a nuestras treinta idas y vueltas. En cada turno, lo que ya había sido enviado antes se convierte en lectura barata y solo los 700 tokens nuevos — la respuesta anterior más la pregunta actual — entran a precio completo:
| Sesión de 30 turnos | Sin cache (US$) | Con cache (US$) | Ahorro |
|---|---|---|---|
| GPT-4o | 1,0763 | 0,6413 | 40,4% |
| Claude 3.5 Sonnet | 1,3365 | 0,4138 | 69,0% |
El Claude 3.5 Sonnet sale de más caro que el GPT-4o para más barato, y no es poco: 69% de corte. La razón es la asimetría de las dos políticas — lectura a un décimo del precio compensa con holgura el premio del 25% en la escritura, siempre que el cache sea leído varias veces.
Esta última condición es el peaje, y ella tiene dos cobros.
El segundo cobro es el reloj. Pocos minutos de inactividad — cinco en el patrón de Anthropic, cinco a diez en OpenAI — y el cache muere. Programar no es escribir sin parar: es leer la respuesta, ejecutar la prueba, mirar el log, volver. Si tú te levantaste para tomar café entre el turno once y el doce, el turno doce paga entrada completa — y en el caso de Anthropic tú ya habías pagado 25% más para escribir un cache que nadie leyó. El mejor caso de la tabla anterior es optimista a propósito; el caso real depende de tu ritmo, y el mío yo aún no lo cronometré.
Dónde cada elección gana
Juntando todo, con la sesión de treinta turnos como unidad y tres volúmenes mensuales:
| Elección | 5 sesiones (US$) | 20 sesiones (US$) | 40 sesiones (US$) |
|---|---|---|---|
| Suscripción de US$ 20 (Plus o Claude Pro) | 20,00 | 20,00 | 20,00 |
| GPT-4o mini, historial completo | 0,32 | 1,29 | 2,58 |
| Claude 3.5 Sonnet, historial con cache | 2,07 | 8,28 | 16,55 |
| GPT-4o, ventana de 4 turnos | 2,54 | 10,15 | 20,30 |
| GPT-4o, historial con cache | 3,21 | 12,83 | 25,65 |
| GPT-4o, historial completo | 5,38 | 21,53 | 43,05 |
| Claude 3.5 Sonnet, historial completo | 6,68 | 26,73 | 53,46 |
| xAI grok-beta, historial completo | 10,39 | 41,55 | 83,10 |
La celda marcada es la que resume el post. Veinte sesiones por mes — unas cinco horas por semana de conversación densa — en el GPT-4o con historial completo: US$ 21,53, más caro que la suscripción que esa persona canceló. Mismo volumen, mismo modelo, mismo trabajo, con ventana de cuatro turnos: US$ 10,15. La diferencia entre ganar y perder no está en el proveedor. Está en cuántas veces tú pagas por el mismo token.
Fíjate también que la tabla se invierte en la columna de cinco sesiones: allí, cualquier fila de API gana a la suscripción con holgura, y la peor de ellas — el grok-beta con historial completo — aún sale por poco más de la mitad de los US$ 20. Uso ligero, en la API, es casi siempre la elección correcta. Uso pesado sin control de contexto es casi siempre la equivocada.
Los otros veinte dólares
Vale registrar que la elección no es binaria. El GitHub Copilot cuesta US$ 10 — la mitad del Plus — y el Cursor Pro cuesta los mismos US$ 20, ambos con el modelo dentro del editor.
Lo que los dos venden es justamente la variable que decide la cuenta de este post: ellos montan el contexto por ti. Seleccionan trozos del archivo abierto, de los archivos vecinos, del repositorio. Tú no decides lo que entra, y no ves la factura por token.
Es un intercambio legítimo, y hay que ser honesto sobre la dirección de él: tú pagas un precio fijo para no pensar en la variable. Si el contexto que la herramienta elige es bueno, tú llevaste ventaja. Si es malo, tú no tienes cómo saberlo, porque la cuenta no llega discriminada. Para uso predecible dentro del editor, es el mejor negocio de la lista por los US$ 10 del Copilot. Para trabajo que sale del editor — analizar log, discutir arquitectura, generar por lotes —, no sustituye ni al chat ni a la API.
Lo que yo aún necesito medir
Toda la aritmética anterior es derivada de precio de tabla y de una sesión-modelo que yo estimé. Ella es correcta, y aún así no responde a la pregunta que importa para mí, que es cuál es mi uso real:
Son cinco números, y yo no tengo ninguno: cuántas sesiones hago por mes, cuánto dura cada una, cuántas idas y vueltas tiene, cuántos tokens de entrada eso da en una semana normal de trabajo, y cuánto realmente apareció en la factura.
Sin estos cinco números, cualquier recomendación que yo diera sería opinión con apariencia de cuenta. Con ellos, la fórmula del medio del post responde sola — y es por eso que ella está abierta allí arriba, para que tú la llenes con tu uso antes de que yo la llene con el mío.
Si sobra una frase de este post, que sea esta: el precio por token es la parte del problema que ya viene resuelta en la tabla del proveedor; lo que decide tu cuenta es cuántas veces pagas por el mismo token.
Quien suscribe los US$ 20 compró el derecho de no pensar en eso — y para uso pesado e descuidado, ese derecho es barato. Quien fue a la API compró el control de la variable, pero control solo se convierte en descuento cuando es ejercido: si el array de mensajes crece solo hasta el final de la conversación, tú pagaste por la llave de un cofre que nunca abriste.
Y el número que nadie debería olvidar es el 97,8%. Esa es la fracción de la entrada, en una sesión de treinta mensajes, que es texto que el modelo ya había visto. No existe optimización de prompt, elección de modelo o negociación de precio que llegue cerca de mover esa fracción. Solo existe decidir lo que entra.