Cómo configurar una API compatible con OpenAI en Codex

Configura un proveedor personalizado en Codex con Responses API, un perfil independiente y una clave en el entorno; incluye Windows, verificación, errores y reversión.

Cómo configurar una API compatible con OpenAI en Codex

Para conectar una API compatible con OpenAI a Codex, añade un proveedor de modelos personalizado a la configuración de usuario de Codex. Debes indicar la Base URL del proveedor, la variable de entorno que contiene la API Key y el protocolo responses. Que un proveedor sea compatible con /v1/chat/completions no basta: Codex utiliza actualmente Responses API.

Para BetterToken, la combinación operativa es base_url = "https://www.bettertoken.ai/v1?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-016&utm_content=openai-sovmestimyy-api-codex-podklyuchenie", env_key = "BETTERTOKEN_API_KEY" y wire_api = "responses". Consulta la guía actual de Codex de BetterToken, crea tu propia API Key y copia el Model ID completo vigente desde Setup, model plaza o la guía actual. Los nombres de grupos y los mappings pueden cambiar, así que no los reutilices desde ejemplos antiguos. Esta configuración corresponde al acceso API de pago por uso; no convierte BetterToken en una suscripción de ChatGPT o Codex.

Requisitos previos

  • Node.js y npm, necesarios para instalar el Codex CLI oficial.
  • Tu propia cuenta de BetterToken, tu propia API Key y el Model ID completo vigente de Setup o model plaza.
  • Saldo o una cuota de prueba disponible para una solicitud corta.
  • Una terminal de macOS/Linux o Windows PowerShell. A continuación se incluyen comandos para ambos sistemas.
  • Si utilizas otro proveedor, confirmación de que admite Responses API, streaming SSE y las tool calls que necesitas.

Antes de configurar: comprueba la compatibilidad

Requisito de CodexQué debes confirmar con el proveedorPor qué importa
Responses APIAdmite /v1/responses y streamingChat Completions no sustituye este protocolo
Autenticación BearerLa clave se lee desde una variable de entornoEvita guardar el secreto en un TOML público
Model IDEl identificador exacto está disponible para tu claveEl nombre comercial puede no coincidir con el ID de la API
Streaming SSEGestiona respuestas largas y desconexionesCodex recibe la salida en streaming
Tool callsAdmite las herramientas y los campos de Responses que necesitas«Compatible con OpenAI» no garantiza compatibilidad funcional completa

Si el proveedor solo documenta Chat Completions y no menciona Responses API, pide confirmación o haz una prueba mínima antes de migrar un repositorio real. No copies sin verificar la configuración de un cliente de chat convencional.

Paso 1. Instala o actualiza Codex CLI

npm install -g @openai/codex codex --version

Comprueba los campos vigentes en la referencia oficial de configuración de Codex. A fecha de 14 de agosto de 2026, model_provider selecciona una entrada de model_providers, env_key define la variable que contiene la clave y el único valor admitido para wire_api es responses.

Paso 2. Crea un archivo de perfil independiente

La referencia actual de configuración de OpenAI guarda el perfil con nombre en $CODEX_HOME/bt.config.toml. De forma predeterminada, CODEX_HOME suele corresponder a ~/.codex en macOS/Linux y a %USERPROFILE%\.codex en Windows, pero un valor personalizado tiene prioridad y cambia la ruta real.

Comprueba el directorio en macOS/Linux sin modificar la variable:

printf '%s\n' "${CODEX_HOME:-$HOME/.codex}"

En PowerShell:

if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE ".codex" }

Crea bt.config.toml exactamente en el directorio mostrado:

model = "YOUR_MODEL_ID" model_provider = "bettertoken" [model_providers.bettertoken] name = "BetterToken" base_url = "https://www.bettertoken.ai/v1?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-016&utm_content=openai-sovmestimyy-api-codex-podklyuchenie" env_key = "BETTERTOKEN_API_KEY" wire_api = "responses" requires_openai_auth = false request_max_retries = 4 stream_max_retries = 8 stream_idle_timeout_ms = 300000 supports_websockets = false

El archivo $CODEX_HOME/bt.config.toml corresponde al argumento --profile bt. Como este perfil no sustituye el archivo principal $CODEX_HOME/config.toml, el proveedor oficial sigue disponible.

Sustituye YOUR_MODEL_ID por el ID de API completo y vigente que figure en Setup, model plaza o la guía actual y que esté disponible para tu clave. No uses el título visible del modelo si difiere del ID de la API.

Codex añade /responses a la dirección del proveedor. Por eso la Base URL termina en /v1, no en /v1/responses. Si incluyes la ruta completa, puedes acabar enviando la solicitud a una URL duplicada.

Paso 3. Pasa la API Key mediante el entorno

En macOS/Linux:

export BETTERTOKEN_API_KEY="YOUR_API_KEY"

Para una configuración permanente, usa un gestor de secretos protegido o un archivo de inicio del shell con permisos adecuados. No añadas la clave al repositorio, a .env.example, al README ni a un comando que vaya a quedar en el historial de un equipo compartido.

Comprueba que la variable existe sin imprimir su valor:

test -n "$BETTERTOKEN_API_KEY" && echo "BETTERTOKEN_API_KEY is set"

En Windows PowerShell, define el valor para la ventana actual y guárdalo para las sesiones siguientes:

$env:BETTERTOKEN_API_KEY = "YOUR_API_KEY" [Environment]::SetEnvironmentVariable("BETTERTOKEN_API_KEY", "YOUR_API_KEY", "User") if ($env:BETTERTOKEN_API_KEY) { "BETTERTOKEN_API_KEY is set" }

Paso 4. Inicia el perfil y verifica la solicitud

Reinicia Codex y ejecuta:

codex --profile bt

La primera prueba debe ser breve y no modificar archivos:

Responde en una sola línea: CODEX_PROVIDER_OK. No modifiques archivos ni ejecutes comandos.

La conexión queda verificada cuando Codex responde sin errores, usa el Model ID elegido y aparece en BetterToken Workspace una solicitud nueva, posterior a la prueba, con el modelo, el estado y el consumo esperados. Una respuesta correcta por sí sola no demuestra qué ruta procesó la solicitud; contrasta también el registro de uso. Después, prueba a leer un único archivo y solo entonces permite cambios en un proyecto de trabajo.

El flujo de cuatro pasos y el comando --profile anteriores corresponden a Codex CLI. Codex Desktop utiliza los mismos campos del proveedor personalizado, pero debes comprobar en la guía vigente de BetterToken cómo seleccionar e iniciar su configuración. Para VS Code Extension, utiliza la guía específica y no traslades el perfil de CLI ni su método de autenticación sin comprobar la documentación actual.

Solución de problemas por tipo de error

No se encuentra el perfil o la configuración no se aplica

Comprueba tres coincidencias exactas: el archivo se llama bt.config.toml, el comando contiene --profile bt y model_provider = "bettertoken" coincide con la tabla [model_providers.bettertoken]. Después, cierra Codex por completo, abre una terminal nueva y repite la prueba corta.

Las variables antiguas de OpenAI pueden anular la ruta esperada. En macOS/Linux, comprueba únicamente si existen, sin imprimir sus valores:

test -n "$OPENAI_API_KEY" && echo "OPENAI_API_KEY is set" test -n "$OPENAI_BASE_URL" && echo "OPENAI_BASE_URL is set" unset OPENAI_API_KEY OPENAI_BASE_URL

En PowerShell, elimínalas de la sesión actual y de las futuras sesiones del usuario:

Remove-Item Env:OPENAI_API_KEY -ErrorAction SilentlyContinue Remove-Item Env:OPENAI_BASE_URL -ErrorAction SilentlyContinue [Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "User") [Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", $null, "User")

Después de limpiarlas, abre una terminal nueva, configura de nuevo solo BETTERTOKEN_API_KEY y ejecuta codex --profile bt.

404 o una página HTML en lugar de JSON

La ruta del endpoint suele ser incorrecta. Revisa que base_url no incluya /responses, /chat/completions ni otro prefijo del proxy. Para BetterToken, usa exactamente `https://www.bettertoken.ai/v1%60.?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-016&utm_content=openai-sovmestimyy-api-codex-podklyuchenie

401 o 403

Comprueba el nombre env_key, que la variable esté disponible en el mismo proceso y que la clave tenga acceso al modelo seleccionado. Si la clave pudo aparecer en un registro, revócala y crea otra antes de continuar.

model not found

Copia de nuevo el Model ID completo vigente desde Setup, model plaza o la guía actual y confirma que está disponible para tu clave. No adivines sufijos de versión ni trates el nombre de un grupo antiguo como permanente.

Error de Chat Completions o campo no compatible

Confirma wire_api = "responses" y que el proveedor implementa Responses API, incluidas las funciones de Codex que necesitas. Cambiar el valor por chat no lo resuelve: la referencia actual de Codex solo admite responses.

El streaming empieza y después se interrumpe

Repite una solicitud pequeña. Después, revisa el proxy, los timeouts y la compatibilidad con SSE. Aumentar los reintentos sin límite puede duplicar solicitudes y consumo.

Cómo revertir la configuración sin perder la oficial

Como el proveedor está aislado en $CODEX_HOME/bt.config.toml, termina la sesión actual e inicia Codex sin --profile bt. De este modo volverá a aplicarse el archivo principal $CODEX_HOME/config.toml. No borres auth.json ni sustituyas el token oficial por una API Key de terceros. Para VS Code Extension, sigue el procedimiento de reversión de su guía específica.

Conclusión

Para conectar una API compatible con OpenAI a Codex deben coincidir cuatro elementos: Responses API, la Base URL correcta, un Model ID disponible y una clave cargada desde el entorno. Configurarlos en un perfil independiente facilita la reversión; una prueba de solo lectura reduce el riesgo; y el registro de uso permite confirmar la ruta real.

Consulta la guía actual de Codex de BetterToken, crea tu propia API Key y ejecuta la primera solicitud de solo lectura mediante el perfil bt antes de abrir tu repositorio de trabajo.

¿Quieres optimizar tu flujo de trabajo con LLM?

Conecta modelos mediante una API, gestiona claves y controla el gasto en IA.