Guías
Historial de recorridos
Consulta el recorrido de un vehículo por periodos de hasta 31 días, con tramos de conducción y parada o posiciones GPS crudas paginadas.
Estado: Parcial · Revisada el 5 de octubre de 2026
Qué se verificó y cómo: Usa operaciones verificadas por diff contra producción. Los ejemplos se ejecutaron contra un servidor simulado. El rango máximo de 31 días es el valor por defecto del código, no una medición de producción.
Antes de empezar #
- Necesitas el
iddel vehículo: sale deget_devices. - Las fechas y horas se interpretan en la zona horaria de la cuenta, no en UTC.
get_historyacepta un rango máximo de 31 días y responde422si lo superas. Para periodos más largos, divide en tramos de hasta 31 días y consulta uno por uno.
Recorrido por tramos #
Recorrido de un vehículo por tramos
cURL
curl -sS -G "https://plataforma.trackerintl.com/api/get_history" \
-H "user-api-hash: TU_API_HASH" \
--data-urlencode "device_id=9001" \
--data-urlencode "from_date=2026-10-01" \
--data-urlencode "from_time=00:00" \
--data-urlencode "to_date=2026-10-02" \
--data-urlencode "to_time=23:59"JavaScript · Node.js 22
const BASE_URL = "https://plataforma.trackerintl.com";
const API_HASH = "TU_API_HASH";
const params = new URLSearchParams({
device_id: "9001",
from_date: "2026-10-01",
from_time: "00:00",
to_date: "2026-10-02",
to_time: "23:59",
});
const respuesta = await fetch(`${BASE_URL}/api/get_history?${params}`, {
headers: { "user-api-hash": API_HASH },
});
if (!respuesta.ok) throw new Error(`HTTP ${respuesta.status}: ${await respuesta.text()}`);
console.log(JSON.stringify(await respuesta.json(), null, 2));Python · Python 3 con requests
import json
import requests
BASE_URL = "https://plataforma.trackerintl.com"
API_HASH = "TU_API_HASH"
respuesta = requests.get(
f"{BASE_URL}/api/get_history",
headers={"user-api-hash": API_HASH},
params={"device_id": "9001", "from_date": "2026-10-01", "from_time": "00:00", "to_date": "2026-10-02", "to_time": "23:59"},
timeout=30,
)
respuesta.raise_for_status()
print(json.dumps(respuesta.json(), indent=2, ensure_ascii=False))PHP · PHP 8 con cURL
<?php
$baseUrl = "https://plataforma.trackerintl.com";
$apiHash = "TU_API_HASH";
$url = $baseUrl . "/api/get_history?" . http_build_query(["device_id" => "9001", "from_date" => "2026-10-01", "from_time" => "00:00", "to_date" => "2026-10-02", "to_time" => "23:59"]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ["user-api-hash: " . $apiHash],
]);
$cuerpo = curl_exec($ch);
$codigo = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($cuerpo === false || $codigo !== 200) {
fwrite(STDERR, "HTTP $codigo\n");
exit(1);
}
echo json_encode(json_decode($cuerpo, true), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), "\n";Cada elemento de items es un tramo de conducción o de parada, según su status. Los totales (distance_sum, top_speed…) vienen con unidad, como texto.
Posiciones crudas paginadas #
Si necesitas cada posición GPS, usa get_history_messages. Avanza con page hasta llegar a last_page, y recuerda que limit solo admite 50, 100, 200, 300, 400, 500 o 1000.
Posiciones GPS crudas paginadas
cURL
curl -sS -G "https://plataforma.trackerintl.com/api/get_history_messages" \
-H "user-api-hash: TU_API_HASH" \
--data-urlencode "device_id=9001" \
--data-urlencode "from_date=2026-10-01" \
--data-urlencode "from_time=00:00" \
--data-urlencode "to_date=2026-10-02" \
--data-urlencode "to_time=23:59" \
--data-urlencode "limit=100" \
--data-urlencode "page=1"JavaScript · Node.js 22
const BASE_URL = "https://plataforma.trackerintl.com";
const API_HASH = "TU_API_HASH";
const params = new URLSearchParams({
device_id: "9001",
from_date: "2026-10-01",
from_time: "00:00",
to_date: "2026-10-02",
to_time: "23:59",
limit: "100",
page: "1",
});
const respuesta = await fetch(`${BASE_URL}/api/get_history_messages?${params}`, {
headers: { "user-api-hash": API_HASH },
});
if (!respuesta.ok) throw new Error(`HTTP ${respuesta.status}: ${await respuesta.text()}`);
console.log(JSON.stringify(await respuesta.json(), null, 2));Python · Python 3 con requests
import json
import requests
BASE_URL = "https://plataforma.trackerintl.com"
API_HASH = "TU_API_HASH"
respuesta = requests.get(
f"{BASE_URL}/api/get_history_messages",
headers={"user-api-hash": API_HASH},
params={"device_id": "9001", "from_date": "2026-10-01", "from_time": "00:00", "to_date": "2026-10-02", "to_time": "23:59", "limit": "100", "page": "1"},
timeout=30,
)
respuesta.raise_for_status()
print(json.dumps(respuesta.json(), indent=2, ensure_ascii=False))PHP · PHP 8 con cURL
<?php
$baseUrl = "https://plataforma.trackerintl.com";
$apiHash = "TU_API_HASH";
$url = $baseUrl . "/api/get_history_messages?" . http_build_query(["device_id" => "9001", "from_date" => "2026-10-01", "from_time" => "00:00", "to_date" => "2026-10-02", "to_time" => "23:59", "limit" => "100", "page" => "1"]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ["user-api-hash: " . $apiHash],
]);
$cuerpo = curl_exec($ch);
$codigo = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($cuerpo === false || $codigo !== 200) {
fwrite(STDERR, "HTTP $codigo\n");
exit(1);
}
echo json_encode(json_decode($cuerpo, true), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), "\n";Recomendaciones #
- Pide solo el rango que necesitas: las respuestas de historial pueden ser grandes.
- Para análisis largos, guarda lo que descargas en tu propio almacén en lugar de volver a pedirlo.
- Si el vehículo está vencido, la API responde
422. Mira Errores.