Get Devices by Query
Este endpoint permite realizar una búsqueda avanzada de dispositivos, con la posibilidad de agregar múltiples criterios para la búsqueda. Como respuesta se da un arreglo con los dispositivos que cumplen el criterio de búsqueda planteado. Los criterios más relevantes a utilizar son la búsqueda por tags y por aplicación. Cada criterio puede ser evaluado como un valor único, o bien, una variedad de valores ordenados en un arreglo. Con este endpoint se facilita el trabajo de traspasar lógica y conceptos que entienden los usuarios, como por ejemplo los tags, a elementos que sean útiles para utilizar otros servicios de trust, que en su mayoría operan a través de un trust_id que representa a un dispositivo.
Endpoint
Headers
Key | Value | Description |
---|---|---|
Content-Type | application/json | |
Authorization | Bearer {{access_token}} | access_token obtained in Atenea |
Method: POST
URL: https://api.trust.lat/index/v1/device?fields=&page=&per_page=
Query Params:
Key | Value | Description |
---|---|---|
fields | trust_id, system_name | Filtro que permite mostrar sólo los campos solicitados, si se desea retornar todo el contenido de la respuesta, omitir el parámetro. |
per_page | 10000 | Número de elementos presentes dentro de una página. |
page | 1 | Posición de la página a visualizar. |
Recuerda que para utilizar este endpoint es necesario un access token obtenido en el servicio Atenea
Body
Fields
Device fields
- trust_id: Permite filtrar usando el identificador trust_id asociado al dispositivo a buscar. Opcional.
- model: Permite filtrar usando el nombre comercial del producto al que corresponde el dispositivo. Opcional.
- brand: Permite filtrar usando la empresa manufacturadora del dispositivo. Opcional.
- system_version: Permite filtrar usando la versión del sistema operativo del dispositivo. Opcional.
- imei: Permite filtrar usando el código único internacional del dispositivo. Opcional.
- emulator: Permite filtrar usando el valor booleando que indica si la entidad es real o emulada. El formato de este campo debe ser texto, aunque emulator tenga como valor un booleano. Opcional.
- system_name: Permite filtrar usando el sistema operativo del dispositivo. Opcional.
- created_at: Permite filtrar usando la fecha de creación del dispositivo. Opcional.
- updated_at: Permite filtrar usando la fecha de actualización del dispositivo. Opcional.
Apps fields
- apps.app_id: Permite filtrar por el identificador de la aplicación. El formato de este campo debe ser texto, aunque el app_id tenga como valor un número. Opcional.
- apps.tags.<tag_name>: Permite buscar por el tag con el nombre <tag_name> y el valor que acompañe a este campo. Opcional.
- apps.app_id: Permite filtrar usando la fecha de creación de la aplicación. Opcional.
- apps.updated_at: Permite buscar usando la fecha de actualización de la aplicación. Opcional.
Other fields
- search: Campo que permite hacer una búsqueda de texto sobre los valores de imei y trust_id, entregando resultados que tengan coincidencias parciales. Por ejemplo, si se tiene el valor de search "fff-f", el dispositivo con trust_id "ffffffff-ffff-ffff-ffff-ffffffffffff" arrojará una coincidencia y será incorporado en la respuesta de la request. Opcional.
- status: Valor booleano utilizado para obtener los registros más actuales. Si su valor es true, se muestran los dispositivos cuya última actualización se realizó a lo más hace un mes; si su valor es false se muestran los que fueron actualizado hace más de un mes. Opcional.
Los campos anteriores son filtros acumulativos, equivalente a un AND de SQL.
Example
Búsqueda por valor único
{
"trust_id" : "ffffffff-ffff-ffff-ffff-ffffffffffff",
"system_name" : "android",
"apps.app_id": "1",
"apps.tags.departamento": "backend",
"apps.tags.afp": "modelo"
}
Búsqueda por múltiples valores
{
"trust_id": [
"ffffffff-ffff-ffff-ffff-ffffffffffff",
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
],
"system_name": "android",
"apps.app_id": [
"0",
"1",
"99"
],
"apps.tags.departamento": [
"backend",
"mobile",
"frontend",
"design"
],
"apps.tags.afp": "modelo"
}
Code Examples
- Curl
- JavaScript
- Python
curl --location --request POST 'https://api.trust.lat/index/v1/device?fields=trust_id,%20system_name&per_page=10000&page=1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ************' \
--data-raw '{
"apps.app_id": "0",
"apps.tags.departamento": "backend",
"apps.tags.afp": "modelo"
}'
import requests
url = "https://api.trust.lat/index/v1/device?fields=trust_id, system_name&per_page=10000&page=1"
payload = "{\n\t\"apps.app_id\": \"0\",\n\t\"apps.tags.departamento\": \"backend\",\n\t\"apps.tags.afp\": \"modelo\"\n}"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ************'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
var axios = require('axios');
var data = JSON.stringify({"apps.app_id":"0","apps.tags.departamento":"backend","apps.tags.afp":"modelo"});
var config = {
method: 'post',
url: 'https://api.trust.lat/index/v1/device?fields=trust_id, system_name&per_page=10000&page=1',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ************'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Responses
HTTP Code: 200 OK
Devices found, field filter example
{
"code": 200,
"resource": "Device",
"data": [
{
"system_name": "android",
"trust_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
{
"system_name": "android",
"trust_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
},
{
"system_name": "android",
"trust_id": "cccccccc-cccc-cccc-cccc-cccccccccccc"
},
{
"system_name": "android",
"trust_id": "dddddddd-dddd-dddd-dddd-dddddddddddd"
},
{
"system_name": "android",
"trust_id": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee"
}
],
"message": "Found",
"page": 1,
"per_page": 10000,
"total": 5
}
No matching devices
{
"code": 200,
"resource": "Device",
"data": [],
"message": "Found",
"page": 1,
"per_page": 10,
"total": 0
}