Nota del autor: ¿No ves cuánto contexto has usado en el cuadro de entrada de Codex? La opción está en /status. En este artículo verás cómo calcular, en 5 pasos, el consumo de tokens y el coste de cada turno de Codex con los registros de llamadas de APIYI, además de una tabla para decidir si conviene comprimir el contexto o abrir una conversación nueva.
Conectas Codex a APIYI y trabajas durante horas en una misma conversación. Debajo del cuadro de entrada solo aparecen el modo de permisos y el modelo: no ves cuánto contexto has usado y tampoco sabes si conviene abrir una ventana nueva.
La conclusión es esta: Codex sí muestra el uso del contexto, pero la opción se ha movido a /status; los datos para calcular el coste están en los registros de llamadas de APIYI / apiyi.com. En este artículo explicamos en cinco pasos cómo consultar el consumo de tokens de cada turno de Codex en los registros de llamadas de APIYI: qué datos mirar, cómo sumarlos y cuándo comprimir el contexto o abrir una conversación nueva.
Esto no es otro artículo para explicar conceptos. En cada paso verás qué aparece en la interfaz, dónde hacer clic y un criterio para comprobar que lo has hecho bien.

Por qué no puedes ver el consumo de tokens de cada turno en Codex
Mucha gente cree que Codex eliminó el indicador de contexto. En realidad, la información está repartida en tres lugares, y cada uno muestra datos diferentes.
- Cliente de escritorio / extensión de IDE: el cuadro de entrada solo muestra el modo de permisos y el modelo. Escribe
/statuspara ver el ID del chat, el uso de contexto (porcentaje de contexto utilizado) y los límites de uso disponibles. - CLI:
/statusmuestra el modelo actual, la política de aprobación, los directorios con permisos de escritura y el uso actual de tokens. El pie de página de la CLI ya incluye un indicador de contexto. Con/statuslinepuedes añadir estadísticas de contexto y contadores de tokens al pie de página; la selección se guarda entui.status_line, dentro deconfig.toml. codex exec --json: en una ejecución no interactiva, Codex emite una línea con un evento JSON cada vez que cambia de estado. El eventoturn.completedincluyeusage, con cinco campos:input_tokens,cached_input_tokens,cache_write_input_tokens,output_tokensyreasoning_output_tokens.
Por otro lado, /usage solo permite consultar la actividad de tokens a nivel de cuenta y requiere haber iniciado sesión con una cuenta oficial. Si usas una clave de terceros, este comando no sirve.
Comparación de las tres formas de medir el consumo de tokens en Codex
| Método | Ámbito | Qué puedes ver | Qué no puedes ver |
|---|---|---|---|
| Registro de invocaciones de APIYI | Escritorio, IDE y CLI | Entrada, salida, lectura y escritura de caché e importe de cada solicitud | El contenido de la conversación; cada línea representa una solicitud, así que debes sumar las de cada turno |
Codex /status |
Interfaces interactivas de escritorio y CLI | Uso de contexto, límites de uso disponibles y uso actual de tokens | El importe |
codex exec --json |
Solo ejecución no interactiva | Tokens de entrada, lectura y escritura de caché, salida y razonamiento de cada turno | Datos de la TUI interactiva y del cliente de escritorio |
De los tres métodos, solo el registro muestra el importe. Para ello, el canal que uses debe ofrecer registros y detalles de uso. Con la suscripción oficial no se pueden consultar los detalles de cada solicitud.
Primer paso: definir cómo contabilizar el consumo de tokens de Codex
Antes de empezar a contar, recuerda esto: una solicitud no equivale a un turno de conversación.
Una solicitud es una llamada que Codex hace al modelo. Un turno abarca todo el proceso desde que le envías un mensaje hasta que Codex termina el trabajo y te responde. Durante un turno, Codex lee archivos, ejecuta comandos y modifica código. Cada vez que termina de usar una herramienta, vuelve a enviar el resultado al modelo junto con el historial completo. Por eso, un turno suele ocupar varias líneas en los registros; una tarea compleja puede generar decenas.
También conviene saber que el modelo no recuerda por sí solo lo que se ha dicho antes. La entrada del turno N ≈ todo el contenido de los N-1 turnos anteriores + el contenido nuevo de ese turno. Esa es la razón principal por la que las conversaciones largas resultan cada vez más costosas.

Comprobación: al ver varias líneas de solicitudes en los registros, puedes identificar si pertenecen a un mismo turno, sin contar cada línea como un turno independiente.
Segundo paso: crea un token exclusivo para Codex
Para que las estadísticas sean útiles, debes poder aislar las solicitudes de Codex en los registros. Si Codex comparte una clave con scripts u otras herramientas, no podrás filtrarlas por token.
- Entra en la página de tokens de la consola de APIYI y haz clic en «Añadir token». Ponle un nombre que puedas reconocer, por ejemplo, uno que incluya «codex».
- Abre el archivo
config.tomlde Codex y añade un proveedor enmodel_providers, conbase_url = "https://api.apiyi.com/v1". Usaenv_keypara indicar la variable de entorno que contiene el token. - Configura
model_providerpara que apunte a ese proveedor. La aplicación de escritorio, el IDE y la CLI leen la misma configuración, así que basta con cambiarla una vez. - Usa otras claves para las demás herramientas; no reutilices esta.
🎯 Consejo técnico: un token exclusivo, el filtrado de registros por token y la exportación son las tres herramientas que ofrece la consola de APIYI / apiyi.com para llevar las estadísticas. Con la suscripción oficial no puedes ver los detalles de cada solicitud; con un token exclusivo puedes calcular por separado los gastos de Codex.
Comprobación: en la página de registros, haz clic en «Expandir» y, en los filtros avanzados, selecciona esta clave en «Token». La lista debería mostrar únicamente las solicitudes enviadas por Codex.
Tercer paso: entender una solicitud en el registro de llamadas
Abre api.apiyi.com/log, que corresponde a «Registros» en el menú de la izquierda. Cada fila de la lista representa una solicitud a la API.
En la parte superior puedes filtrar por intervalo de tiempo, tipo, modelo y estado de la caché. La ayuda del filtro indica: «Acierto = lectura de caché; fallo = creación de caché». Al hacer clic en «Expandir», también puedes filtrar por token, modo de streaming, rango de entrada y salida, tiempo hasta el primer byte y otras condiciones.
Qué significa cada columna del registro
| Columna | Qué verás | Cómo interpretarlo |
|---|---|---|
| Tiempo | Hora de finalización de la solicitud | Por defecto, UTC+0, ocho horas por detrás de Pekín |
| Modelo | Por ejemplo, gpt-5.6-terra | Si cambias de modelo, la caché no se comparte |
| Información | Con o sin streaming, tiempo hasta el primer byte, tokens de entrada y salida, importe | Resume toda la solicitud en una sola celda |
| Entrada / salida | Dos números | Entrada = tokens de entrada; salida = tokens de salida. Los tokens de razonamiento suelen contarse como salida |
| Consumo | Importe en dólares | Importe antes del descuento, con el multiplicador de grupo ya aplicado |
| Detalles | Multiplicadores, tokens escritos en caché y tokens leídos de caché | Las lecturas y escrituras de caché aparecen por separado, así que no tienes que adivinarlas |
En las solicitudes con caché, la columna «Información» muestra tanto las lecturas como las escrituras. Las filas sin detalles de caché solo muestran una combinación como «Sin streaming, primer byte: N segundos, entrada/salida, importe». Los modelos de imagen y vídeo que se cobran por solicitud también muestran la entrada y la salida, pero su importe no se calcula por token, así que no les apliques el cálculo de este artículo.

Comprobación: señala cualquier fila y confirma que puedes identificar cuántos tokens de entrada y salida tuvo la solicitud, cuántos se leyeron de la caché y cuánto costó.
Cuarto paso: sumar varias líneas de registro para calcular el consumo de tokens de una ronda de Codex
Una sola línea muestra los datos de una petición. Para conocer el consumo de una ronda de conversación, hay que sumar varias.
La regla es: suma todas las peticiones del mismo token y modelo realizadas durante los aproximadamente 5 minutos posteriores a enviar la instrucción. Ajusta la ventana de tiempo según tu caso.
- Consultar directamente en la página: filtra por token, modelo e intervalo de tiempo, y revisa línea por línea los tokens de entrada y de salida. Es práctico para consultas ocasionales.
- Exportar y recalcular: haz clic en «Exportar» en la esquina superior derecha de la lista, descarga el archivo Excel o CSV y agrupa los datos por tiempo para sumarlos.
- API de consulta de registros: llama a
GET /api/log/selfy autentícate con un token de acceso personal (empieza pornap_; una clave API que empiece porsk_devolverá un error 401). Envía los parámetrostype=2(solo consumo),token_name,start_timestampyend_timestamp(en segundos Unix). Ten en cuenta que el parámetro de paginación se escribe en camelCase:pageSize. Si escribespage_size, se ignorará sin mostrar ningún aviso. - Convertir a importe: el valor
quotaque devuelve la interfaz se convierte conquota ÷ 500,000 = dólares. El campootheres una cadena JSON que debes analizar por separado para obtener detalles comousage.
Al consultar la API, incluye siempre una ventana de tiempo; se recomienda que no supere un día. Si no la especificas, la interfaz buscará en todo el historial y, en cuentas con muchos datos, podría agotar el tiempo de espera. Consultar los registros no consume cuota.
Calcular cuánto cuesta una ronda de Codex
| Modelo | Entrada | Lectura de caché | Salida | Contexto | Ejemplo: total de una ronda |
|---|---|---|---|---|---|
| gpt-5.6-sol | $4 | $0.4 | $20 | 1,000,000 | Aprox. $0.214 |
| gpt-5.6-terra | $2 | $0.2 | $12 | 1,000,000 | Aprox. $0.107 |
| gpt-5.6-luna | $0.2 | $0.02 | $1.2 | 1,000,000 | Aprox. $0.011 |
Todos los precios son por millón de tokens y se consultaron el 2026-10-28. Cuando una petición supera los 272,000 tokens de entrada, el precio de entrada se duplica.
💰 Sobre los precios: consulta la lista de modelos de APIYI / apiyi.com para conocer los modelos y precios vigentes. Los ejemplos de la tabla se calculan con un total de 120,000 tokens de entrada por ronda, de los cuales 96,000 se recuperan de la caché, y 4,000 tokens de salida. Para sol: 24,000 sin caché × $4 + 96,000 desde la caché × $0.4 + 4,000 de salida × $20. Al dividir el resultado entre un millón, el total es de aproximadamente $0.214.
Estas cifras muestran dos cosas. Primero, los 96,000 tokens recuperados de la caché solo costaron unos $0.038: la caché es clave para controlar el costo de las conversaciones largas. Segundo, si se usa luna para la misma tarea, el costo es cercano a una veinteava parte del de sol. Eso sí, la página oficial de luna señala que su rendimiento es más débil con contextos muy largos, por encima de 256K.

Comprobación: puedes calcular cuántos tokens de entrada más consumió esta ronda respecto a la anterior y decir cuántos de esos tokens adicionales se recuperaron de la caché.
Quinto paso: usar los datos de tokens de Codex para decidir si comprimir o abrir una nueva ventana
Con los datos de cada turno, puedes basar la decisión en cifras. Presta atención a tres señales:
- Crecimiento de la entrada: si la entrada aumenta cada vez más en cada turno, las salidas de las herramientas y el historial se están acumulando rápidamente.
- Proporción de lectura de caché: si el porcentaje de la entrada leído de la caché baja notablemente en la columna de descripción, el prefijo ha cambiado y la mayor parte de la entrada nueva se cobra a precio completo.
- Entrada de una solicitud: cuando se acerca a 272.000, la siguiente solicitud cruzará el umbral de precios.
Tabla para decidir entre comprimir y abrir una nueva ventana
| Lo que ves en el registro | Acción recomendada | Motivo |
|---|---|---|
| La entrada de una solicitud se acerca a 272.000 y la tarea aún no termina | Ejecuta /compact manualmente |
Evitas que el precio de entrada se duplique al cruzar el umbral |
| La entrada de una solicitud se acerca a 272.000 y la tarea ya llegó a un punto de cierre | Abre una nueva ventana | Empezar de nuevo deja un contexto más limpio que comprimir |
| La proporción de lectura de caché baja durante varios turnos seguidos | Abre una nueva ventana y cambia de tema | La caché ya no se está aprovechando y, si sigues, gran parte de la entrada se cobrará a precio completo |
| El incremento de entrada por turno aumenta de repente | Revisa la salida de las herramientas y, si hace falta, reduce tool_output_token_limit |
Se han añadido al historial salidas de comandos extensas |
| La entrada es estable y la proporción de lectura de caché es alta | Continúa la conversación actual | En estas condiciones, una conversación larga ofrece la mejor relación calidad-precio |
| Acabas de comprimir y el contexto vuelve a estar casi lleno | Abre una nueva ventana | Comprimir varias veces hace que el resumen pierda cada vez más detalle |

Cómo configurar la compresión del contexto en Codex
La compresión sustituye los turnos anteriores de la conversación por un resumen breve para liberar espacio en el contexto. Codex admite dos formas de hacerlo: manual y automática.
- Compresión manual: puedes escribir
/compacttanto en la aplicación de escritorio como en la CLI. - Compresión automática:
model_auto_compact_token_limitestablece el umbral que la activa. Si no lo configuras, se usa el valor predeterminado del modelo. - Alcance del cálculo del umbral:
model_auto_compact_token_limit_scopeadmitetotal(calcula todo el contexto activo) obody_after_prefix(solo calcula la parte añadida después del prefijo incluido). - Al usar un
base_urlde terceros: si el nombre del modelo no aparece en la tabla integrada de Codex, conviene configurar manualmentemodel_context_windowy el umbral de compresión automática. Si quieres activar la compresión antes de pasar al siguiente tramo de precios, puedes fijar el umbral por debajo de 272.000. - No actives
remote_compactionsin comprobarlo: si lo configuras comov2, el proveedor debe admitir el protocolo de compresión de Responses. Es más seguro mantenerlo enunsupportedy usar la compresión local.
El coste de la compresión
La compresión no es gratis. Reescribe el prefijo del historial, lo que invalida la caché. Por eso, la entrada de la primera solicitud después de la compresión se factura casi íntegramente a precio completo. Una vez completada, lo mejor es empezar directamente con un tema nuevo y no volver a repetir tareas anteriores. Además, la compresión hace que se pierdan detalles: el resumen no garantiza que se conserve toda la información.
Preguntas frecuentes FAQ
Q1: No encuentro una solicitud en los registros. ¿No se registró?
Los registros solo incluyen las invocaciones que se facturaron correctamente. Las solicitudes que fallan por problemas de red, autenticación o validación de parámetros no llegan al proveedor, no generan cargos y tampoco aparecen en los registros. Por el contrario, si hay un registro, significa que la solicitud sí generó consumo. Comprueba también que hayas seleccionado el filtro de token y el intervalo de tiempo correctos.
Q2: ¿Por qué el importe es menor que mi estimación basada en tokens?
La causa más habitual es la caché. El canal de OpenAI utiliza caché automática de prefijos: se activa cuando el prefijo tiene al menos 1024 tokens y permanece estable. La parte recuperada de la caché se factura al 10 % del precio de entrada. En la columna de descripción de los registros de APIYI / apiyi.com puedes ver cuántos tokens se leyeron de la caché. Además, los registros muestran el importe antes del descuento; el costo real ≈ importe del registro ÷ (1 + proporción de bonificación).
Q3: ¿Por qué la hora del registro no coincide con la de mi actividad?
Por defecto, los registros se muestran en UTC+0. La hora de Pekín es UTC+8, así que hay una diferencia de 8 horas. Si filtras «la ronda de las tres de la tarde» según la hora de Pekín, puede parecer que faltan datos. Solo tienes que convertir la hora antes de aplicar el filtro.
Q4: ¿Durante cuánto tiempo se conservan los registros?
Conviene planificar suponiendo que podrás consultar aproximadamente los últimos 30 días. El período real puede ser más largo, pero la plataforma no lo garantiza y la política de limpieza puede cambiar. Si necesitas conciliar los gastos a largo plazo, guarda los datos periódicamente mediante «Exportar» o la API de consulta de registros.
Q5: ¿Puedo ver en los registros qué archivos leyó Codex y qué contenido envió?
No. Los registros solo conservan la información básica necesaria para la facturación, como el número de tokens, el importe y el multiplicador. No registran el contenido de entrada ni de salida. Si quieres saber qué ocurrió en una ronda, tendrás que consultar la conversación de Codex.
Q6: ¿Hay una forma más sencilla de registrar automáticamente el consumo de cada ronda?
Si ejecutas Codex mediante scripts, puedes usar `codex exec –json` y leer el campo usage del evento `turn.completed`. En el uso interactivo, puedes utilizar la API de consulta de registros para recuperar y agregar periódicamente los datos por token dedicado y ventana de tiempo. Si eres nuevo, puedes obtener crédito gratuito de prueba en APIYI / apiyi.com para probar el proceso completo.
Puntos clave sobre el consumo de tokens por turno en Codex
- La opción no ha desaparecido: consulta el uso del contexto en
/status. En la CLI también puedes añadirlo al pie de pantalla con/statusline. - Una solicitud no equivale a un turno: un turno de conversación incluye varias llamadas a herramientas y ocupa varias filas en los registros. Hay que sumarlas según el intervalo de tiempo.
- Clave dedicada: crea una clave exclusiva para Codex para poder filtrar sus registros con claridad.
- Revisa la columna de detalles: las lecturas y escrituras de caché aparecen por separado. Los aciertos de caché se facturan al 10 % del precio.
- Umbral de 272K: si la entrada de una sola solicitud supera los 272.000 tokens, el precio de entrada se duplica.
- La compresión tiene un costo: después de comprimir, la caché deja de ser válida y casi toda la entrada de esa solicitud se cobra a precio completo. Tras la compresión, conviene pasar directamente a un tema nuevo.
Conclusión
Si no ves el uso del contexto en Codex, no es porque hayan eliminado la función: solo ha cambiado de lugar. /status te dice cuánto contexto queda y los registros de llamadas te muestran cuánto ha costado cada turno. Combinando ambos datos, puedes decidir con cifras si te conviene abrir una ventana nueva.
Puedes probarlo hoy mismo: crea una clave dedicada para Codex, abre la página de registros de APIYI / apiyi.com, elige un turno reciente de conversación y suma las solicitudes que le corresponden.
📚 Referencias
- Repositorio oficial de OpenAI Codex: código fuente de la CLI y definición de eventos
- Enlace:
github.com/openai/codex -
Detalles:
codex-rs/exec/src/exec_events.rsdefine el campousagedeturn.completed -
Documentación oficial de Codex: referencia de comandos de barra y configuración
- Enlace:
developers.openai.com/codex -
Detalles: información sobre
/status,/compact,/statusliney las opciones de configuración relacionadas con la compresión -
Documentación de ayuda de APIYI: registros de llamadas, facturación de caché y API de consulta de registros
- Enlace:
docs.apiyi.com - Detalles: definición de los campos de registro, regla de facturación de caché al 10 % y método de conversión de
quota
Autor: Equipo técnico de APIYI
Consultas técnicas: contáctanos desde la página principal de APIYI. Encontrarás más información sobre la configuración en el centro de documentación.
