Conecta Codex a Model.sale.
Usa una sola clave prepago de Model.sale en Codex CLI, la app de Codex o VS Code. La conexión usa el protocolo Responses, mantiene el secreto en local y se factura con el mismo monedero que el resto de tu uso de la API.
https://api.model.sale/v1 como base URL y elige un modelo devuelto por /v1/models.Antes de empezar
- Inicia sesión en model.sale y crea una API key en API Keys. El secreto completo se muestra una sola vez.
- Deposita fondos en Facturación o usa el crédito de prueba único de Telegram si tu cuenta es elegible.
- Abre
GET https://api.model.sale/v1/modelsy elige un modelo cuyo estado sea activo. No adivines un ID de modelo ni sustituyas en silencio otro modelo. - Instala el cliente de Codex y elige después el método de variable de entorno o la configuración TOML de abajo.
Opción A — variable de entorno local
Es la configuración más sencilla para Codex CLI y funciona bien en desarrollo local. El cliente lee el valor en tiempo de ejecución en lugar de incrustarlo en el comando.
mkdir -p "$HOME/.config/model-sale"
umask 077
read -rsp "Model.sale API key: " MODEL_SALE_API_KEY; echo
printf 'export MODEL_SALE_API_KEY=%q\n' "$MODEL_SALE_API_KEY" > "$HOME/.config/model-sale/env"
chmod 600 "$HOME/.config/model-sale/env"
unset MODEL_SALE_API_KEY
source "$HOME/.config/model-sale/env"Añade la última línea source a ~/.zshrc o ~/.bashrc si quieres que se cargue en las shells nuevas. Reinicia Codex tras cambiar el entorno.
Opción B — proveedor personalizado de Codex
Codex admite un proveedor personalizado en ~/.codex/config.toml. Mantén la clave fuera de este archivo y refiérela mediante env_key.
[model_providers.model_sale]
name = "Model.sale"
base_url = "https://api.model.sale/v1"
env_key = "MODEL_SALE_API_KEY"
wire_api = "responses"Si ya tienes una configuración, haz una copia antes de editar. Selecciona model_sale como proveedor en el cliente y elige un modelo activo del catálogo. La etiqueta exacta de la interfaz puede variar entre versiones de Codex.
Codex App y VS Code
- Abre los ajustes de proveedor o de endpoint personalizado en la app o la extensión.
- Establece la base URL en
https://api.model.sale/v1. - Elige Responses como protocolo cuando el cliente pida uno.
- Establece la variable de entorno de la API key en
MODEL_SALE_API_KEY; no pegues el secreto en un archivo del proyecto. - Reinicia la app o recarga la ventana de VS Code y elige después un modelo activo.
Model.sale expone la ruta estándar de Responses en /v1/responses. El cliente debe conservar el ID de modelo solicitado y mostrar un error si ese modelo no está disponible.
Verifica con una solicitud mínima
Ejecútalo desde la misma shell en la que se ejecutará Codex. El ejemplo usa un prompt pequeño para no gastar más de lo necesario.
Este ejemplo usa el modelo de Responses publicado actualmente: gpt-5.5. Confirma que sigue en GET /v1/models antes de enviar una solicitud.
curl https://api.model.sale/v1/responses \
-H "Authorization: Bearer $MODEL_SALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","input":"Reply exactly: OK"}'| Comprobación | Resultado esperado |
|---|---|
| Estado | 200 con un objeto JSON de Responses. |
| ID de solicitud | x-model-sale-request-id está presente. Guárdalo al contactar con soporte. |
| Uso | El uso de entrada/salida aparece en la respuesta o en la página de Uso y la reserva se liquida. |
| Saldo | El monedero disminuye por el cargo mostrado; la reserva no utilizada se libera. |
stream: true. Los eventos se envían según llegan y el evento final de uso es necesario para una liquidación exacta.Solución de problemas
| Síntoma | Qué comprobar |
|---|---|
401 no autorizado | Confirma que la variable está cargada en el proceso del cliente, que la clave empieza por ms_live_ y que no se revocó. No imprimas nunca la clave completa en los registros. |
402 o saldo insuficiente | Recarga el monedero y comprueba el saldo disponible frente al reservado temporalmente. La reserva inicial se libera tras el uso final. |
404 modelo no encontrado | Actualiza /v1/models y copia el ID exacto del modelo activo. No añadas alias específicos del proveedor. |
429 límite de frecuencia o de gasto | Espera a que termine la ventana del límite, reduce las solicitudes en paralelo o actualiza los límites de la clave en el panel. |
| No aparece ningún modelo en el cliente | Reinicia Codex, verifica wire_api = "responses", comprueba que la base URL no tenga un /v1 duplicado y prueba primero la solicitud con curl. |
| El stream se detiene antes de tiempo | Reintenta una vez, anota el ID de solicitud y revisa Uso. Una desconexión no es motivo para reenviar repetidamente; el trabajo duplicado puede cobrarse por separado. |
Reversión e higiene de claves
Para revertir, restaura tu ~/.codex/config.toml guardado, elimina ~/.config/model-sale/env y quita la línea source de tu perfil de shell. Revoca la clave en API Keys si la máquina era compartida o el secreto pudo copiarse.
Model.sale guarda los metadatos de solicitud necesarios para facturación y operaciones, no el cuerpo de tu prompt ni de la respuesta. Cuida igual tus propios registros de cliente: desactiva el registro detallado de solicitudes cuando pueda incluir cabeceras de autorización o contenido del modelo.
Preguntas frecuentes
¿Es una API key de OpenAI?
No. Usa una clave de Model.sale y la base URL de Model.sale. El formato Responses es compatible con los clientes de Codex, pero la credencial pertenece a tu cuenta de Model.sale.
¿Puedo usar cualquier nombre de modelo?
Usa solo los ID devueltos por /v1/models. El catálogo cambia al variar la validación y la disponibilidad; los modelos no disponibles no se aceptan para tráfico de clientes.
¿Dónde veo lo que he gastado?
Abre Uso tras la solicitud. Muestra el endpoint, el modelo, el estado, el uso de tokens, el cargo y el ID de solicitud sin almacenar el contenido del prompt.