IT ▾
Ottieni la chiave API

URL base API Codex: come puntare il tuo client al nostro

L'URL di base dell'API codex per questo servizio è https://api.getcodexapi.com/v1, l'ID del modello è uncensored e la tua chiave va inserita in un header Bearer standard. Qualsiasi SDK o client OpenAI funziona una volta modificati questi valori.

Aggiornato

Un cavo luminoso che collega un laptop a un cubo server, che illustra il collegamento di un client a un URL di base API

Punti chiave

  • URL base: https://api.getcodexapi.com/v1 (includi /v1, ometti il percorso dell'endpoint).
  • L'ID del modello è uncensored e l'autenticazione è Authorization: Bearer con la tua chiave.
  • Testa la connessione con GET /v1/models prima di collegare un'app più complessa.
  • La maggior parte degli errori deriva da un /v1 duplicato, un percorso residuo o una chiave errata.

I tre valori di cui hai bisogno

Ogni client compatibile con OpenAI richiede le stesse tre cose. Ecco quali sono per questo servizio.

ImpostazioneValore
URL di basehttps://api.getcodexapi.com/v1
Chiave APILa tua chiave dalla pagina delle chiavi API
Modellouncensored

La chiave viene inviata come Authorization: Bearer YOUR_KEY. I due endpoint che puoi chiamare sono POST /v1/chat/completions e GET /v1/models. Questo è un servizio indipendente che esegue un modello a pesi aperti, non il Codex di OpenAI, quindi non incollare l'endpoint di OpenAI o una chiave OpenAI nella stessa impostazione.

Verifica la connessione con curl

Prima di modificare la configurazione di un'app, conferma che la chiave e l'URL funzionino da terminale. L'elenco dei modelli è il controllo più economico, poiché non richiede prompt:

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

Dovresti ricevere un elenco JSON che include il modello uncensored. Poi invia una vera completazione:

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 entrambe le chiamate funzionano, il problema in eventuali fallimenti successivi è nella configurazione del tuo client, non del servizio. Gli header di risposta includono X-Request-Id, utile da conservare se dovessi mai tracciare una chiamata specifica, e X-Balance-USD, che mostra il tuo credito residuo.

Python con l'SDK OpenAI

Il pacchetto ufficiale openai accetta l'URL base nel costruttore del client. Nient'altro nel tuo codice cambia.

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 preferisci tenere la configurazione fuori dal codice, l'SDK legge anche OPENAI_BASE_URL e OPENAI_API_KEY dall'ambiente:

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

Con queste impostazioni, OpenAI() senza argomenti le rileva. È utile perché molti strumenti di terze parti basati sull'SDK ereditano le stesse variabili senza modifiche al codice.

Node.js

L'SDK JavaScript usa lo stesso nome di opzione, scritto 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 ?? "");
}

Lo streaming torna come eventi server-sent con stream: true e l'utilizzo è incluso alla fine. Tieni presente che una richiesta in streaming occupa uno dei tuoi slot di concorrenza fino al termine dello stream, quindi uno stream abbandonato senza chiusura continua a contare contro il limite.

App con una schermata di impostazioni

Gli strumenti desktop e gli editor di solito etichettano il campo in uno di questi tre modi: "Base URL", "API Base" o "endpoint compatibile con OpenAI". Tutti vogliono la stessa stringa. Alcune note che fanno risparmiare tempo:

  • Scegli il tipo di provider OpenAI o "custom OpenAI-compatible", non uno specifico del fornitore.
  • Digita il nome del modello a mano se l'app ha una casella di testo libero. uncensored è l'ID esatto.
  • Se l'app ha un pulsante "testa la connessione", di solito chiama l'elenco dei modelli, che questa API supporta.
  • Alcune app memorizzano nella cache l'elenco dei modelli di un provider precedente. Rimuovi la vecchia voce e aggiungine una nuova se il menu a discesa sembra errato.

Per un esempio pratico in un editor specifico, consulta la guida per connettere Cursor, o la pagina API di coding per il quadro generale. Il riferimento completo dei parametri è nella documentazione API.

Una volta che la connessione funziona, salva i valori esatti da qualche parte dove puoi ritrovarli: l'URL, il nome del modello e la data di creazione della chiave. I team spesso perdono un'ora dopo per una copia della configurazione che contiene ancora un valore vecchio. Un unico file di esempio condiviso nel repository, con un segnaposto invece della chiave reale, previene questo problema.

Errori comuni e relative soluzioni

L'URL finisce come /v1/v1

Alcuni client aggiungono /v1 da soli. Se le tue richieste falliscono e il log del client mostra un percorso con /v1/v1/chat/completions, rimuovi il /v1 dall'URL base che hai inserito. Succede anche il contrario: un client che non lo aggiunge lo necessita nelle tue impostazioni. Il log del percorso della richiesta risolve rapidamente la questione.

Hai inserito l'endpoint completo nell'URL base

L'URL base si ferma a /v1. Non inserire /chat/completions lì. L'SDK aggiunge il percorso per ogni chiamata.

Una barra finale o un errore di battitura nell'host

La maggior parte degli SDK tollera una barra finale, ma alcuni strumenti più vecchi costruiscono i percorsi per semplice concatenazione e finiscono con una doppia barra. Rimuovila se vedi risposte 404 strane.

Chiave errata o chiave di un altro servizio

Una chiave OpenAI non funzionerà qui, e la nostra non funzionerà lì. Gli errori di autenticazione significano quasi sempre un problema di copia-incolla, come un carattere mancante o uno spazio alla fine.

Funziona in curl ma non nella tua app

Se curl ha successo e l'applicazione fallisce con lo stesso URL e chiave, la differenza è nell'ambiente. Controlla se l'app è dietro un proxy o in un container senza accesso in uscita, se legge una vecchia variabile d'ambiente come un OPENAI_BASE_URL residuo di un altro progetto, e se un file di configurazione sovrascrive il valore impostato nel codice. Stampare l'URL finale che il client chiamerà, appena prima della richiesta, risolve la maggior parte di questi casi in un minuto.

HTTP 429

Questo significa che è stato raggiunto un limite. Il codice di errore rate_limited indica il numero di richieste al minuto, mentre concurrency indica troppe richieste simultanee. Una chiave completa permette 8 richieste parallele e 300 al minuto; una chiave di prova ne permette 2 e 60. In caso di sovraccarico temporaneo ricevi anche un 429 con l'intestazione Retry-After: 5, quindi aspetta cinque secondi e riprova.

LangChain e mantenere l'URL in un unico punto

I framework basati sul client OpenAI prendono gli stessi valori. Nell'integrazione OpenAI di LangChain gli argomenti sono nominati così:

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)

Indipendentemente dal framework, non spargere l'URL nel codice. Inseriscilo in una variabile d'ambiente o in un file di configurazione e leggilo da lì. In questo modo, il passaggio tra una chiave di test e una di produzione, o tra macchine, richiede la modifica di una sola riga. Inoltre, tieni le chiavi fuori dal repository: memorizza la chiave in una variabile d'ambiente o in un gestore di segreti, mai in un file di cui hai fatto il commit.

Se stavi cercando l'endpoint ufficiale di OpenAI per i suoi prodotti Codex, questo non è quello. Il loro URL base e l'autenticazione sono documentati da OpenAI, quindi segui la loro documentazione corrente per quello. L'indirizzo in questa pagina appartiene a un servizio indipendente e accetta solo chiavi emesse qui.

Cosa puoi inviare una volta connesso

L'endpoint supporta lo streaming, la chiamata di funzioni (tools, tool_choice, con risultati restituiti come messaggi role: "tool") e la modalità JSON tramite response_format: {"type": "json_object"}. I parametri temperature, top_p, stop, seed e le penalità vengono passati invariati. La finestra di contesto è di 100.000 token per prompt più completamento, e il corpo della richiesta massimo è di 8 MB.

È solo testo. Non ci sono generazione di immagini o audio, né embeddings né fine-tuning, quindi una funzionalità del client che dipende da queste non funzionerà con questo base URL. L'utilizzo viene fatturato per token a $0,15 per 1M di input e $0,50 per 1M di output; la pagina dei prezzi contiene esempi pratici.

Domande e risposte

Cos'è l'URL di base?

È https://api.getcodexapi.com/v1. Usalo come URL di base in qualsiasi SDK o app compatibile con OpenAI, impostando il modello su uncensored.

È questo l'endpoint ufficiale OpenAI Codex?

No. È un'API indipendente compatibile con OpenAI che esegue un modello a pesi aperti. Non è gestita da OpenAI o da altri fornitori di modelli.

Perché ricevo un 404 dopo aver cambiato l'URL di base?

Di solito il percorso è errato, ad esempio un /v1 duplicato o il percorso dell'endpoint incluso nell'URL di base. Controlla il log delle richieste del tuo client e regola.

Ho bisogno di un SDK speciale?

No. Funzionano gli SDK standard OpenAI per Python e Node, così come l'HTTP puro con curl. Devi solo cambiare l'URL di base, la chiave e il nome del modello.

La tua chiave è a un modulo di distanza

Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.

Ottieni la chiave API