API REST

Erros

Trate o contrato de respostas de problemas e correlacione solicitações.

Os erros seguem o contrato JSON de problemas da RFC 9457, com o tipo de mídia application/problem+json.

{
  "type": "https://www.ninjabuy.com/api/v1/problems/bad-body",
  "title": "Invalid request",
  "status": 400,
  "detail": "The request did not match the expected shape.",
  "request_id": "REQUEST_ID",
  "errors": [{"pointer": "/links", "detail": "Validation detail"}]
}

type é o identificador estável do problema; title e detail o descrevem. status corresponde ao status HTTP. Entradas opcionais de errors contêm um JSON Pointer e detalhes de validação; um ponteiro vazio indica o corpo inteiro. Informe request_id (também em X-Request-Id) ao relatar um problema.

Todos os tipos abaixo começam com https://www.ninjabuy.com/api/v1/problems/.

Sufixo do tipoHTTPSignificado / ação
bad-json400O corpo não é JSON válido. Corrija sua sintaxe.
bad-body400O corpo, os parâmetros de consulta ou o cursor não passaram na validação. Leia errors.
bad-idempotency-key400Use de 1 a 255 caracteres ASCII imprimíveis para Idempotency-Key.
unauthorized401Forneça um token bearer válido; WWW-Authenticate fornece os metadados de descoberta.
not-found404O recurso está indisponível, é desconhecido ou não pertence a esta conta.
method-not-allowed405Use o método em Allow.
idempotency-key-in-progress409A primeira solicitação com esta chave está em execução. Espere o prazo de Retry-After.
upload-too-large413Os bytes enviados excedem o tamanho declarado ou o limite de 20 MiB.
unsupported-media-type415Envie Content-Type: application/json.
idempotency-key-reused422Esta chave foi usada com outra solicitação. Use uma nova chave.
invalid-workbook422O upload não é um XLSX/CSV legível dentro dos limites. Leia errors.
upload-expired422A reserva de envio expirou. Envie o arquivo novamente.
rate-limited429Espere os segundos de Retry-After antes de tentar novamente.
search-rate-limited429A janela de busca por palavras-chave está cheia. Espere o prazo de Retry-After.
service-unavailable503Tente novamente em breve; respeite Retry-After quando estiver presente.
internal-error500Tente novamente mais tarde; guarde o identificador da solicitação se persistir.

Uma solicitação bem-sucedida ainda pode conter falhas por entrada. Trate os status dos links separadamente dos erros HTTP. Use Idempotency-Key para reproduzir uma solicitação de criação; sem uma chave, repetir o envio de um lote cria outra tarefa.