Checklist da primeira chamada
Resposta direta
Antes de considerar a primeira chamada pronta, confira os cinco itens: endpoint exato, Bearer presente, JSON válido, model verificado e status/resposta registrados.
Pré-requisitos e passos
- [ ] URL final: https://api.mandapi.com/v1/chat/completions.
- [ ] Header Authorization com Bearer e chave carregada fora do código.
- [ ] Content-Type JSON, model deepseek-v4-flash e messages mínimo.
- [ ] Status e corpo salvos sem credenciais; usage observado quando presente.
Exemplo copiável
curl -sS -o response.json -w 'HTTP %{http_code}
' \
https://api.mandapi.com/v1/chat/completions \
-H "Authorization: Bearer ${MANDAPI_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"ok"}]}'
Como conferir o resultado
O checklist reúne apenas fatos registrados; ele não aprova preço, Pix, todos os modelos ou SDKs oficiais.
← Voltar para API de IA no Brasil
Checklist consolidado da primeira chamada
Esta versão reúne o caminho mínimo para sair do zero e chegar a uma chamada verificável, mantendo os detalhes específicos nos guias originais.
1. Monte a URL sem duplicar /v1
Separe a base da rota no código. Confirme que existe apenas um segmento /v1 e evite normalizações automáticas escondidas.
const base = "https://api.mandapi.com/v1";
const endpoint = `${base}/chat/completions`;
console.log(endpoint);2. Envie um JSON mínimo
Comece com um único model e uma mensagem de usuário. Só acrescente parâmetros depois de confirmar a compatibilidade necessária.
{
"model": "COLE_UM_MODEL_ID_LISTADO_PELA_API",
"messages": [
{"role": "user", "content": "Responda apenas: ok"}
]
}3. Autentique e valide headers
Regra do array messages
messages e uma lista ordenada de objetos; cada item tem role e content. Comece com um unico item user para reduzir variaveis e so acrescente historico quando o teste minimo ja passar.
6. Repita apenas falha de transporte
Diferencie timeout ou erro de transporte de uma resposta HTTP ja recebida. Se o servidor respondeu — mesmo com erro — pare e inspecione o corpo antes de reenviar. Limite as tentativas e registre o motivo de cada uma para evitar duplicacao silenciosa.
for (let attempt = 1; attempt <= 2; attempt += 1) {
try {
const response = await fetch("https://api.mandapi.com/v1/chat/completions", requestOptions);
if (response.ok || response.status === 401) break;
} catch (error) {
if (attempt === 2) throw error;
}
}7. Congele um teste reproduzivel
Antes de producao, fixe endpoint, model e payload minimo, capture status e usage e guarde o artefato com timestamp. Adicione streaming ou tools como testes separados, cada um com sua propria captura.
