Usamos cookies. Cookies e o armazenamento do navegador mantêm você conectado e lembram suas preferências. Com sua permissão, também medimos como o site é usado. Você pode a qualquer momento. Veja nossa política de cookies.

Compatibilidade com o SDK da OpenAI

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çãoValor
Base URLhttps://api14.com/api/v1
Chave de APIsua 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 OpenAIapi14
chat.completions.create incl. stream, tools, response_formatSuportado para todos os modelos de texto
responses.createSuportado
completions.createSuportado
embeddings.createSuportado
images.generateSuportado (/images/generations)
audio.speech.createSuportado
audio.transcriptions.createSuportado (multipart)
models.list / models.retrieveSuportado, 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

  1. Defina a base URL como https://api14.com/api/v1 e use sua chave do api14.
  2. Adicione o provedor como prefixo aos nomes dos modelos: gpt-5-mini vira openai/gpt-5-mini, text-embedding-3-small vira openai/text-embedding-3-small.
  3. Pronto. Agora você também pode trocar para qualquer outro provedor mudando o id do modelo, por exemplo anthropic/claude-sonnet-4.5 ou google/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.

  1. Substitua a base URL por https://api14.com/api/v1.
  2. Substitua sua chave de API pela sua chave do api14.
  3. Mantenha todo o resto: ids de modelo, variantes (:free, :online, :nitro, :floor), roteamento com provider, fallbacks com models, reasoning, plugins, transforms e usage.

Diferenças importantes:

  • A cobrança é feita a partir de um saldo em USD. GET /credits retorna total_credits e total_usage em USD, além de um campo balance_usd. Veja Saldo e informações da chave.
  • O custo de uso é sempre incluído. O gateway sempre solicita usage.cost ao upstream, então toda resposta informa seu preço.
  • Cabeçalhos como HTTP-Referer e X-Title sã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.