Saltar al contenido principal

Consultar la info de las actividades

[ POST ]

Consulta las actividades registradas por uno o varios conductores dentro de un rango de fechas. El endpoint es de sólo lectura y no genera ningún cambio sobre los datos.

https://sync.airbagtech.io/activities/all

Campos​

NombreTipoRequeridoDescripción
startDateStringSíPrimer día de la consulta (se incluye el día completo). Debe ser anterior a endDate.

Formato: YYYY-MM-DD.
endDateStringSíÚltimo día de la consulta (se incluye el día completo).

Formato: YYYY-MM-DD.
driverIdStringNoID del conductor a consultar. Acepta el ID que tu empresa usó al crearlo o el airbagId.

Omite este campo para obtener las actividades de todos los conductores del rango.
orderStringNoOrden por fecha de creación: asc (por defecto, de la más antigua a la más reciente) o desc.

Headers​

Content-TypeAuthorization
application/jsonapikey {{API_KEY}}

Body​

{
"startDate": "string",
"endDate": "string",
"driverId": "string",
"order": "asc"
}

Ejemplo​

curl --location 'https://sync.airbagtech.io/activities/all' \
--header 'Content-Type: application/json' \
--header 'Authorization: apikey {{API_KEY}}' \
--data '{
"startDate": "2025-01-01",
"endDate": "2025-01-31",
"driverId": "EMP-1042"
}'

Respuestas​

✅ Respuesta exitosa (200 OK)​

Devuelve un arreglo con las actividades registradas dentro del rango de fechas solicitado. Cada entrada incluye el id de la actividad, la metadata del conductor, la ubicación donde se registró y si tiene adjuntos (foto y nota de voz). Para ver el detalle de una actividad, incluidos sus adjuntos, usa Consultar actividad con su id y el userId como driverId.

{
"status": true,
"data": [
{
"id": "67ac5b1e9f3a2c0012ab34cd",
"driver": "Juan Pérez Ramírez",
"userId": "EMP-1042",
"group": "Región Norte",
"hour": "09:17",
"date": "12-February-2025",
"type": "Entrega",
"state": "Nuevo León",
"country": "México",
"lat": 25.67123,
"lon": -100.31842,
"speed": "",
"photo": "Si",
"voice_note": "no",
"description": "Entrega completada al cliente"
},
{
"id": "67ac78f29f3a2c0012ab34d1",
"driver": "Juan Pérez Ramírez",
"userId": "EMP-1042",
"group": "Región Norte",
"hour": "11:42",
"date": "12-February-2025",
"type": "Gasolina",
"state": "Nuevo León",
"country": "México",
"lat": 25.68045,
"lon": -100.32517,
"speed": 28,
"photo": "Si",
"voice_note": "Si",
"description": "Carga de 45 L en estación de servicio"
},
{
"id": "67af1c4a9f3a2c0012ab35e8",
"driver": "María López Torres",
"userId": "EMP-1087",
"group": "Región Centro",
"hour": "15:08",
"date": "14-February-2025",
"type": "Parada",
"state": "Jalisco",
"country": "México",
"lat": 20.67353,
"lon": -103.34402,
"speed": "",
"photo": "no",
"voice_note": "Si",
"description": "Cliente ausente; se reprograma visita"
}
]
}
nota
  • En una respuesta real, data contiene todas las actividades registradas dentro del rango. Si no hay coincidencias, data es un arreglo vacío ([]).
  • Sólo se listan los tipos de actividad que tienen nombre en la tabla de type (ver abajo); el resto, por ejemplo las cargas de mercancía (load-handle), no aparece en este listado.

Descripción de campos de respuesta​

CampoTipoDescripción
statusBooleanIndica si la operación fue exitosa.
dataArray<Object>Lista de actividades que coinciden con los filtros. Ver tabla abajo.

Campos dentro de cada elemento de data​

CampoTipoDescripción
idStringID de la actividad. Es el ACTIVITY_ID que usa Consultar actividad.
userIdStringID del conductor que registró la actividad (el mismo que utilizas en tus sistemas, o el airbagId si el conductor no tiene uno), aunque la consulta se haya hecho con el airbagId.
driverStringNombre completo del conductor.
groupStringNombre del grupo del conductor. Si pertenece a varios grupos se muestra sólo uno. Es una cadena vacía ("") si no tiene grupo asignado.
typeStringNombre del tipo de actividad, en español (ver tabla abajo).
dateStringFecha del registro en formato DD-MonthName-YYYY (el mes se escribe en inglés y con mayúscula inicial).
hourStringHora del registro en formato HH:mm (24 h). Si la actividad tiene zona horaria registrada, se calcula restando 7 horas a la hora UTC; si no, se usa la hora del servidor. Esta conversión se está corrigiendo para usar la zona horaria del conductor.
countryStringPaís donde se registró la actividad. Cadena vacía ("") si no se conoce.
stateStringEstado o provincia donde se registró la actividad. Cadena vacía ("") si no se conoce.
latNumber | StringLatitud del punto donde se registró la actividad (grados decimales). Cadena vacía ("") si no se registró la posición.
lonNumber | StringLongitud del punto donde se registró la actividad (grados decimales). Cadena vacía ("") si no se registró la posición.
speedNumber | StringVelocidad del conductor al momento del registro. Cadena vacía ("") cuando no se registró o era 0.
photoString"Si" si la actividad tiene el arreglo de fotos (aunque esté vacío), "no" en caso contrario.
voice_noteString"Si" si la actividad tiene el arreglo de notas de voz (aunque esté vacío), "no" en caso contrario.
descriptionStringComentario escrito por el conductor al registrar la actividad. Cadena vacía ("") si no escribió nada.

Valores de type​

slug registradotype en el listado
entregaEntrega
gasGasolina
stopParada
breakFrenado
trafficTrafico
start_workdayInicio de jornada
end_workdayFinal de jornada
otherOtro
maintenanceMantenimiento
administrativeAdministrativo
tech_problemProblema tecnico
road_accidentAccidente vial
closed_roadCamino cerrado
constructionConstruccion
manual_deactivationDesactivacion manual

❌ Respuesta con error (400 Bad Request)​

{
"status": false,
"message": "Error: startDate must be before endDate",
"errorId": "sentry_error_id_123"
}
MensajeCausa
Error: StartDate && EndDate pair must be present.Falta startDate o endDate.
Error: startDate or endDate not validAlguna fecha no tiene un formato válido.
Error: startDate must be before endDatestartDate es igual o posterior a endDate.
Error: Driver not foundEl driverId no corresponde a ningún conductor de tu empresa.