Códigos comuns de erro da API

Última atualização: há 3 meses

Entender as respostas de erro ajuda você a depurar problemas rapidamente. Aqui estão os erros mais comuns que você encontrará.

400 Solicitação inválida

{
  "error": "media_id is required"
}

Causas:

  • Parâmetro obrigatório ausente

  • Formato de parâmetro inválido

  • JSON malformado

Correção: Verifique se o corpo da sua solicitação corresponde à especificação da API em api.cathopic.com/docs.

401 Não autorizado

{
  "message": "Unauthorized"
}
ou
{
  "error": "Unauthorized token"
}

Causas:

  • Chave de API ausente ou inválida

  • Chave de API desativada

  • Nome de cabeçalho incorreto

Correção: Verifique se o seu cabeçalho x-api-key está correto e se a chave está ativa em Configurações → API.

404 Não encontrado

{
  "error": "No file found for media_id 1234"
}
ou
{
  "error": "Media item not found"
}

Causas:

  • O recurso não existe

  • O recurso foi excluído

  • media_id incorreto

Correção: Verifique se o media_id existe pesquisando primeiro com /resources.

429 Muitas solicitações

{
  "error": "Limit exceed."
}

Causas:

  • Muitas solicitações em pouco tempo

  • Limite de taxa excedido

Correção: Implemente backoff exponencial. Aguarde e tente novamente com atrasos crescentes (1s, 2s, 4s, etc.).

500 Erro interno do servidor

{
  "error": "Internal server error"
}

Causas:

  • Problema temporário no servidor

  • Condição inesperada

Correção: Aguarde um momento e tente novamente. Se persistir, entre em contato com suporte.

Exemplo de tratamento de erro

async function searchWithErrorHandling(query) {
  try {
    const response = await fetch('https://api.cathopic.com/resources', {
      method: 'POST',
      headers: {
        'x-api-key': apiKey,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ query, page: 1, page_size: 20 })
    });
    
    if (!response.ok) {
      const error = await response.json();
      
      switch (response.status) {
        case 400:
          console.error('Bad request:', error);
          break;
        case 401:
          console.error('Unauthorized. Check your API key.');
          break;
        case 404:
          console.error('Resource not found:', error);
          break;
        case 429:
          console.error('Rate limited. Implementing backoff...');
          await sleep(5000);
          return searchWithErrorHandling(query); // Retry
        case 500:
          console.error('Server error. Retrying in 10s...');
          await sleep(10000);
          return searchWithErrorHandling(query);
        default:
          console.error('Unknown error:', error);
      }
      
      throw new Error(`API error: ${response.status}`);
    }
    
    return await response.json();
  } catch (error) {
    console.error('Request failed:', error);
    throw error;
  }
}

Para erros persistentes, verifique a documentação completa da API ou entre em contato com o suporte.

Este artigo foi útil?