API Operacional
Quickstart API Reference Sandbox Ir a la plataforma
API Operacional — Todos los endpoints funcionando con disponibilidad 99.9%. Base URL: https://developers.gpssoftwarenumberone.com/api

Endpoints disponibles

RecursoEndpointDescripción
Dispositivos/v1/devicesLista todos los vehículos de tu cuenta
Detalle/v1/devices/:idInformación completa de un dispositivo
Ubicación/v1/devices/:id/locationÚltima posición GPS conocida
Geocercas/v1/geofencesLista y consulta geocercas configuradas
Eventos/v1/eventsHistorial de alertas y eventos de flota

¿Cómo empezar?

Tu API Key es el mismo user_api_hash que usa la plataforma GPS. No necesitas registro adicional.

bash
curl https://developers.gpssoftwarenumberone.com/api/v1/devices \
  -H "Authorization: Bearer TU_API_KEY"
Quickstart
Primera llamada en menos de 2 minutos
💻
Sandbox interactivo
Prueba la API desde el navegador
1
Obtén tu API Key
Tu API Key es el user_api_hash de tu cuenta en la plataforma GPS. Lo encuentras en Perfil → API Key dentro del panel de rastreo.
2
Lista tus dispositivos
Llama al endpoint /v1/devices pasando tu API Key como Bearer token.
curl https://developers.gpssoftwarenumberone.com/api/v1/devices \
  -H "Authorization: Bearer TU_API_KEY"
import requests

API_KEY = "TU_API_KEY"
BASE    = "https://developers.gpssoftwarenumberone.com/api"

headers = {"Authorization": f"Bearer {API_KEY}"}
resp    = requests.get(f"{BASE}/v1/devices", headers=headers)
devices = resp.json()

print(f"Tienes {devices['count']} dispositivos")
for d in devices['data']:
    print(f"  {d['id']} — {d['name']} ({d['status']})")
const API_KEY = "TU_API_KEY";
const BASE    = "https://developers.gpssoftwarenumberone.com/api";

const resp    = await fetch(`${BASE}/v1/devices`, {
  headers: { "Authorization": `Bearer ${API_KEY}` }
});
const devices = await resp.json();

console.log(`Tienes ${devices.count} dispositivos`);
devices.data.forEach(d => {
  console.log(`${d.id} — ${d.name} (${d.status})`);
});
<?php
$apiKey = "TU_API_KEY";
$base   = "https://developers.gpssoftwarenumberone.com/api";

$ch = curl_init("$base/v1/devices");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer $apiKey",
  "Accept: application/json"
]);
$resp    = curl_exec($ch);
$devices = json_decode($resp, true);

echo "Tienes " . $devices['count'] . " dispositivos\n";
foreach ($devices['data'] as $d) {
  echo "  {$d['id']} — {$d['name']} ({$d['status']})\n";
}
3
Respuesta esperada
La API devuelve un objeto list con el conteo total y el array de dispositivos.
{
  "object": "list",
  "count": 25,
  "data": [
    {
      "id": 200,
      "name": "Camion Principal",
      "status": "moving",
      "protocol": "teltonika",
      "lat": 4.710989,
      "lng": -74.072092,
      "speed": 68,
      "course": 45,
      "last_seen": "2026-06-02 10:35:00",
      "driver": "Juan Perez",
      "address": "Calle 80, Bogota",
      "sensors": [...]
    }
  ]
}
4
Siguiente paso
Explora el Sandbox interactivo para probar todos los endpoints desde el navegador, o revisa la API Reference para ver todos los parámetros disponibles.

Bearer Token

Incluye el header Authorization en cada request:

http
Authorization: Bearer <tu_api_key>
Aislamiento de datos: Cada API Key solo tiene acceso a los dispositivos y datos de su propia cuenta. No existe acceso entre cuentas.

Respuestas de error de autenticación

Código HTTPerrorCausa
401unauthorizedNo se envió el header Authorization
401invalid_tokenToken incorrecto o cuenta desactivada
503gateway_errorNo se pudo validar el token temporalmente

Dónde obtener tu API Key

Inicia sesión en la plataforma GPS → Menú de perfil → User Settings → campo API Hash. Ese valor es tu API Key.

Seguridad: Nunca expongas tu API Key en código fuente público ni en el frontend del browser. Úsala solo en servidores backend o llamadas server-side.
GET /v1/devices Lista todos los dispositivos

Retorna todos los dispositivos GPS asociados a tu cuenta, incluyendo estado actual, última posición y sensores.

Respuesta

CampoTipoDescripción
objectstringSiempre "list"
countintegerTotal de dispositivos
dataarrayArray de objetos Device
200 OK
{
  "object": "list",
  "count": 3,
  "data": [
    {
      "id": 200,
      "name": "Camion Ruta Norte",
      "status": "moving",
      "protocol": "teltonika",
      "lat": 4.710989,
      "lng": -74.072092,
      "speed": 68,
      "course": 45,
      "altitude": 2600,
      "last_seen": "2026-06-02 10:35:00",
      "driver": "Juan Perez",
      "address": "Autopista Norte Km 12, Bogota",
      "sensors": [
        { "type": "engine_hours", "name": "Horas motor", "value": "1240 h" },
        { "type": "battery", "name": "Bateria", "value": "13.2 V" }
      ],
      "group": "Flota Bogota"
    }
  ]
}
GET /v1/devices/:id Detalle de un dispositivo

Retorna la información completa de un dispositivo específico.

Parámetros de ruta

ParámetroDescripción
idrequeridoID numérico del dispositivo
404Si el dispositivo no existe o no pertenece a tu cuenta
{ "error": "not_found", "message": "Dispositivo 999 no encontrado." }

Objeto Device

PropiedadTipoDescripción
idintegerIdentificador único del dispositivo
namestringNombre asignado al vehículo
statusstringonline · offline · moving
protocolstringProtocolo del GPS (teltonika, gps103, etc.)
latnumberLatitud de última posición
lngnumberLongitud de última posición
speednumberVelocidad en km/h
coursenumberRumbo en grados (0-360)
last_seenstringTimestamp del último dato recibido
driverstring|nullNombre del conductor asignado
sensorsarraySensores adicionales del dispositivo
GET /v1/devices/:id/location Última posición conocida

Retorna la última posición GPS registrada del dispositivo, incluyendo coordenadas, velocidad y dirección.

200 OK
{
  "object": "location",
  "device_id": 200,
  "lat": 4.710989,
  "lng": -74.072092,
  "speed": 68,
  "course": 45,
  "altitude": 2600,
  "status": "moving",
  "address": "Autopista Norte Km 12, Bogota",
  "timestamp": 1748870100,
  "last_seen": "2026-06-02 10:35:00"
}

Objeto Location

PropiedadTipoDescripción
latnumberLatitud decimal (WGS84)
lngnumberLongitud decimal (WGS84)
speednumberVelocidad en km/h
coursenumberRumbo 0–360°. 0=Norte, 90=Este
altitudenumberAltitud en metros sobre el nivel del mar
timestampintegerUnix timestamp del dato GPS
addressstring|nullDirección aproximada (geocodificación inversa)
GET /v1/geofences Lista todas las geocercas
{
  "object": "list",
  "count": 4,
  "data": [
    {
      "id": 12,
      "name": "Bodega Central",
      "type": "polygon",
      "active": true,
      "color": "#FF0000",
      "created_at": "2026-01-10 09:00:00"
    }
  ]
}
GET /v1/geofences/:id Detalle de una geocerca
GET /v1/events Historial de eventos

Parámetros de query

ParámetroDescripción
device_idopcionalFiltra eventos de un dispositivo específico
limitopcionalMáximo de resultados (default: 50, max: 200)
{
  "object": "list",
  "count": 12,
  "data": [
    {
      "id": 4501,
      "type": "speeding",
      "message": "Exceso de velocidad: 95 km/h en zona 60",
      "device_id": 200,
      "device": "Camion Ruta Norte",
      "lat": 4.710989,
      "lng": -74.072092,
      "timestamp": "2026-06-02 09:12:00"
    }
  ]
}

Formato de error

{
  "error": "not_found",
  "message": "Dispositivo 999 no encontrado.",
  "docs": "https://developers.gpssoftwarenumberone.com"
}

Códigos HTTP

CódigoerrorCuándo ocurre
200Éxito
401unauthorizedSin header Authorization
401invalid_tokenToken inválido o expirado
404not_foundRecurso no existe o no pertenece a tu cuenta
404no_locationDispositivo sin posición registrada
429rate_limit_exceededMás de 100 requests por minuto
500internal_errorError interno del servidor
503gateway_errorPlataforma GPS no disponible temporalmente

Rate Limits

La API acepta 100 requests por minuto por IP. Los headers de respuesta indican el estado del límite:

HeaderDescripción
RateLimit-LimitLímite total por ventana (100)
RateLimit-RemainingRequests disponibles en esta ventana
RateLimit-ResetSegundos hasta que se resetea el contador
Datos reales: Este sandbox llama a la API de producción. Las consultas GET no modifican datos.
Token demo disponible: Usa demo_gps2024 para probar con datos de muestra sin necesitar una cuenta.
GET /v1/devices — Listar dispositivos
GET /v1/devices/:id/location — Ubicación de un dispositivo
GET /v1/events — Historial de eventos

Python — Cliente completo

import requests
from typing import Optional

class GPSClient:
    BASE = "https://developers.gpssoftwarenumberone.com/api"

    def __init__(self, api_key: str):
        self.session = requests.Session()
        self.session.headers.update({
            "Authorization": f"Bearer {api_key}",
            "Accept": "application/json"
        })

    def get_devices(self) -> list:
        resp = self.session.get(f"{self.BASE}/v1/devices")
        resp.raise_for_status()
        return resp.json()["data"]

    def get_location(self, device_id: int) -> dict:
        resp = self.session.get(f"{self.BASE}/v1/devices/{device_id}/location")
        resp.raise_for_status()
        return resp.json()

    def get_events(self, device_id: Optional[int] = None, limit: int = 50) -> list:
        params = {"limit": limit}
        if device_id:
            params["device_id"] = device_id
        resp = self.session.get(f"{self.BASE}/v1/events", params=params)
        resp.raise_for_status()
        return resp.json()["data"]


# Uso
client = GPSClient("TU_API_KEY")

devices = client.get_devices()
for d in devices:
    loc = client.get_location(d["id"])
    print(f"{d['name']}: {loc['lat']}, {loc['lng']} — {loc['speed']} km/h")

JavaScript (Node.js) — Cliente completo

class GPSClient {
  constructor(apiKey) {
    this.baseUrl = "https://developers.gpssoftwarenumberone.com/api";
    this.headers = {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    };
  }

  async fetch(path, params = {}) {
    const url = new URL(this.baseUrl + path);
    Object.entries(params).forEach(([k, v]) => url.searchParams.set(k, v));
    const res = await fetch(url, { headers: this.headers });
    if (!res.ok) throw await res.json();
    return res.json();
  }

  getDevices()                    { return this.fetch("/v1/devices"); }
  getDevice(id)                   { return this.fetch(`/v1/devices/${id}`); }
  getLocation(id)                 { return this.fetch(`/v1/devices/${id}/location`); }
  getEvents(params = {})          { return this.fetch("/v1/events", params); }
  getGeofences()                  { return this.fetch("/v1/geofences"); }
}

// Uso
const client = new GPSClient("TU_API_KEY");
const { data: devices } = await client.getDevices();

for (const device of devices) {
  try {
    const loc = await client.getLocation(device.id);
    console.log(`${device.name}: ${loc.lat}, ${loc.lng}`);
  } catch (e) {
    if (e.error === "no_location") console.log(`${device.name}: sin posición`);
  }
}

v1.0.0 — Junio 2026

Lanzamiento inicial de la API pública GPS Tracking.

  • Endpoint GET /v1/devices — lista de dispositivos
  • Endpoint GET /v1/devices/:id — detalle de dispositivo
  • Endpoint GET /v1/devices/:id/location — última posición
  • Endpoint GET /v1/geofences — lista de geocercas
  • Endpoint GET /v1/events — historial de eventos
  • Autenticación Bearer token
  • Rate limiting 100 req/min
  • Sandbox interactivo

Selecciona un recurso en el menú lateral para ver su documentación detallada.

Dispositivos
GET /v1/devices
Ubicaciones
GET /v1/devices/:id/location
Geocercas
GET /v1/geofences
Eventos
GET /v1/events
Recomendado para integraciones en producción. Usa una API Key en lugar de tu platform_hash directo. Si la key se compromete, la revocas y generas una nueva sin cambiar nada en la plataforma GPS.

Generar una API Key

POST /v1/keys Crear API Key

Crea una nueva API Key vinculada a tu cuenta. Requiere tu platform_hash (el user_api_hash de tu cuenta en la plataforma GPS). La key generada solo se muestra una vez.

Body (JSON)

CampoTipoReq.Descripción
platform_hashstringREQTu user_api_hash de la plataforma GPS
labelstringOPTNombre descriptivo (ej. "Integración ERP")
expires_in_daysintegerOPTDías de vigencia. Default: 365. Max: 3650.
cURL
curl -X POST "https://developers.gpssoftwarenumberone.com/api/v1/keys" \
  -H "Content-Type: application/json" \
  -d '{"platform_hash":"TU_USER_API_HASH","label":"Mi integracion","expires_in_days":365}'

Respuesta

JSON
{
  "object": "api_key",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "key": "gps_live_a1b2c3d4e5f6...",
  "label": "Mi integracion",
  "created_at": 1748822400000,
  "expires_at": 1780358400000,
  "platform_email": "usuario@empresa.com",
  "message": "Guarda esta clave — no se volvera a mostrar completa."
}

Listar tus API Keys

GET /v1/keys Listar keys activas

Retorna todas las keys de tu cuenta. Autenticacion con tu platform_hash en el header Authorization: Bearer. Los valores de las keys se muestran truncados.

cURL
curl "https://developers.gpssoftwarenumberone.com/api/v1/keys" \
  -H "Authorization: Bearer TU_PLATFORM_HASH"

Revocar una API Key

DELETE /v1/keys/:id Revocar key inmediatamente

Revoca una key de forma inmediata e irreversible. Cualquier integración que la use dejara de funcionar al instante.

cURL
curl -X DELETE "https://developers.gpssoftwarenumberone.com/api/v1/keys/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer TU_PLATFORM_HASH"

Formato de las keys

Todas las keys generadas tienen el prefijo gps_live_ seguido de 48 caracteres hexadecimales aleatorios:

Ejemplo
gps_live_a1b2c3d4e5f6789012345678901234567890123456789012
La key completa solo se muestra al crearla. Guárdala en un lugar seguro. Si la pierdes, debes revocarla y generar una nueva.

Generar una key ahora

POST /v1/keys — Generar API Key
La especificación describe todos los endpoints, parámetros, esquemas de respuesta y códigos de error.

Descargar

Descargar openapi.yaml Descargar colección Postman Ver en Swagger UI

Importar en Postman

  1. Descarga el archivo gps-tracking-api-openapi.yaml
  2. Abre Postman → Import → arrastra el archivo
  3. Configura la variable api_key con tu user_api_hash
  4. Usa demo_gps2024 para probar sin cuenta real

Importar en Swagger UI

Pega la URL de la especificación en editor.swagger.io:

URL
https://developers.gpssoftwarenumberone.com/openapi.yaml
Descargar Collection

Contenido de la colección

  • GET /health — Estado del servicio (sin auth)
  • GET /v1/devices — Listar todos los dispositivos
  • GET /v1/devices/:id — Detalle de un dispositivo
  • GET /v1/devices/:id/location — Última posición GPS
  • GET /v1/geofences — Listar geocercas
  • GET /v1/events — Historial de eventos con filtros
La colección incluye la variable api_key = demo_gps2024 preconfigurada para probar de inmediato.
Verificando estado...

Base URL

URL
https://developers.gpssoftwarenumberone.com/api

Métodos HTTP

MétodoUso
GETConsultar recursos (no modifica datos)
POSTCrear recursos (en endpoints futuros)
PUTActualizar un recurso completo
DELETEEliminar un recurso

Formato de respuesta

Todas las respuestas son Content-Type: application/json. Las listas incluyen object, count y data. Los errores incluyen error (código), message (descripción) y docs (enlace a documentación).

JSON — Respuesta lista
{ "object": "list", "count": 3, "data": [...] }
JSON — Respuesta error
{ "error": "not_found", "message": "Dispositivo 999 no encontrado.", "docs": "https://developers.gpssoftwarenumberone.com" }
Límite actual: 100 requests por minuto por API Key.

Headers de respuesta

HeaderDescripción
RateLimit-LimitLímite máximo de requests por ventana
RateLimit-RemainingRequests disponibles en la ventana actual
RateLimit-ResetSegundos hasta que se reinicia el contador

Cuando se supera el límite

El servidor responde con HTTP 429 Too Many Requests:

JSON
{ "error": "rate_limit_exceeded", "message": "Demasiadas solicitudes. Maximo 100 por minuto." }

Buenas prácticas

  • Implementa exponential backoff cuando recibas un 429.
  • Usa caching local para datos que no cambian frecuentemente (geocercas, lista de dispositivos).
  • Prefiere polling de posiciones a intervalos de 30+ segundos.

Parámetros

ParámetroTipoDescripción
limitintegerCantidad de items por página. Default: 50. Máximo: 500.
offsetintegerNúmero de items a saltar (para páginas siguientes).

Ejemplo

Request
curl "https://developers.gpssoftwarenumberone.com/api/v1/events?limit=20&offset=40" \
  -H "Authorization: Bearer TU_API_KEY"

Cuando count en la respuesta es mayor que limit, hay más páginas disponibles.

Filtros disponibles por endpoint

EndpointParámetros de filtro
GET /v1/eventsdevice_id, from, to, type
GET /v1/devicesstatus (online/offline/moving)

Filtros de fecha

Los campos from y to aceptan ISO 8601:

Request
curl "https://developers.gpssoftwarenumberone.com/api/v1/events?from=2026-06-01T00:00:00Z&to=2026-06-01T23:59:59Z" \
  -H "Authorization: Bearer TU_API_KEY"

Versión actual

Todos los endpoints de la API v1 están bajo el prefijo /v1/:

URL
https://developers.gpssoftwarenumberone.com/api/v1/

Política de versiones

  • Las versiones mayores (v1v2) pueden tener cambios que rompen compatibilidad.
  • Las versiones anteriores se mantienen activas por mínimo 12 meses después de publicar una nueva.
  • Los cambios menores (nuevos campos, nuevos endpoints) se agregan sin cambiar la versión.
  • Se notifica por Changelog y correo a integradores registrados con 90 días de anticipación.
v1 es la versión actual y estable. Suscríbete al Changelog para recibir notificaciones de cambios.
Red activa con más de 13 millones de unidades en 157 países.

Niveles del programa

Developer
Gratis
  • Acceso completo a la API
  • Token demo para pruebas
  • Documentación y SDKs
  • 100 req/min
RECOMENDADO
Technology Partner
Aplicar
  • Todo lo de Developer
  • Sandbox privado
  • Soporte prioritario
  • Certificación de integración
  • Visibilidad en marketplace
Enterprise
Contactar
  • Todo lo de Partner
  • Rate limits personalizados
  • SLA dedicado
  • Integración co-branded
  • Revenue sharing

Casos de uso de partners

Combustible y mantenimiento
Integra consumo de combustible y alertas de mantenimiento con tus sistemas ERP.
Logística y TMS
Conecta rutas y ubicaciones en tiempo real a plataformas de gestión de transporte.
Seguros telematics
Usa datos de velocidad, frenadas y uso para calcular primas basadas en comportamiento.
RRHH y nómina
Exporta horas de trabajo, km recorridos y eventos de conductor a tu plataforma de RRHH.
1
Solicitud inicial
Completa el formulario de aplicación con los detalles de tu producto y caso de uso. Tiempo de respuesta: 3-5 días hábiles.
2
Acceso al sandbox
Recibes credenciales para un entorno de pruebas con datos de muestra. Aquí desarrollas y pruebas tu integración.
3
Revisión técnica
Nuestro equipo revisa tu implementación: manejo de errores, rate limiting, aislamiento de datos por tenant y seguridad.
4
Certificación y publicación
Tu integración recibe el sello de certificación GPS Tracking y queda visible en el marketplace para la red de distribuidores.
Para iniciar el proceso, escribe a api@gpssoftwarenumberone.com con el asunto "Technology Partner Application".
Demo gratuito disponible ahora: Usa el token demo_gps2024 en el Sandbox interactivo para explorar la API con datos de muestra sin necesitar una cuenta.

Sandbox de Technology Partner

Los partners certificados reciben un sandbox dedicado con:

  • Flota simulada de 50 dispositivos con posiciones GPS en movimiento
  • Historial de eventos de los últimos 90 días
  • Geocercas preconfiguradas para pruebas de alertas
  • Credenciales independientes de producción
  • Reseteo de datos disponible en cualquier momento

Para solicitar acceso, sigue el proceso de aplicación.

Próxima funcionalidad: Los webhooks están en desarrollo. Disponibles para Technology Partners en Q3 2026. Ver Changelog.

Cómo funcionarán

Registras una URL en tu servidor. Cuando un evento ocurre (posición fuera de geocerca, velocidad excedida, ignición activada), la API envía un POST HTTP a tu URL con el detalle del evento en JSON.

JSON — Payload de ejemplo
{
  "event": "geofence.exit",
  "timestamp": "2026-06-02T14:30:00Z",
  "device": { "id": 1001, "name": "Camion Bogota-01" },
  "geofence": { "id": 42, "name": "Zona Bogota Centro" },
  "location": { "lat": 4.7110, "lng": -74.0721, "speed": 68 }
}

Tipos de eventos planeados

  • geofence.enter / geofence.exit — Entrada/salida de geocerca
  • speed.exceeded — Velocidad excedida
  • ignition.on / ignition.off — Ignición
  • device.offline — Dispositivo sin señal
  • alarm.triggered — Alarma de pánico o robo
En desarrollo — Q3 2026. Suscríbete al Changelog para ser notificado.

Datos disponibles

  • Velocidad — campo speed en km/h en cada posición
  • Frenadas y aceleraciones bruscas — eventos de tipo harsh_brake y harsh_accel
  • Exceso de velocidad — eventos speed_exceeded con umbral configurable
  • Horas de conducción — calculable a partir de eventos de ignición on/off

Ejemplo — calcular km del día

Python
events = client.get_events(device_id=1001, from_date="2026-06-02T00:00:00Z")
km_today = sum(e.get("distance", 0) for e in events)

Patrón recomendado

Consulta GET /v1/events?type=maintenance_due periódicamente y dispara notificaciones en tu sistema cuando el odómetro supere el umbral configurado.

Documentación detallada disponible al activar Webhooks en Q3 2026.

Fuentes de datos

  • GET /v1/events con filtro de fecha — historial completo de posiciones
  • Campo distance en cada evento de posición
  • Acumula por device_id para reporte por vehículo

Flujo típico

  1. Llama GET /v1/devices para obtener el estado actual de la flota
  2. Para cada dispositivo moving, consulta /location con un intervalo de 30 segundos
  3. Usa GET /v1/geofences para mostrar zonas en el mapa
  4. Almacena las posiciones en tu base de datos para histórico y reportes

Datos que procesamos vía API

  • Posiciones GPS (lat, lng, velocidad, altitud) de dispositivos registrados en tu cuenta
  • Eventos de dispositivos (ignición, alertas, geocercas)
  • Información de conductores asignados a dispositivos

Tus responsabilidades como integrador

Al usar la API, confirmas que tienes las autorizaciones necesarias de los propietarios y conductores de los vehículos para recopilar y procesar su información de ubicación, de acuerdo con las leyes de protección de datos aplicables en tu jurisdicción.

Para la política completa de privacidad de la plataforma GPS, visita gpssoftwarenumberone.com.

Uso aceptable

  • La API es exclusiva para uso con dispositivos registrados en tu cuenta.
  • No puedes revender el acceso a la API como un servicio independiente.
  • El uso de la API para acceder a datos de otros tenants está prohibido y puede resultar en suspensión inmediata.
  • Los integradores deben respetar los rate limits y no implementar mecanismos para eludirlos.

Suspensión de acceso

Nos reservamos el derecho de suspender o revocar credenciales de API en caso de violación de estos términos, abuso del servicio, o actividad que ponga en riesgo la estabilidad de la plataforma.

99.9%
Disponibilidad mensual
<300ms
Latencia p95
24h
Tiempo de respuesta soporte

Mantenimientos programados

Los mantenimientos se notifican con al menos 48 horas de anticipación por correo a integradores registrados. Se realizan preferentemente los domingos entre 02:00-04:00 UTC.

GET /v1/history/:device_id Historial de un dispositivo

Devuelve el recorrido del día con posiciones GPS, kilometros recorridos y metricas de uso.

Parámetros de query

ParámetroTipoReq.Descripción
fromstringREQFecha inicio en formato YYYY-MM-DD
tostringREQFecha fin en formato YYYY-MM-DD

Respuesta

CampoTipoDescripción
distance_kmnumberKilometros totales recorridos en el periodo
top_speednumberVelocidad máxima registrada (km/h)
move_durationstringTiempo total en movimiento
stop_durationstringTiempo total detenido
positionsarrayArray de posiciones GPS con time, lat, lng, speed, address
cURL
curl "https://developers.gpssoftwarenumberone.com/api/v1/history/1001?from=2026-06-02&to=2026-06-02" \
  -H "Authorization: Bearer demo_gps2024"
GET /v1/history/:id — Historial
GET /v1/alerts Listar alertas

Devuelve todas las alertas configuradas con su tipo, estado y dispositivos asignados.

Tipos de alerta

typeDescripción
overspeedExceso de velocidad
geofence_inEntrada a geocerca
geofence_outSalida de geocerca
ignition_onIgnición encendida
ignition_offIgnición apagada
sosPánico / alarma
device_offlineDispositivo sin conexión
cURL
curl "https://developers.gpssoftwarenumberone.com/api/v1/alerts" \
  -H "Authorization: Bearer demo_gps2024"
GET /v1/alerts — Listar alertas
Cada servicio se activa según expiration_by: odometer (km), engine_hours (horas de motor) o days (días). Ideal para integración con software de mantenimiento como Fleetio, ERPNext o sistemas propios.
GET /v1/services Listar servicios

Devuelve todos los servicios de mantenimiento. Filtra por dispositivo con el parámetro device_id.

Parámetros de query

ParámetroTipoReq.Descripción
device_idintegerOPTFiltrar por dispositivo especifico

Campos de respuesta

CampoTipoDescripción
expiration_bystringodometer, engine_hours o days
intervalnumberIntervalo de mantenimiento (km, horas o días)
last_servicenumberValor al momento del último servicio
expires_atnumberValor al que vence el proximo servicio
remainingnumberCantidad restante hasta el vencimiento (negativo = vencido)
expiredbooleanSi el servicio ya esta vencido
cURL
curl "https://developers.gpssoftwarenumberone.com/api/v1/services?device_id=1001" \
  -H "Authorization: Bearer demo_gps2024"
GET /v1/services — Servicios de mantenimiento
GET /v1/drivers Listar conductores

Devuelve todos los conductores con nombre, contacto, RFID y vehículo asignado actualmente.

CampoTipoDescripción
namestringNombre completo del conductor
phonestringTeléfono de contacto
rfidstringCódigo RFID de identificación en vehículo
assigned_device_idintegerID del vehículo asignado actualmente
assigned_devicestringNombre del vehículo asignado
cURL
curl "https://developers.gpssoftwarenumberone.com/api/v1/drivers" \
  -H "Authorization: Bearer demo_gps2024"
GET /v1/drivers — Conductores