Documentação

Erros

Uma só forma para todas as falhas.

Quando algo falha, o estado HTTP não é 2xx e o corpo contém apenas um objeto error:

json
{
  "error": {
    "message": "Insufficient credits: this request needs 60 credits. Top up and try again.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_credits"
  }
}

Campos

CampoDescrição
messageFeito para ser lido, em inglês. Não uses como condição: a redação muda
typeCategoria geral, ver abaixo
codeMotivo concreto. É neste campo que deves ramificar
paramNome do parâmetro em causa, ou null quando não é atribuível

Códigos frequentes

HTTPcodeSignificado
401missing_api_keySem cabeçalho Authorization ou fora do formato Bearer sk-xxx
401invalid_api_keyChave desconhecida, desativada ou eliminada — deliberadamente indistinguíveis
400invalid_requestProblema de parâmetros; lê message. prompt vazio, modo imagem sem imagem, etc.
402insufficient_creditsSem créditos. Carrega e consulta /v1/credits antes de repetir
429rate_limit_exceededChamadas a mais. Recua e tenta de novo
429concurrency_limit_reachedLimite de concorrência ou quota diária atingidos. Tenta mais tarde
404not_foundA tarefa não existe ou não pertence a esta conta
502generation_failedNuma chamada síncrona falharam todas as imagens. Os créditos já foram devolvidos
504generation_timeoutEsgotou-se a espera de uma chamada síncrona. A tarefa continua e os créditos não são devolvidos: vai buscá-la a /v1/tasks/{id} com o id da mensagem
500internal_errorFalha do servidor. Pode repetir-se; se persistir, contacta-nos
Um trabalho assíncrono que falha depois de aceite não usa esta forma: a chamada devolve 200, o objeto de tarefa traz status failed e o motivo fica em error. Só as chamadas síncronas de imagem transformam a falha num 502.