Crear un nuevo activo
curl --request POST \
--url https://api.ugps.io/api/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"icon": {
"id": "<string>",
"color": "<string>"
},
"mainTrackerId": 123,
"trackers": [
{
"id": 123,
"platform": "<string>"
}
],
"plate": "<string>",
"assetTypeId": "<string>",
"vehicleTypeId": "<string>",
"model": "<string>",
"year": 123,
"color": "<string>",
"make": "<string>",
"chassis": "<string>",
"motor": "<string>",
"fuel": "<string>",
"kilometer": 123,
"description": "<string>",
"clientId": "<string>",
"state": "<string>"
}
'import requests
url = "https://api.ugps.io/api/assets"
payload = {
"name": "<string>",
"icon": {
"id": "<string>",
"color": "<string>"
},
"mainTrackerId": 123,
"trackers": [
{
"id": 123,
"platform": "<string>"
}
],
"plate": "<string>",
"assetTypeId": "<string>",
"vehicleTypeId": "<string>",
"model": "<string>",
"year": 123,
"color": "<string>",
"make": "<string>",
"chassis": "<string>",
"motor": "<string>",
"fuel": "<string>",
"kilometer": 123,
"description": "<string>",
"clientId": "<string>",
"state": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
icon: {id: '<string>', color: '<string>'},
mainTrackerId: 123,
trackers: [{id: 123, platform: '<string>'}],
plate: '<string>',
assetTypeId: '<string>',
vehicleTypeId: '<string>',
model: '<string>',
year: 123,
color: '<string>',
make: '<string>',
chassis: '<string>',
motor: '<string>',
fuel: '<string>',
kilometer: 123,
description: '<string>',
clientId: '<string>',
state: '<string>'
})
};
fetch('https://api.ugps.io/api/assets', 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/assets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'icon' => [
'id' => '<string>',
'color' => '<string>'
],
'mainTrackerId' => 123,
'trackers' => [
[
'id' => 123,
'platform' => '<string>'
]
],
'plate' => '<string>',
'assetTypeId' => '<string>',
'vehicleTypeId' => '<string>',
'model' => '<string>',
'year' => 123,
'color' => '<string>',
'make' => '<string>',
'chassis' => '<string>',
'motor' => '<string>',
'fuel' => '<string>',
'kilometer' => 123,
'description' => '<string>',
'clientId' => '<string>',
'state' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ugps.io/api/assets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"icon\": {\n \"id\": \"<string>\",\n \"color\": \"<string>\"\n },\n \"mainTrackerId\": 123,\n \"trackers\": [\n {\n \"id\": 123,\n \"platform\": \"<string>\"\n }\n ],\n \"plate\": \"<string>\",\n \"assetTypeId\": \"<string>\",\n \"vehicleTypeId\": \"<string>\",\n \"model\": \"<string>\",\n \"year\": 123,\n \"color\": \"<string>\",\n \"make\": \"<string>\",\n \"chassis\": \"<string>\",\n \"motor\": \"<string>\",\n \"fuel\": \"<string>\",\n \"kilometer\": 123,\n \"description\": \"<string>\",\n \"clientId\": \"<string>\",\n \"state\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ugps.io/api/assets")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"icon\": {\n \"id\": \"<string>\",\n \"color\": \"<string>\"\n },\n \"mainTrackerId\": 123,\n \"trackers\": [\n {\n \"id\": 123,\n \"platform\": \"<string>\"\n }\n ],\n \"plate\": \"<string>\",\n \"assetTypeId\": \"<string>\",\n \"vehicleTypeId\": \"<string>\",\n \"model\": \"<string>\",\n \"year\": 123,\n \"color\": \"<string>\",\n \"make\": \"<string>\",\n \"chassis\": \"<string>\",\n \"motor\": \"<string>\",\n \"fuel\": \"<string>\",\n \"kilometer\": 123,\n \"description\": \"<string>\",\n \"clientId\": \"<string>\",\n \"state\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ugps.io/api/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"icon\": {\n \"id\": \"<string>\",\n \"color\": \"<string>\"\n },\n \"mainTrackerId\": 123,\n \"trackers\": [\n {\n \"id\": 123,\n \"platform\": \"<string>\"\n }\n ],\n \"plate\": \"<string>\",\n \"assetTypeId\": \"<string>\",\n \"vehicleTypeId\": \"<string>\",\n \"model\": \"<string>\",\n \"year\": 123,\n \"color\": \"<string>\",\n \"make\": \"<string>\",\n \"chassis\": \"<string>\",\n \"motor\": \"<string>\",\n \"fuel\": \"<string>\",\n \"kilometer\": 123,\n \"description\": \"<string>\",\n \"clientId\": \"<string>\",\n \"state\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"name": "<string>",
"icon": {
"id": "<string>",
"color": "<string>"
},
"mainTrackerId": 123,
"trackers": [
{
"id": 123,
"platform": "<string>"
}
],
"plate": "<string>",
"assetTypeId": "<string>",
"vehicleTypeId": "<string>",
"model": "<string>",
"year": 123,
"color": "<string>",
"make": "<string>",
"chassis": "<string>",
"motor": "<string>",
"fuel": "<string>",
"kilometer": 123,
"description": "<string>",
"clientId": "<string>",
"state": "<string>"
}
}{
"error": "El email es requerido"
}{
"error": "Token inválido o expirado"
}{
"message": "Error interno del servidor"
}Activos - Assets
Crear un nuevo activo
Crea un nuevo activo en el sistema.
Datos requeridos:
name(string): Nombre del activoicon(object): Objeto conid(string) ycolor(string, formato hexadecimal #RRGGBB o #RGB)mainTrackerId(number): ID del tracker principaltrackers(array): Array de objetos conid(number) yplatform(string)plate(string): Placa del activo (debe ser única dentro del cliente)assetTypeId(string): ID del tipo de activo
Datos opcionales:
vehicleTypeId(string): ID del tipo de vehículomodel(string): Modelo del activoyear(number): Año del activocolor(string): Color del activomake(string): Marca del activochassis(string): Número de chasismotor(string): Número de motorfuel(string): Tipo de combustiblekilometer(number): Kilometrajedescription(string): Descripción adicionalstate(string): Estado del activo
Comportamiento automático:
- El
clientIdse asigna automáticamente desde el token del usuario - Se valida que la placa y el nombre sean únicos dentro del cliente
- Si se proporciona un
trackerId, se valida que el tracker pertenezca al mismo cliente
Permisos requeridos: access_assets
POST
/
api
/
assets
Crear un nuevo activo
curl --request POST \
--url https://api.ugps.io/api/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"icon": {
"id": "<string>",
"color": "<string>"
},
"mainTrackerId": 123,
"trackers": [
{
"id": 123,
"platform": "<string>"
}
],
"plate": "<string>",
"assetTypeId": "<string>",
"vehicleTypeId": "<string>",
"model": "<string>",
"year": 123,
"color": "<string>",
"make": "<string>",
"chassis": "<string>",
"motor": "<string>",
"fuel": "<string>",
"kilometer": 123,
"description": "<string>",
"clientId": "<string>",
"state": "<string>"
}
'import requests
url = "https://api.ugps.io/api/assets"
payload = {
"name": "<string>",
"icon": {
"id": "<string>",
"color": "<string>"
},
"mainTrackerId": 123,
"trackers": [
{
"id": 123,
"platform": "<string>"
}
],
"plate": "<string>",
"assetTypeId": "<string>",
"vehicleTypeId": "<string>",
"model": "<string>",
"year": 123,
"color": "<string>",
"make": "<string>",
"chassis": "<string>",
"motor": "<string>",
"fuel": "<string>",
"kilometer": 123,
"description": "<string>",
"clientId": "<string>",
"state": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
icon: {id: '<string>', color: '<string>'},
mainTrackerId: 123,
trackers: [{id: 123, platform: '<string>'}],
plate: '<string>',
assetTypeId: '<string>',
vehicleTypeId: '<string>',
model: '<string>',
year: 123,
color: '<string>',
make: '<string>',
chassis: '<string>',
motor: '<string>',
fuel: '<string>',
kilometer: 123,
description: '<string>',
clientId: '<string>',
state: '<string>'
})
};
fetch('https://api.ugps.io/api/assets', 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/assets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'icon' => [
'id' => '<string>',
'color' => '<string>'
],
'mainTrackerId' => 123,
'trackers' => [
[
'id' => 123,
'platform' => '<string>'
]
],
'plate' => '<string>',
'assetTypeId' => '<string>',
'vehicleTypeId' => '<string>',
'model' => '<string>',
'year' => 123,
'color' => '<string>',
'make' => '<string>',
'chassis' => '<string>',
'motor' => '<string>',
'fuel' => '<string>',
'kilometer' => 123,
'description' => '<string>',
'clientId' => '<string>',
'state' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ugps.io/api/assets"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"icon\": {\n \"id\": \"<string>\",\n \"color\": \"<string>\"\n },\n \"mainTrackerId\": 123,\n \"trackers\": [\n {\n \"id\": 123,\n \"platform\": \"<string>\"\n }\n ],\n \"plate\": \"<string>\",\n \"assetTypeId\": \"<string>\",\n \"vehicleTypeId\": \"<string>\",\n \"model\": \"<string>\",\n \"year\": 123,\n \"color\": \"<string>\",\n \"make\": \"<string>\",\n \"chassis\": \"<string>\",\n \"motor\": \"<string>\",\n \"fuel\": \"<string>\",\n \"kilometer\": 123,\n \"description\": \"<string>\",\n \"clientId\": \"<string>\",\n \"state\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ugps.io/api/assets")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"icon\": {\n \"id\": \"<string>\",\n \"color\": \"<string>\"\n },\n \"mainTrackerId\": 123,\n \"trackers\": [\n {\n \"id\": 123,\n \"platform\": \"<string>\"\n }\n ],\n \"plate\": \"<string>\",\n \"assetTypeId\": \"<string>\",\n \"vehicleTypeId\": \"<string>\",\n \"model\": \"<string>\",\n \"year\": 123,\n \"color\": \"<string>\",\n \"make\": \"<string>\",\n \"chassis\": \"<string>\",\n \"motor\": \"<string>\",\n \"fuel\": \"<string>\",\n \"kilometer\": 123,\n \"description\": \"<string>\",\n \"clientId\": \"<string>\",\n \"state\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ugps.io/api/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"icon\": {\n \"id\": \"<string>\",\n \"color\": \"<string>\"\n },\n \"mainTrackerId\": 123,\n \"trackers\": [\n {\n \"id\": 123,\n \"platform\": \"<string>\"\n }\n ],\n \"plate\": \"<string>\",\n \"assetTypeId\": \"<string>\",\n \"vehicleTypeId\": \"<string>\",\n \"model\": \"<string>\",\n \"year\": 123,\n \"color\": \"<string>\",\n \"make\": \"<string>\",\n \"chassis\": \"<string>\",\n \"motor\": \"<string>\",\n \"fuel\": \"<string>\",\n \"kilometer\": 123,\n \"description\": \"<string>\",\n \"clientId\": \"<string>\",\n \"state\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"name": "<string>",
"icon": {
"id": "<string>",
"color": "<string>"
},
"mainTrackerId": 123,
"trackers": [
{
"id": 123,
"platform": "<string>"
}
],
"plate": "<string>",
"assetTypeId": "<string>",
"vehicleTypeId": "<string>",
"model": "<string>",
"year": 123,
"color": "<string>",
"make": "<string>",
"chassis": "<string>",
"motor": "<string>",
"fuel": "<string>",
"kilometer": 123,
"description": "<string>",
"clientId": "<string>",
"state": "<string>"
}
}{
"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.
Body
application/json
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Familia canonica del activo. Se rellena de forma compatible con tipos antiguos.
Available options:
vehicle, generic ID del tipo de vehículo asociado al activo (opcional)
Modelo del activo (opcional)
Color del activo (opcional)
Número de chasis del activo (opcional)
Número de motor del activo (opcional)
Tipo de combustible del activo (opcional)
Kilometraje del activo (opcional)
Descripción adicional del activo (opcional)
Estado del activo (opcional)
⌘I