Primeiros passos
Compatibilidade com o SDK da OpenAI
Use os SDKs oficiais da OpenAI sem alterações no api14 e migre da OpenAI ou de qualquer API compatível trocando apenas a base URL e a chave de API.
O api14 fala a API da OpenAI. Qualquer SDK oficial da OpenAI, e qualquer ferramenta que aceite uma base URL personalizada da OpenAI, funciona sem mudanças no código, você só troca a base URL e a chave de API.
Os dois valores a mudar
| Configuração | Valor |
|---|---|
| Base URL | https://api14.com/api/v1 |
| Chave de API | sua chave 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"])
Muitos SDKs também leem as variáveis de ambiente OPENAI_BASE_URL e OPENAI_API_KEY, então você pode trocar sem tocar no código.
O que é compatível
| Recurso da OpenAI | api14 |
|---|---|
chat.completions.create incl. stream, tools, response_format | Suportado para todos os modelos de texto |
responses.create | Suportado |
completions.create | Suportado |
embeddings.create | Suportado |
images.generate | Suportado (/images/generations) |
audio.speech.create | Suportado |
audio.transcriptions.create | Suportado (multipart) |
models.list / models.retrieve | Suportado, com preços e categorias |
Formato de erro { error: { message, type, code } } | Igual, os SDKs lançam seu APIError normal |
Endpoints que só existem na OpenAI (Assistants, Threads, fine-tuning, files, batches, vector stores e moderations) não estão disponíveis.
Migrando da OpenAI
- Defina a base URL como
https://api14.com/api/v1e use sua chave do api14. - Adicione o provedor como prefixo aos nomes dos modelos:
gpt-5-miniviraopenai/gpt-5-mini,text-embedding-3-smallviraopenai/text-embedding-3-small. - Pronto. Agora você também pode trocar para qualquer outro provedor mudando o id do modelo, por exemplo
anthropic/claude-sonnet-4.5ougoogle/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);
Migrando de outra API compatível com OpenAI
Se você já usa outro gateway compatível com OpenAI, só mudam a base URL e a chave.
- Substitua a base URL por
https://api14.com/api/v1. - Substitua sua chave de API pela sua chave do api14.
- Mantenha todo o resto: ids de modelo, variantes (
:free,:online,:nitro,:floor), roteamento comprovider, fallbacks commodels,reasoning,plugins,transformseusage.
Diferenças importantes:
- A cobrança é feita a partir de um saldo em USD.
GET /creditsretornatotal_creditsetotal_usageem USD, além de um campobalance_usd. Veja Saldo e informações da chave. - O custo de uso é sempre incluído. O gateway sempre solicita
usage.costao upstream, então toda resposta informa seu preço. - Cabeçalhos como
HTTP-ReferereX-Titlesão definidos pelo gateway; você não precisa enviá-los. - As URLs de jobs de vídeo apontam de volta para o api14 (
/api/v1/videos/{id}), nunca para o upstream. Veja Vídeo.
Parâmetros extras nos SDKs
Campos que o SDK da OpenAI não conhece ainda podem ser enviados:
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"}},
)
Veja Roteamento de provedores e fallbacks, Raciocínio e Busca na web.