Saltar al contenido principal
La API de Benzinga usa códigos de respuesta HTTP convencionales para indicar el éxito o el error de una solicitud de API. En general:
  • 2xx: Éxito.
  • 4xx: Error del cliente (por ejemplo, parámetro ausente, clave de API no válida).
  • 5xx: Error del servidor (algo salió mal del lado de Benzinga).
Verifica siempre primero el código de estado HTTP para determinar si una solicitud fue exitosa. No confíes únicamente en el cuerpo de la respuesta, ya que el formato puede variar entre diferentes endpoints de la API.

Códigos de estado HTTP

La siguiente tabla enumera los códigos de estado estándar que podrás encontrar.
CódigoEstadoDescripción
200OKLa solicitud se realizó correctamente.
400Bad RequestLa solicitud no fue aceptada, a menudo debido a un parámetro ausente o no válido.
401UnauthorizedNo se proporcionó una API Key válida. Verifica tu encabezado Authorization o el parámetro token.
402Request FailedLos parámetros eran válidos, pero la solicitud falló por razones de lógica de negocio.
403ForbiddenLa API Key es válida, pero no tienes permiso para acceder a este recurso.
404Not FoundEl recurso solicitado (por ejemplo, ID, endpoint) no existe.
429Too Many RequestsHas excedido tu límite de solicitudes.
500Internal Server ErrorAlgo salió mal en los servidores de Benzinga. Estos casos son poco frecuentes.
503Service UnavailableEl servicio no está disponible temporalmente (por ejemplo, por mantenimiento).

Cuerpos de respuesta de error

Si bien el código de estado HTTP es el indicador principal de un error, el cuerpo de la respuesta a menudo contiene detalles que pueden ayudarte a depurar. El formato de este cuerpo puede variar según la API que utilices.

Formato 1: Mensaje de error simple

Muchos endpoints (como la API de noticias) devuelven un string sencillo o un objeto JSON simple con un mensaje.
"Invalid or Missing Query Parameters"
O
{
  "message": "Invalid page size"
}

Formato 2: Objeto de error estructurado

Las APIs más recientes (como Data API Proxy o Fundamentals) devuelven un objeto estructurado que contiene una lista de errores.
{
  "data": null,
  "errors": [
    {
      "code": "database_query_error",
      "id": "ERR_12345",
      "value": "No se pueden obtener datos para el símbolo: INVALID"
    }
  ],
  "ok": false
}

Manejo de errores de forma programática

Debido a la posible variación en los cuerpos de respuesta, recomendamos una estrategia sólida de manejo de errores:
  1. Verificar el código de estado HTTP. Si es >= 400, trátalo como un error.
  2. Registrar el cuerpo de la respuesta. Registra el cuerpo completo en tus logs para fines de depuración.
  3. Mostrar un mensaje genérico. A menos que estés integrado con un endpoint específico y conozcas su formato de error exacto, muestra un mensaje genérico como “Se ha producido un error” a tus usuarios finales junto con el código de estado.