PT ▾
Obter chave de API

URL base da API Codex: Como apontar seu cliente para o nosso

A URL base da API codex para este serviço é https://api.getcodexapi.com/v1, o ID do modelo é uncensored e sua chave vai em um cabeçalho Bearer padrão. Qualquer SDK ou cliente compatível com OpenAI funciona após alterar esses valores.

Atualizado

Um cabo brilhante conectando um laptop a um cubo de servidor, ilustrando o apontamento de um cliente para uma URL base de API

Pontos principais

  • URL base: https://api.getcodexapi.com/v1 (inclua /v1, remova o caminho do endpoint).
  • O ID do modelo é uncensored e a autenticação é Authorization: Bearer com sua chave.
  • Teste a conexão primeiro com GET /v1/models antes de conectar um aplicativo maior.
  • A maioria das falhas vem de um /v1 duplicado, um caminho solto ou uma chave errada.

Os três valores necessários

Todo cliente compatível com OpenAI solicita as mesmas três coisas. Aqui estão elas para este serviço.

ConfiguraçãoValor
URL basehttps://api.getcodexapi.com/v1
Chave de APISua chave da página de chaves de API
Modelouncensored

A chave é enviada como Authorization: Bearer YOUR_KEY. Os dois endpoints que você pode chamar são POST /v1/chat/completions e GET /v1/models. Este é um serviço independente executando um único modelo de pesos abertos, não o Codex da OpenAI, então não cole o endpoint da OpenAI ou uma chave da OpenAI na mesma configuração.

Verifique a conexão com curl

Antes de editar qualquer configuração de aplicativo, confirme se a chave e a URL funcionam a partir de um terminal. Listar modelos é a verificação mais barata, pois não requer prompt:

curl https://api.getcodexapi.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

Você deve receber uma lista JSON que inclua o modelo uncensored. Em seguida, envie uma conclusão real:

curl https://api.getcodexapi.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Say hello in five words."}]
  }'

Se ambas as chamadas funcionarem, o problema em qualquer falha posterior está na configuração do seu cliente, não no serviço. Os cabeçalhos de resposta incluem X-Request-Id, que é útil para manter se você precisar rastrear uma chamada específica, e X-Balance-USD, que mostra seu crédito restante.

Python com o SDK OpenAI

O pacote oficial openai aceita a URL base no construtor do cliente. Nada mais no seu código muda.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.getcodexapi.com/v1",
    api_key="YOUR_API_KEY",
)

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain what a base URL is in two sentences."},
    ],
)
print(resp.choices[0].message.content)

Se você preferir manter a configuração fora do código, o SDK também lê OPENAI_BASE_URL e OPENAI_API_KEY do ambiente:

export OPENAI_BASE_URL="https://api.getcodexapi.com/v1"
export OPENAI_API_KEY="YOUR_API_KEY"

Com isso definido, OpenAI() sem argumentos os reconhece. Isso é útil porque muitas ferramentas de terceiros baseadas no SDK herdam as mesmas variáveis sem nenhuma alteração de código.

Node.js

O SDK JavaScript usa o mesmo nome de opção, escrito como baseURL.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.getcodexapi.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Write a haiku about version control." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

O streaming retorna como eventos enviados pelo servidor com stream: true, e o uso é incluído no final. Lembre-se de que uma requisição em streaming ocupa um dos seus slots de concorrência até que o streaming termine, então um streaming que você abandona sem fechar continua contando contra o limite.

Aplicativos com tela de configurações

Ferramentas de desktop e editores geralmente rotulam o campo de uma das três formas: "Base URL", "API Base" ou "endpoint compatível com OpenAI". Todos eles querem a mesma string. Algumas notas que economizam tempo:

  • Escolha o tipo de provedor OpenAI ou "OpenAI compatível personalizado", não um específico de fornecedor.
  • Digite o nome do modelo manualmente se o aplicativo tiver uma caixa de texto livre. uncensored é o ID exato.
  • Se o aplicativo tiver um botão "testar conexão", ele geralmente chama a lista de modelos, que esta API suporta.
  • Alguns aplicativos armazenam em cache a lista de modelos de um provedor anterior. Remova a entrada antiga e adicione uma nova se a lista suspensa parecer errada.

Para um exemplo prático em um editor específico, consulte o guia de conexão do Cursor, ou a página da API de codificação para o panorama geral. A referência completa de parâmetros está na documentação da API.

Assim que a conexão funcionar, salve os valores exatos em algum lugar onde você possa encontrá-los novamente: a URL, o nome do modelo e a data em que criou a chave. Equipes frequentemente perdem uma hora depois com uma cópia da configuração que ainda contém um valor antigo. Um único arquivo de exemplo compartilhado no repositório, com um placeholder em vez da chave real, impede isso.

Erros comuns e correções

A URL termina como /v1/v1

Alguns clientes adicionam /v1 automaticamente. Se suas solicitações falharem e o log do cliente mostrar um caminho com /v1/v1/chat/completions, remova o /v1 da URL base que você inseriu. O inverso também acontece: um cliente que não o adiciona precisa dele na sua configuração. O log do caminho da solicitação resolve a questão rapidamente.

Você colocou o endpoint completo na URL base

A URL base termina em /v1. Não insira /chat/completions lá. O SDK adiciona o caminho para cada chamada.

Uma barra final ou um erro de digitação no host

A maioria dos SDKs tolera uma barra final, mas algumas ferramentas mais antigas constroem caminhos por concatenação simples e acabam com uma barra dupla. Remova-a se você vir respostas 404 estranhas.

Chave errada ou a chave de outro serviço

Uma chave da OpenAI não funcionará aqui, e a nossa não funcionará lá. Erros de autenticação quase sempre significam um problema de copiar e colar, como um caractere faltando ou um espaço no final.

Funciona no curl, mas não no seu aplicativo

Se o curl tiver sucesso e o aplicativo falhar com a mesma URL e chave, a diferença está no ambiente. Verifique se o aplicativo está atrás de um proxy ou dentro de um contêiner sem acesso de saída, se ele lê uma variável de ambiente mais antiga como um OPENAI_BASE_URL obsoleto deixado de outro projeto, e se um arquivo de configuração substitui o valor definido no código. Imprimir a URL final que o cliente chamará, logo antes da solicitação, resolve a maioria desses casos em um minuto.

HTTP 429

Isso significa que um limite foi atingido. O código de erro rate_limited refere-se a solicitações por minuto, e concurrency refere-se a muitas solicitações ao mesmo tempo. Uma chave completa permite 8 solicitações simultâneas e 300 por minuto; uma chave de teste permite 2 e 60. Em sobrecarga temporária, você também recebe um 429 com um cabeçalho Retry-After: 5, então aguarde cinco segundos e tente novamente.

LangChain e manter a URL em um só lugar

Frameworks baseados no cliente OpenAI usam os mesmos valores. Na integração OpenAI do LangChain, os argumentos são nomeados assim:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="uncensored",
    base_url="https://api.getcodexapi.com/v1",
    api_key="YOUR_API_KEY",
)
print(llm.invoke("Name three uses of a base URL.").content)

Qualquer que seja o framework, não espalhe a URL pelo seu código. Coloque-a em uma única variável de ambiente ou arquivo de configurações e leia-a a partir daí. Dessa forma, mudar entre uma chave de teste e uma de produção, ou entre máquinas, significa alterar uma única linha. Isso também mantém as chaves fora do seu repositório: armazene a chave em uma variável de ambiente ou gerenciador de segredos, nunca em um arquivo confirmado.

Se você estava procurando o endpoint próprio da OpenAI para seus produtos Codex, este não é. Sua URL base e autenticação são documentadas pela OpenAI, então siga a documentação atual deles para isso. O endereço nesta página pertence a um serviço independente e aceita apenas chaves emitidas aqui.

O que você pode enviar após conectar

O endpoint suporta streaming, chamada de funções (tools, tool_choice, com resultados retornados como mensagens role: "tool") e modo JSON via response_format: {"type": "json_object"}. Os parâmetros temperature, top_p, stop, seed e as penalidades são repassados. A janela de contexto é de 100.000 tokens para prompt mais conclusão, e o corpo máximo da requisição é de 8 MB.

É apenas texto. Não há geração de imagem ou áudio, nem embeddings nem fine-tuning, então um recurso do cliente que dependa disso não funcionará com este Base URL. O uso é cobrado por token a $0.15 por 1M de entrada e $0.50 por 1M de saída; a página de preços tem exemplos práticos.

Perguntas e respostas

Qual é a URL base?

É https://api.getcodexapi.com/v1. Use-o como a URL base em qualquer SDK ou aplicativo compatível com OpenAI, com o modelo definido como uncensored.

Este é o endpoint oficial da OpenAI Codex?

Não. É uma API independente, compatível com OpenAI, que executa um único modelo de pesos abertos. Não é executado pela OpenAI ou por qualquer outro fornecedor de modelos.

Por que recebo 404 após alterar a URL base?

Normalmente o caminho está errado, seja um /v1 duplicado ou o caminho do endpoint incluído na URL base. Verifique o log de solicitações do seu cliente e ajuste.

Preciso de um SDK especial?

Não. Os SDKs padrão da OpenAI para Python e Node funcionam, assim como HTTP puro com curl. Você só altera a URL base, a chave e o nome do modelo.

Sua chave está a um formulário de distância

Crie uma conta, copie a chave e altere a URL base. Essa é toda a configuração.

Obter chave de API