Documentación de la API compatible con OpenAI

ChatGPT, Codex y GLM a través de una sola API.

Model.sale ofrece una base URL compatible con OpenAI, conocida, para modelos GPT compatibles con ChatGPT, clientes de Codex, GLM y DeepSeek. Mantén tu clave en el servidor, usa el ID de un modelo activo e inspecciona el ID de solicitud y el uso que se devuelven con cada llamada.

GPT compatible con ChatGPTUsa Responses o Chat Completions desde un SDK de OpenAI. El ID del modelo se mantiene sin cambios de principio a fin.
CodexConecta Codex CLI, la app o VS Code con el protocolo Responses y elige un modelo cuya fila del catálogo incluya /v1/responses.
GLM y DeepSeekLlama a los ID de modelos abiertos activos con Chat Completions y streaming SSE opcional.
1. AutenticaciónEnvía Authorization: Bearer ms_live_…. Las claves se muestran una sola vez y se pueden revocar desde el panel.
2. Añade saldoDeposita al menos 5 US$. Los fondos se reservan antes del envío y se liquidan a partir del uso final.
3. Llama a un modeloUsa un modelo de GET /v1/models. Una solicitud nunca se redirige en silencio a otro modelo.

Endpoints

MétodoRutaFinalidad
GET/v1/modelsCatálogo activo publicado
GET/v1/models/{id}Un modelo invocable (models.retrieve de OpenAI)
GET/v1/catalogRegistro completo con precios y estado activo/no disponible
POST/v1/responsesResponses JSON y SSE (GPT/Codex)
POST/v1/chat/completionsChat Completions JSON y SSE (GPT/GLM/DeepSeek)
POST/v1/messagesSolo cuando se publica la validación de Anthropic Messages
¿Por qué faltan algunos modelos del catálogo en /v1/models? /v1/models contiene intencionadamente solo los modelos admitidos ahora mismo para tráfico de clientes. /v1/catalog mantiene visibles todos los ID con precio, con su resultado de sonda y los endpoints compatibles, incluidos los modelos que pasaron una comprobación activa pero aún esperan una publicación auditada de precio/margen. Un modelo solo se admite tras una comprobación JSON/SSE reciente, el uso final y la aprobación de publicación; nunca se sustituye en silencio.

Capacidades de los protocolos

Usa /v1/catalog para ver los supported_endpoints actuales de cada modelo. Codex requiere un modelo activo con /v1/responses; GLM y DeepSeek usan actualmente /v1/chat/completions. Los ID de Claude siguen visibles cuando tienen precio, pero el acceso por Messages solo se activa tras superar su validación.

Solicitud mínima de Responses

Ejemplo actual publicado de Responses: gpt-5.5. Confirma que sigue apareciendo en GET /v1/models.

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"}'

Streaming

Establece stream: true. Los streams de Responses terminan con un evento final de response; los de Chat Completions, con [DONE]. La pasarela añade x-model-sale-request-id a cada respuesta. Se necesita el uso para una liquidación exacta; el uso incompleto se marca para conciliación.

Autenticación

Envía la clave como Authorization: Bearer ms_live_… (SDK de OpenAI, Codex) o x-api-key: ms_live_… (SDK de Anthropic). Las aplicaciones de navegador pueden llamar a la API directamente: CORS está activado para /v1/* sin cookies; entrega una clave solo a un navegador que controles.

Errores y límites

Los errores usan el formato de OpenAI {"error":{"message","type","param","code"}} (formato de Anthropic en /v1/messages). type es la categoría y code el motivo concreto.

EstadotypeCódigo típicoQué hacer
400invalid_request_errorinvalid_json, model_requiredCorrige el cuerpo de la solicitud; el mensaje indica el problema.
401authentication_errorinvalid_api_keyComprueba la clave o crea una nueva en el panel.
402insufficient_quotainsufficient_balanceRecarga en Facturación y vuelve a intentarlo.
403permission_errormodel_not_allowed, ip_not_allowedAjusta las restricciones de modelo o de IP de la clave.
404not_found_errormodel_not_foundUsa un ID de GET /v1/models.
413invalid_request_errorrequest_too_largeLos cuerpos de solicitud están limitados a 8 MB.
429rate_limit_errorrate_limit_exceeded, spend_limit_exceededEspera Retry-After segundos o sube los límites de la clave.
502/503server_errorupstream_error, model_unavailableReintenta con retroceso; las solicitudes fallidas no se cobran.

Tu primera solicitud en menos de un minuto.

Crea una clave, recarga desde 5 US$ y cambia la base URL. Sin suscripción ni cargos ocultos.

Obtén tu API keyLeer la documentación