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.
La siguiente tabla enumera los códigos de estado estándar que podrás encontrar.
| Código | Estado | Descripción |
|---|
| 200 | OK | La solicitud se realizó correctamente. |
| 400 | Bad Request | La solicitud no fue aceptada, a menudo debido a un parámetro ausente o no válido. |
| 401 | Unauthorized | No se proporcionó una API Key válida. Verifica tu encabezado Authorization o el parámetro token. |
| 402 | Request Failed | Los parámetros eran válidos, pero la solicitud falló por razones de lógica de negocio. |
| 403 | Forbidden | La API Key es válida, pero no tienes permiso para acceder a este recurso. |
| 404 | Not Found | El recurso solicitado (por ejemplo, ID, endpoint) no existe. |
| 429 | Too Many Requests | Has excedido tu límite de solicitudes. |
| 500 | Internal Server Error | Algo salió mal en los servidores de Benzinga. Estos casos son poco frecuentes. |
| 503 | Service Unavailable | El 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.
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"
}
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
}
Debido a la posible variación en los cuerpos de respuesta, recomendamos una estrategia sólida de manejo de errores:
- Verificar el código de estado HTTP. Si es
>= 400, trátalo como un error.
- Registrar el cuerpo de la respuesta. Registra el cuerpo completo en tus logs para fines de depuración.
- 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.