curl --request GET \
--url https://api.ugps.io/api/trips/open \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ugps.io/api/trips/open"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ugps.io/api/trips/open', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ugps.io/api/trips/open",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ugps.io/api/trips/open"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ugps.io/api/trips/open")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ugps.io/api/trips/open")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"openTrips": [
{
"id": "<string>",
"status": "open",
"flespiDeviceId": 123,
"assetId": "<string>",
"tripConfig": "ignition",
"begin": 123,
"startAddress": "<string>",
"startPosition": {
"latitude": 123,
"longitude": 123,
"timestamp": 123
},
"lastPosition": {
"latitude": 123,
"longitude": 123,
"timestamp": 123
},
"lastPositionAt": 123
}
]
}{
"error": "El email es requerido"
}{
"error": "Token inválido o expirado"
}{
"message": "Error interno del servidor"
}Obtener viajes en curso de una selección de activos o de un tracker
Devuelve los viajes en curso (status: open) del engine de intervalos para una
selección de activos (assetIds) o para un tracker (flespiDeviceId). Los dos
selectores son mutuamente excluyentes; se exige exactamente uno.
Contrato de datos parciales: un viaje en curso todavía no tiene fin, duración,
distancia ni velocidades, por lo que no se exponen. Se sirven inicio, dirección
inicial si ya existe, posición inicial y última posición registrada
(lastPositionAt sale del timestamp de esa posición, no de updatedAt). La última
posición no es un destino: el estado open describe el viaje, no garantiza conexión
ni movimiento actual del vehículo.
Sin rango de fechas: un viaje abierto es, por definición, actual. Los listados y reportes por rango siguen devolviendo solo viajes finalizados. Se respeta el scope de activos autorizado para el usuario; una selección fuera de scope o inexistente responde una lista vacía, sin distinguir ajeno de inexistente. Como máximo un viaje por tracker, escrito con la configuración de viajes vigente del tracker.
curl --request GET \
--url https://api.ugps.io/api/trips/open \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ugps.io/api/trips/open"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ugps.io/api/trips/open', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ugps.io/api/trips/open",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.ugps.io/api/trips/open"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ugps.io/api/trips/open")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ugps.io/api/trips/open")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"openTrips": [
{
"id": "<string>",
"status": "open",
"flespiDeviceId": 123,
"assetId": "<string>",
"tripConfig": "ignition",
"begin": 123,
"startAddress": "<string>",
"startPosition": {
"latitude": 123,
"longitude": 123,
"timestamp": 123
},
"lastPosition": {
"latitude": 123,
"longitude": 123,
"timestamp": 123
},
"lastPositionAt": 123
}
]
}{
"error": "El email es requerido"
}{
"error": "Token inválido o expirado"
}{
"message": "Error interno del servidor"
}Authorizations
Token de sesión Better Auth o API token (atk_...) en el header Authorization: Bearer <token>. Los JWT legacy ya no son válidos.
Query Parameters
Lista CSV de ids de assets (máximo 30). Excluyente con flespiDeviceId.
ID del tracker en Flespi. Excluyente con assetIds.
Response
Viajes en curso obtenidos exitosamente (lista vacía si no hay ninguno)
Show child attributes
Show child attributes