curl --request GET \
--url https://api.raul.ugps.io/api/v1/subscription_details/all/cursor \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.raul.ugps.io/api/v1/subscription_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/subscription_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/subscription_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/subscription_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/subscription_details/all/cursor")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/subscription_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": [
{
"subscription_detail_id": "<string>",
"subscription_plan_id": {},
"gps_detail_id": {},
"last_connection": "2023-11-07T05:31:56Z",
"last_visit_date": "2023-11-07T05:31:56Z",
"last_visit_status_name": "<string>",
"client_id": {},
"vehicle_id": {},
"fecha_inicio": {},
"fecha_termino": {},
"subscription_status_id": {},
"subscription_frequency_id": {},
"creation_date": {},
"update_date": {},
"subscriptionPlan": {
"id": 123,
"subscription_currency_id": 123,
"name": {},
"currency_name": {},
"currency_value": {},
"description": {}
},
"subscriptionStatus": {
"subscription_status_id": 123,
"name": "<string>"
},
"subscriptionFrequency": {
"id": 123,
"name": "<string>"
},
"vehicle": {
"id": "<string>",
"license_plate": {},
"name": {},
"model": {},
"brand": {}
},
"child_client_id": {},
"childClient": {
"client_id": "<string>",
"client_name": "<string>"
}
}
],
"nextCursor": "eyJ1cGRhdGVkQXQiOiIyMDI2LTAyLTAyVDEwOjAwOjAwLjAwMFoiLCJpZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMiJ9",
"hasMore": true,
"total": 1500
}Get cursor-paginated subscription details (optimized for large datasets)
Get cursor-paginated subscription details (optimized for large datasets)
curl --request GET \
--url https://api.raul.ugps.io/api/v1/subscription_details/all/cursor \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.raul.ugps.io/api/v1/subscription_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/subscription_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/subscription_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/subscription_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/subscription_details/all/cursor")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.raul.ugps.io/api/v1/subscription_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": [
{
"subscription_detail_id": "<string>",
"subscription_plan_id": {},
"gps_detail_id": {},
"last_connection": "2023-11-07T05:31:56Z",
"last_visit_date": "2023-11-07T05:31:56Z",
"last_visit_status_name": "<string>",
"client_id": {},
"vehicle_id": {},
"fecha_inicio": {},
"fecha_termino": {},
"subscription_status_id": {},
"subscription_frequency_id": {},
"creation_date": {},
"update_date": {},
"subscriptionPlan": {
"id": 123,
"subscription_currency_id": 123,
"name": {},
"currency_name": {},
"currency_value": {},
"description": {}
},
"subscriptionStatus": {
"subscription_status_id": 123,
"name": "<string>"
},
"subscriptionFrequency": {
"id": 123,
"name": "<string>"
},
"vehicle": {
"id": "<string>",
"license_plate": {},
"name": {},
"model": {},
"brand": {}
},
"child_client_id": {},
"childClient": {
"client_id": "<string>",
"client_name": "<string>"
}
}
],
"nextCursor": "eyJ1cGRhdGVkQXQiOiIyMDI2LTAyLTAyVDEwOjAwOjAwLjAwMFoiLCJpZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMiJ9",
"hasMore": true,
"total": 1500
}Authorizations
Token de sesión Better Auth para rutas de backoffice; las rutas de portal usan su token propio.
Query Parameters
Cursor opaco del ultimo registro de la pagina anterior. null/undefined para primera pagina.
"eyJ1cGRhdGVkQXQiOiIyMDI2LTAyLTAyVDEwOjAwOjAwLjAwMFoiLCJpZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMiJ9"
Cantidad de registros por pagina
1 <= x <= 100Filter by client ID
Filter by subscription status ID
Filter by subscription plan ID
Filter from date (ISO 8601)
Filter to date (ISO 8601)
Filter by expiration status
Search in client name, GPS details, license plate, IMEI
Response
Cursor-paginated list of subscriptions
Lista de subscriptions de la pagina actual
Show child attributes
Show child attributes
Cursor opaco para la siguiente pagina. null si no hay mas paginas.
"eyJ1cGRhdGVkQXQiOiIyMDI2LTAyLTAyVDEwOjAwOjAwLjAwMFoiLCJpZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMiJ9"
Indica si hay mas registros disponibles
true
Total de registros (opcional, puede ser costoso de calcular en datasets grandes)
1500