Documentação da API compatível com OpenAI

ChatGPT, Codex e GLM em uma única API.

O Model.sale expõe uma base URL familiar, compatível com OpenAI, para GPT compatível com ChatGPT, clientes Codex e modelos GLM. Mantenha sua key no servidor, use um model ID ativo e confira o request ID e o usage retornado em cada chamada.

GPT compatível com ChatGPTUse Responses ou Chat Completions de um SDK da OpenAI. O model ID permanece o mesmo de ponta a ponta.
CodexConecte o Codex CLI, o App ou o VS Code com o protocolo Responses e selecione um modelo cuja linha do catálogo inclua /v1/responses.
GLMChame os model IDs ativos de modelos abertos com Chat Completions e streaming SSE opcional.
1. Autentique-seEnvie Authorization: Bearer ms_live_…. As keys são exibidas uma única vez e podem ser revogadas no dashboard.
2. Adicione saldoDeposite pelo menos US$ 5. Os fundos são reservados antes do envio e liquidados com base no usage final.
3. Chame um modeloUse um modelo de GET /v1/models. Um request nunca é roteado silenciosamente para outro modelo.

Endpoints

MétodoCaminhoFinalidade
GET/v1/modelsCatálogo ativo publicado
GET/v1/models/{id}Um modelo chamável (OpenAI models.retrieve)
GET/v1/catalogRegistro completo com preços e status ativo/indisponível
POST/v1/responsesResponses em JSON e SSE (GPT/Codex)
POST/v1/chat/completionsChat Completions em JSON e SSE (GPT/GLM)
POST/v1/messagesSomente quando a validação do Anthropic Messages for publicada
Por que alguns modelos do catálogo não aparecem em /v1/models? O /v1/models contém intencionalmente apenas os modelos liberados para tráfego de clientes neste momento. O /v1/catalog mantém visível todo ID com preço, junto do resultado do probe e dos endpoints suportados, incluindo modelos que passaram na checagem em tempo real mas ainda aguardam a publicação auditada de preço/margem. Um modelo só é liberado após uma nova checagem de JSON/SSE, do usage final e da aprovação da publicação; ele nunca é substituído silenciosamente.

Capacidades do protocolo

Use /v1/catalog para ver os supported_endpoints atuais de cada modelo. O Codex exige um modelo ativo com /v1/responses; o GLM atualmente usa /v1/chat/completions. Os IDs do Claude continuam visíveis quando precificados, mas o acesso a Messages só é habilitado depois que a validação dele passa.

Request mínimo de Responses

Exemplo atual de modelo Responses publicado: codex-auto-review. Confirme se ele ainda aparece em GET /v1/models.

curl https://api.model.sale/v1/responses \
  -H "Authorization: Bearer $MODEL_SALE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"codex-auto-review","input":"Hello"}'

Streaming

Defina stream: true. Streams de Responses terminam com um evento de resposta terminal; streams de Chat Completions terminam com [DONE]. O gateway adiciona x-model-sale-request-id a toda resposta. O usage é obrigatório para uma cobrança exata; usage incompleto é marcado para reconciliação.

Autenticação

Envie a key como Authorization: Bearer ms_live_… (SDKs da OpenAI, Codex) ou x-api-key: ms_live_… (SDKs da Anthropic). Apps de browser podem chamar a API diretamente: o CORS está habilitado para /v1/* sem cookies — só envie uma key para um browser que você controla.

Erros e limites

Os erros usam o formato da OpenAI {"error":{"message","type","param","code"}} (formato da Anthropic em /v1/messages). type é a categoria e code o motivo específico.

StatusTipoCódigo típicoO que fazer
400invalid_request_errorinvalid_json, model_requiredCorrija o corpo da requisição; a mensagem indica o problema.
401authentication_errorinvalid_api_keyVerifique a key ou crie uma nova no dashboard.
402insufficient_quotainsufficient_balanceFaça uma recarga em Faturamento e tente novamente.
403permission_errormodel_not_allowed, ip_not_allowedAjuste as restrições de modelo ou de IP da key.
404not_found_errormodel_not_foundUse um ID de GET /v1/models.
413invalid_request_errorrequest_too_largeOs corpos das requisições são limitados a 8 MB.
429rate_limit_errorrate_limit_exceeded, spend_limit_exceededAguarde Retry-After segundos ou aumente os limites da key.
502/503server_errorupstream_error, model_unavailableTente novamente com backoff; requisições com falha não são cobradas.

Sua primeira requisição em menos de um minuto.

Crie uma chave, recarregue a partir de US$ 5 e troque a base URL. Sem assinatura, sem taxas escondidas.

Obtenha sua API keyLer a documentação