API REST
Esta API REST permite integrar sensores QBIT a otros sistemas ya existentes, consultar registros recientes enviados por
uno o varios dispositivos mediante idequipo y consultar una o varias suscripciones mediante idsuscrip, cuando esa modalidad se encuentre habilitada para el token.
La API REST está diseñada para ser utilizada por aplicaciones externas que necesiten interactuar con los datos de los sensores QBIT. Proporciona una interfaz sencilla y eficiente para acceder a la información de los sensores, permitiendo a los desarrolladores integrar fácilmente los datos en sus propias aplicaciones o sistemas.
Autenticación
Se utiliza autenticación mediante Bearer Token. Cada cliente posee un token propio vinculado exclusivamente a sus equipos y suscripciones habilitados. Un mismo token permite consultar por idequipo y por idsuscrip según esos permisos. Este token debe ser solicitado a soporte y el equipo debe tener plan Avanzado o superior.
| Encabezado HTTP | Formato | Ejemplo |
|---|---|---|
Authorization |
Bearer <token> |
Bearer abcd1234efgh5678 |
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
idequipo |
Entero o lista de enteros separados por comas | Condicional | Uno o varios identificadores numéricos de dispositivos QBIT. Ejemplo: 1223,1224,1225. Se utiliza cuando no se envía idsuscrip. |
idsuscrip |
Entero o lista de enteros separados por comas | Condicional | Permite consultar los últimos registros de los equipos asociados a una o varias suscripciones. Ejemplo: 601,602. Todas deben estar habilitadas para el mismo token. |
Debe enviarse idequipo o idsuscrip. Si se envían ambos parámetros, la API prioriza idsuscrip; no combina las listas. Los espacios alrededor de cada ID se eliminan y los identificadores repetidos se consultan una sola vez. No se admiten elementos vacíos ni valores no numéricos.
Endpoint
| Método HTTP | GET |
| Frecuencia máxima | 1 consulta cada 40 segundos; se recomienda una por minuto |
| Formato de respuesta | JSON |
| Zona horaria | America/Argentina/Buenos_Aires |
| Seguridad | Token con permisos por equipo o por suscripción habilitada |
Consulta opcional por suscripción: GET https://services.bitronic.com.ar/api/sensores?idsuscrip=1234. Si el token no corresponde a esa suscripción o el acceso no está habilitado, la API responde con 401 o 403 según corresponda.
Respuesta esperada en formato JSON:
Cuando la consulta se realiza por un solo idsuscrip, la respuesta devuelve el identificador de la suscripción, la cantidad de registros obtenidos y el arreglo records con el último registro disponible de cada equipo asociado.
Consultas múltiples
Usá una sola solicitud por minuto para recibir el último dato disponible de cada equipo de tus suscripciones. El mismo Bearer Token debe tener acceso a todos los identificadores solicitados.
GET https://services.bitronic.com.ar/api/sensores?idequipo=1223,1224,1225
GET https://services.bitronic.com.ar/api/sensores?idsuscrip=601,602
Authorization: Bearer <token>
Las listas admiten hasta 100 identificadores distintos y hasta 100 equipos resultantes, sumando las suscripciones y sin contar equipos repetidos. Si se supera un límite, la API devuelve 400 sin consultar mediciones ni truncar resultados. Estos límites se aplican a las consultas con listas separadas por comas; las consultas con un solo ID conservan su comportamiento.
La respuesta múltiple contiene count y records: una lista única ordenada numéricamente por idequipo, sin agrupación por suscripción. Cada equipo se incluye una sola vez. Incluso una lista como 1223,1223 utiliza este formato:
{
"count": 2,
"records": [
{"idequipo": "1223", "datatime": "2026-10-20 10:00:00", "data": "21.5"},
{"idequipo": "1224", "datatime": "2026-10-20 10:00:00", "data": "22.0"}
]
}
Los equipos sin mediciones se omiten. Si ninguno tiene registros, se devuelve 204. Si falla un permiso o la consulta de datos, se rechaza todo el pedido; no se entregan respuestas parciales. Un token ausente o desconocido devuelve 401. Un cliente deshabilitado o cualquier equipo o suscripción fuera de sus permisos devuelve 403. Solo se pueden consultar identificadores habilitados para el cliente del token, tanto en consultas individuales como en listas.
Las consultas múltiples son exclusivamente para el último dato: enviar desde o hasta devuelve 400. La consulta histórica individual por idequipo se mantiene para los equipos habilitados.
Debe transcurrir un mínimo de 40 segundos entre consultas del mismo cliente. El intervalo se comparte entre todas sus consultas: equipos, suscripciones, listas e históricos. Consultar otro identificador no habilita una solicitud adicional durante la espera. Se recomienda consultar una vez cada 60 segundos. Las solicitudes realizadas antes de cumplir el intervalo reciben 429 y no reinician la espera.
Campos de respuesta
En consultas por un solo idequipo, la respuesta incluye record, que contiene los siguientes campos:
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
idequipo | string | – | ID del sensor |
datatime | string | Fecha | Fecha del registro |
data | string/array | Depende la variable | Valores medidos |
Respuesta cuando se consulta por un solo idsuscrip
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
idsuscrip | string | – | Identificador de la suscripción consultada. |
count | integer | – | Cantidad de registros devueltos en records. |
records | array | – | Listado con el último registro disponible de cada equipo asociado a la suscripción. |
Cada elemento de records mantiene la estructura habitual del registro del sensor y puede incluir campos como idequipo, datatime y data.
Códigos de estado HTTP
| Código | Significado | Descripción |
|---|---|---|
| 200 | OK | Consulta exitosa. Se devuelven los registros. |
| 204 | No Content | No hay registros disponibles en el rango configurado. |
| 400 | Bad Request | Falta un identificador válido, la lista contiene elementos vacíos o no numéricos, se superan los límites de la consulta múltiple o se envían fechas con una lista. |
| 401 | Unauthorized | El Bearer Token está ausente, tiene un formato inválido o no es reconocido. |
| 403 | Forbidden | El cliente está deshabilitado, algún equipo o suscripción no pertenece a sus permisos, o la consulta histórica no está habilitada. |
| 429 | Too Many Requests | No transcurrieron 40 segundos desde la consulta anterior. Esperar a completar el intervalo antes de reintentar. |
Matriz de errores y acciones recomendadas
| Código | Posible causa | Acción sugerida |
|---|---|---|
| 401 / 403 | Token incorrecto o acceso no habilitado | Revisar credenciales y permisos |
| 429 | Exceso de consultas | Implementar backoff exponencial |
| 500 | Error interno | Contactar soporte técnico con logs |
Consulta opcional por fecha
Para ciertos equipos habilitados, se permite filtrar por fecha y hora (previa autorización), únicamente en consultas con un solo idequipo. Los parámetros desde y hasta deben enviarse juntos. No se admite filtrar por fechas en consultas múltiples.
| Parámetro | Tipo | Formato | Descripción |
|---|---|---|---|
desde |
string | YYYY-MM-DD HH:MM:SS |
Desde Fecha/hora |
hasta |
string | YYYY-MM-DD HH:MM:SS |
Hasta Fecha/hora |
Buenas prácticas de integración
- Evitar consultas continuas no necesarias (respetar la frecuencia).
- Registrar y auditar errores por equipo.
- Implementar monitoreo por latencia y códigos HTTP.
- Proteger los tokens en entornos seguros.
La API REST utiliza autenticación basada en tokens para garantizar la seguridad de las solicitudes. Cada solicitud debe incluir un token de autenticación válido en el encabezado de la solicitud. Este token se entrega al desarrollador al momento de la integración y debe ser tratado como información confidencial.
Consideraciones de rendimiento
- Se recomienda consultar una vez cada 60 segundos y agrupar los equipos o suscripciones en una sola solicitud. El intervalo mínimo permitido es de 40 segundos.
- Los cambios en los equipos asociados a una suscripción pueden demorar hasta 5 minutos en reflejarse.
- No está optimizada para volúmenes históricos extensos.