Per iniziare
Compatibilità con l'SDK OpenAI
Usa gli SDK ufficiali di OpenAI senza modifiche e migra da OpenAI o da un'altra API compatibile cambiando solo base URL e chiave API.
api14 parla l'API di OpenAI. Qualsiasi SDK ufficiale di OpenAI, e qualsiasi strumento che accetti un base URL OpenAI personalizzato, funziona senza modifiche al codice, cambi solo il base URL e la chiave API.
I due valori da cambiare
| Impostazione | Valore |
|---|---|
| Base URL | https://api14.com/api/v1 |
| Chiave API | la tua chiave sk-api14-... |
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api14.com/api/v1',
apiKey: process.env.API14_API_KEY,
})
import os
from openai import OpenAI
client = OpenAI(base_url="https://api14.com/api/v1", api_key=os.environ["API14_API_KEY"])
Molti SDK leggono anche le variabili d'ambiente OPENAI_BASE_URL e OPENAI_API_KEY, quindi puoi passare ad api14 senza toccare il codice.
Cosa è compatibile
| Funzionalità OpenAI | api14 |
|---|---|
chat.completions.create incl. stream, tools, response_format | Supportato per tutti i modelli di testo |
responses.create | Supportato |
completions.create | Supportato |
embeddings.create | Supportato |
images.generate | Supportato (/images/generations) |
audio.speech.create | Supportato |
audio.transcriptions.create | Supportato (multipart) |
models.list / models.retrieve | Supportato, con prezzi e categorie |
Formato degli errori { error: { message, type, code } } | Identico, gli SDK sollevano il loro normale APIError |
Gli endpoint che esistono solo su OpenAI (Assistants, Threads, fine-tuning, files, batches, vector stores e moderations) non sono disponibili.
Migrare da OpenAI
- Imposta il base URL su
https://api14.com/api/v1e usa la tua chiave api14. - Aggiungi il provider come prefisso ai nomi dei modelli:
gpt-5-minidiventaopenai/gpt-5-mini,text-embedding-3-smalldiventaopenai/text-embedding-3-small. - Fatto. Ora puoi anche passare a qualsiasi altro provider cambiando l'id del modello, ad esempio
anthropic/claude-sonnet-4.5ogoogle/gemini-2.5-pro.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Migrare da un'altra API compatibile con OpenAI
Se usi già un altro gateway compatibile con OpenAI, cambiano solo il base URL e la chiave.
- Sostituisci il base URL con
https://api14.com/api/v1. - Sostituisci la tua chiave API con la tua chiave api14.
- Mantieni tutto il resto: id dei modelli, varianti (
:free,:online,:nitro,:floor), instradamento conprovider, fallback conmodels,reasoning,plugins,transformseusage.
Differenze da conoscere:
- La fatturazione si basa su un saldo in USD.
GET /creditsrestituiscetotal_creditsetotal_usagein USD, più un campobalance_usd. Vedi Saldo e info sulla chiave. - Il costo di utilizzo è sempre incluso. Il gateway richiede sempre
usage.costall'upstream, quindi ogni risposta riporta il proprio prezzo. - Gli header come
HTTP-ReferereX-Titlevengono impostati dal gateway; non devi inviarli tu. - Gli URL dei job video puntano ad api14 (
/api/v1/videos/{id}), mai all'upstream. Vedi Video.
Parametri aggiuntivi negli SDK
I campi che l'SDK di OpenAI non conosce possono comunque essere inviati:
await client.chat.completions.create({
model: 'openai/gpt-5-mini',
messages: [{ role: 'user', content: 'Hi' }],
// @ts-expect-error api14 extension
provider: { sort: 'price' },
})
client.chat.completions.create(
model="openai/gpt-5-mini",
messages=[{"role": "user", "content": "Hi"}],
extra_body={"provider": {"sort": "price"}},
)
Vedi Instradamento dei provider e fallback, Ragionamento e Ricerca web.