API / desenvolvedores

Seu código.
Um caminho claro.

Exemplos completos em cURL, Python e JavaScript. Prepare o ambiente, escolha o contrato e execute uma única operação com rastreabilidade.

Da OpenAI ou OpenRouter para a Biziva

Troque a URL base e a chave no servidor. Escolha biziva-validated para roteamento validado por tarefa ou um perfil exato do catálogo. Nomes de terceiros podem ser normalizados para o automático: isso não fixa nem preserva o modelo anterior.

Nem todo parâmetro, serviço ou SDK de terceiros é equivalente. Confira ferramentas, streaming, multimodalidade e formato de saída antes de migrar. Para usar os pacotes próprios da Biziva, baixe os SDKs oficiais; eles não são anunciados como publicados no npm ou PyPI.

A página não executa chamadas. Exemplos de produção são pagos quando executados no seu servidor. Comece pelo sandbox com dados fictícios.

Guia completo

# Biziva API — integração e migração

Base HTTPS: https://api.biziva.com.br/v1
Preços públicos: https://api.biziva.com.br/precos
Catálogo de preços sem chave: https://api.biziva.com.br/public/pricing.json
Catálogo autenticado e contratos: GET /v1/models com catalog:read.
Execução paga: services:create, saldo próprio e revisão dos parâmetros.
SDKs Biziva JavaScript/Python e sandbox: https://api.biziva.com.br/developers
Os pacotes Biziva são downloads oficiais do site; não presumir publicação no npm/PyPI.

## Migração de aplicações compatíveis com OpenAI / OpenRouter
Configure base_url/baseURL e BIZIVA_API_KEY somente no servidor. Use model=biziva-validated para seleção dentre rotas compatíveis homologadas, ou o identificador exato biziva-model-* do catálogo. Não basta trocar a chave: nomes de modelos de terceiros podem ser normalizados para a rota automática; isso não preserva o modelo original. Ferramentas, Responses, streaming e mídia têm contratos específicos, não compatibilidade integral implícita. Teste primeiro com dados fictícios no sandbox.

## Primeira chamada — cURL (paga em produção)
export BIZIVA_API_KEY='configure-no-servidor'
curl --fail-with-body https://api.biziva.com.br/v1/chat/completions \
  -H "Authorization: Bearer $BIZIVA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: exemplo-texto-unico-0001" \
  -d '{"model":"biziva-validated","messages":[{"role":"user","content":"Resuma em uma frase: atendemos de segunda a sexta, das 9h às 18h."}],"max_tokens":128}'

Guarde a chave de operação para consultar/repetir a MESMA operação. Um novo trabalho intencional precisa de outra chave. Em erro incerto, não gere nova chave nem repita automaticamente. Nenhum comando é executado por esta página.

## Python — biblioteca padrão, uma tentativa
import json, os, uuid, urllib.request
operation_id = str(uuid.uuid4())
body = {"model":"biziva-validated","messages":[{"role":"user","content":"Resuma: atendemos de segunda a sexta, das 9h às 18h."}],"max_tokens":128}
request = urllib.request.Request("https://api.biziva.com.br/v1/chat/completions", data=json.dumps(body).encode(), headers={"Authorization":"Bearer " + os.environ["BIZIVA_API_KEY"],"Content-Type":"application/json","Idempotency-Key":operation_id}, method="POST")
print("Guarde a operação:", operation_id)
with urllib.request.urlopen(request, timeout=90) as response:
    print(json.load(response))

## JavaScript — Node, uma tentativa
const operationId = crypto.randomUUID();
console.log('Guarde a operação:', operationId);
const response = await fetch('https://api.biziva.com.br/v1/chat/completions', {
  method: 'POST',
  headers: {Authorization: 'Bearer ' + process.env.BIZIVA_API_KEY, 'Content-Type': 'application/json', 'Idempotency-Key': operationId},
  body: JSON.stringify({model:'biziva-validated', messages:[{role:'user',content:'Resuma: atendemos de segunda a sexta, das 9h às 18h.'}],max_tokens:128}),
  signal: AbortSignal.timeout(90000)
});
const result = await response.json();
if (!response.ok) throw new Error('HTTP ' + response.status + ': consulte a operação ' + operationId + ' antes de repetir.');
console.log(result);

## Falhas e liquidação
401: chave/permissão; 402: saldo/reserva; 429: limite; 409: consulte conflito ou operação em andamento; 5xx/timeout: resultado pode ser incerto. Preserve corpo, chave e ID original. O recibo e o contrato do endpoint determinam a cobrança. Uma reserva não é o valor final liquidado. Não coloque credenciais no navegador, GitHub, chats ou capturas de tela.

## Custos e qualidade
Consulte os preços de venda por perfil e unidade em /precos. O contrato, os parâmetros e o recibo determinam o valor final. Frações acumuladas não são descartadas. Tarifas base podem excluir contexto longo, cache escrito, pesquisa e outros componentes. Catálogo não é aprovação universal. Avaliações internas; sem feedback público do cliente.

Evidência: https://api.biziva.com.br/comparativos
Funcionamento: https://api.biziva.com.br/transparencia
Documentação completa: https://api.biziva.com.br/docs