Códigos de error comunes de la API

Última actualización: hace 3 meses

Entender las respuestas de error te ayuda a depurar problemas rápidamente. Estos son los errores más comunes que encontrarás.

400 Bad Request

{
  "error": "media_id is required"
}

Causas:

  • Falta parámetro requerido

  • Formato de parámetro inválido

  • JSON mal formado

Solución: Verifica que tu cuerpo de petición coincida con la especificación de la API en api.cathopic.com/docs.

401 Unauthorized

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

Causas:

  • Clave API faltante o inválida

  • Clave API desactivada

  • Nombre de header incorrecto

Solución: Verifica que tu header x-api-key sea correcto y la clave esté activa en Ajustes → API.

404 Not Found

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

Causas:

  • El recurso no existe

  • El recurso ha sido eliminado

  • media_id incorrecto

Solución: Verifica que el media_id existe buscando primero con /resources.

429 Too Many Requests

{
  "error": "Limit exceed."
}

Causas:

  • Demasiadas peticiones en poco tiempo

  • Límite de tasa excedido

Solución: Implementa retroceso exponencial. Espera y reintenta con retrasos crecientes (1s, 2s, 4s, etc.).

500 Internal Server Error

{
  "error": "Internal server error"
}

Causas:

  • Problema temporal del servidor

  • Condición inesperada

Solución: Espera un momento y reintenta. Si persiste, contacta con soporte.

Ejemplo de manejo de errores

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('Petición incorrecta:', error);
          break;
        case 401:
          console.error('No autorizado. Verifica tu clave API.');
          break;
        case 404:
          console.error('Recurso no encontrado:', error);
          break;
        case 429:
          console.error('Límite de tasa. Implementando retroceso...');
          await sleep(5000);
          return searchWithErrorHandling(query); // Reintentar
        case 500:
          console.error('Error de servidor. Reintentando en 10s...');
          await sleep(10000);
          return searchWithErrorHandling(query);
        default:
          console.error('Error desconocido:', error);
      }
      
      throw new Error(`Error de API: ${response.status}`);
    }
    
    return await response.json();
  } catch (error) {
    console.error('Petición fallida:', error);
    throw error;
  }
}

Para errores persistentes, consulta la documentación completa de la API o contacta con soporte.

¿Te ha sido útil este artículo?