curl --request GET \
--url https://api.raul.ugps.io/api/v1/gps_details/all/cursor \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.raul.ugps.io/api/v1/gps_details/all/cursor"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.raul.ugps.io/api/v1/gps_details/all/cursor', 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.raul.ugps.io/api/v1/gps_details/all/cursor",
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.raul.ugps.io/api/v1/gps_details/all/cursor"
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.raul.ugps.io/api/v1/gps_details/all/cursor")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/gps_details/all/cursor")
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{
"data": [
{
"gps_details_id": "<string>",
"gps_name": {},
"imei": {},
"number_phone": {},
"gps_model_id": {},
"gps_model_name": {},
"sim_deta_id": {},
"gps_inventory_id": {},
"gps_inventory_name": {},
"gps_platform_name": {},
"assigned_name": {},
"assigned_id": {},
"operator_name": {},
"gps_status_id": {},
"gps_status_name": {},
"updated_at": {}
}
],
"nextCursor": 200,
"hasMore": true,
"total": 1500
}Obtener GPS con cursor pagination (optimizado para grandes datasets)
Usa cursor-based pagination para mejor performance con 100k+ registros. El cursor es el row_num del ultimo registro de la pagina anterior.
curl --request GET \
--url https://api.raul.ugps.io/api/v1/gps_details/all/cursor \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.raul.ugps.io/api/v1/gps_details/all/cursor"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.raul.ugps.io/api/v1/gps_details/all/cursor', 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.raul.ugps.io/api/v1/gps_details/all/cursor",
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.raul.ugps.io/api/v1/gps_details/all/cursor"
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.raul.ugps.io/api/v1/gps_details/all/cursor")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/gps_details/all/cursor")
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{
"data": [
{
"gps_details_id": "<string>",
"gps_name": {},
"imei": {},
"number_phone": {},
"gps_model_id": {},
"gps_model_name": {},
"sim_deta_id": {},
"gps_inventory_id": {},
"gps_inventory_name": {},
"gps_platform_name": {},
"assigned_name": {},
"assigned_id": {},
"operator_name": {},
"gps_status_id": {},
"gps_status_name": {},
"updated_at": {}
}
],
"nextCursor": 200,
"hasMore": true,
"total": 1500
}Authorizations
Bearer token authentication
Query Parameters
ID del ultimo registro de la pagina anterior. null/undefined para primera pagina.
150
Cantidad de registros por pagina
1 <= x <= 100Filter by GPS status ID
Filter by GPS platform ID
Filter by client ID
Filter by GPS inventory ID
Search across all visible GPS fields (IMEI, name, client, model, phone, etc.)
Filter by inventory name (e.g. Bodega, Tecnico, Cliente)
Filter by GPS status name (e.g. Instalado, Activado, Retirado)
Response
Lista de GPS con cursor pagination
Lista de GPS de la pagina actual
Show child attributes
Show child attributes
Cursor para la siguiente pagina (ID del ultimo registro). null si no hay mas paginas.
200
Indica si hay mas registros disponibles
true
Total de registros (opcional, puede ser costoso de calcular en datasets grandes)
1500