Introducción
La API de Gundi está diseñada para permitir que los proveedores de datos transmitan datos destinados a diversas plataformas compatibles (por ejemplo, EarthRanger , SMART, Movebank y wpsWatch).
URL base
https://sensors.api.gundiservice.org/v2/
Formato de respuesta
Todas las respuestas están en formato JSON.
Control de versiones
Esta documentación es para la versión v2 de la API.
Límites de velocidad
Gundi puede procesar grandes volúmenes de datos sin imponer un límite de velocidad. Sin embargo, los sistemas de destino (como EarthRanger ) pueden tener dificultades para procesar los datos cuando se envían a una velocidad fija de aproximadamente una ubicación por segundo por dispositivo. En estos casos, Gundi reintenta automáticamente, pero le recomendamos contactar al equipo de Gundi si prevé enviar datos con esta frecuencia.
Autenticación
Todos los puntos finales requieren una clave API enviada en el encabezado Authorization
:
apikey: API_KEY
Puede obtener esta clave de la conexión creada en el Portal de Gundi . Consulte nuestra documentación para crear una nueva conexión o solicite la clave API a nuestro equipo de soporte. Las solicitudes que no incluyan una clave, o que incluyan una clave no válida o caducada, se denegarán con un mensaje de error.
Descripción general de la integración

POST /events/
Los eventos se pueden utilizar para informes, alertas, incidentes o cualquier evento que requiera conciencia o acción.
Encabezados obligatorios
Encabezamiento | Valor | Descripción |
---|---|---|
apikey |
{{API_KEY}} |
Su clave API para autenticación |
Content-Type |
application/json |
Especifica el tipo de medio del cuerpo. |
Parámetros de consulta
Atributos | ||
source |
Identifica un dispositivo único asociado con el evento. | opcional |
title |
Una cadena de texto intuitivo como título del evento. Aparece en el feed de eventos y la vista del mapa de EarthRanger . | requerido |
event_type |
Representa el tipo de evento EarthRanger o la categoría SMART correspondiente al informe. | requerido |
recorded_at |
Una marca de tiempo que incluye una zona horaria, recomendada en formato ISO (por ejemplo, 2023-07-27T09:34-03:00 o 2023-07-27T09:34Z). | requerido |
location |
Un diccionario con lon (longitud) y lat (latitud) para indicar la ubicación del evento. Los valores de lon y lat son grados decimales en WGS-84. | requerido |
event_details |
Un diccionario de propiedades de eventos que coinciden con el esquema del "tipo de evento" asociado (en EarthRanger ) o categoría (en SMART Connect). | opcional |
Cuerpo de la solicitud
{
"source": "{{SOURCE_ID}}",
"title": "{{EVENT_TITLE}}",
"event_type": "{{EVENT_TYPE}}",
"recorded_at": "{{TIMESTAMP}}",
"location": {
"lat": {{LATITUDE}},
"lon": {{LONGITUDE}}
},
"event_details": {
}
}
Ejemplo
{
"source":"none",
"title":"Accident Report",
"event_type":"accident_rep",
"recorded_at":"2023-10-03T09:35Z",
"location":{
"lat":20.117625,
"lon":-103.113061
},
"event_details":{
"area":"1",
"people_affected":"1",
"tags":[
"fall",
"injury"
]
}
}
Respuesta
Si la operación se realiza correctamente, nuestra API v2 le proporcionará un ID de objeto, que podrá utilizar posteriormente para diversas actualizaciones y casos de uso. Asegúrese de anotar este {{OBJECT_ID}} si prevé necesitar la funcionalidad adicional.
200 OK
{
"object_id": {{OBJECT_ID}},
"created_at": {{CREATED_AT}}
}
PATCH /events/{object_id}/
Para actualizar un evento enviado previamente a la API de Gundi, utilice el método PATCH e incluya solo las propiedades que desee modificar.
Encabezados obligatorios
Encabezamiento | Valor | Descripción |
---|---|---|
apikey |
{{API_KEY}} |
Su clave API para autenticación |
Content-Type |
application/json |
Especifica el tipo de medio del cuerpo. |
Ejemplo
{
"status":"resolved",
"location":{
"lat":13.527,
"lon":13.154
},
"event_details":{
"number_people_involved":"3"
}
}
PATCH /events/{object_id}/attachments/
Es posible adjuntar imágenes de cámaras trampa a eventos mediante el punto final de archivos adjuntos.
Encabezados obligatorios
Encabezamiento | Valor | Descripción |
---|---|---|
apikey |
{{API_KEY}} |
Su clave API para autenticación |
Content-Type |
application/json |
Especifica el tipo de medio del cuerpo. |
Ejemplo de solicitud
Este ejemplo ilustra el proceso de actualización de un evento con una imagen mediante la API de Gundi. Preste atención al marcador {{OBJECT_ID}} en el endpoint, que debe sustituirse por el valor obtenido del resultado de la operación de creación del evento (consulte "Publicación de eventos").
curl --location 'https://sensors.api.gundiservice.org/v2/events/{{OBJECT_ID}}/attachments/' \
--header 'apikey: {{API_KEY}}' \
--form 'file1={{Blob}}'
POST /observations/
Las observaciones se pueden utilizar para realizar un seguimiento de la vida silvestre, los guardabosques y los activos.
Encabezados obligatorios
Encabezamiento | Valor | Descripción |
---|---|---|
apikey |
{{API_KEY}} |
Su clave API para autenticación |
Content-Type |
application/json |
Especifica el tipo de medio del cuerpo. |
Parámetros de consulta
Atributos | ||
source |
Un identificador único para el dispositivo que informa su posición. | requerido |
source_name |
Un nombre intuitivo para el dispositivo. Si se omite, se usará el identificador de origen como predeterminado. | opcional |
subject_type |
Describe la entidad rastreada (p. ej., 'guardabosques', 'elefante', 'helicóptero'). En EarthRanger , esto corresponde al subtipo del sujeto. | opcional |
recorded_at |
Marca de tiempo del registro de la posición, incluyendo la zona horaria. Utilice el formato ISO (p. ej., 2022-01-10T16:43:32Z) para mantener la coherencia. | requerido |
location |
Un diccionario que contiene las coordenadas del punto de seguimiento: lon (longitud) y lat (latitud) en grados decimales (WGS-84). | requerido |
additional |
Un diccionario para pares clave-valor personalizados específicos del dispositivo rastreado, que permite el almacenamiento de metadatos adicionales más allá de los campos estándar. Este campo puede recibir cualquier JSON válido. |
opcional |
Cuerpo de la solicitud
{
"source": "{{SOURCE_ID}}",
"subject_type": "{{SUBJECT_TYPE}}",
"source_name": "{{SOURCE_NAME}}",
"recorded_at": "{{TIMESTAMP}}",
"location": {
"lat": {{LATITUDE}},
"lon": {{LONGITUDE}}
},
"additional": {
}
}
Ejemplo
{
"source":"ST123456789",
"subject_type":"cow",
"source_name":"Buttercup",
"recorded_at":"2023-10-04T00:44:32Z",
"location":{
"lat":-51.769228,
"lon":-72.004443
},
"additional":{
"speed_kmph":3
}
}
Pruébalo en Postman
Última actualización: 3 de agosto de 2025