Search Multiple Profiles
Este endpoint permite recuperar la información de un listado de perfiles asociados a la compañia. Como respuesta, se entrega un arreglo de diccionarios con información sobre distintos perfil.
Se puede personalizar el arreglo presente en la respuesta con los parámetros de búsqueda page y per_page, los cuales controlan la páginación de la respuesta. Sus valores por defecto son 1 y 5, respectivamente.
También se encuentran los parámetros fields, el cuál es un string separado por comas regula cuales de los campos de los perfiles son mostrados en las respuestas; y el parámetro disabled_profile, el cuál es un valor booleano, que al tomar un valor true.
Además se puede incluir en el cuerpo de la request campos de un perfil como llave y añadir un string como valor para realizar una búsqueda con perfiles que tengan ese valor.
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/trust-idp/v1/companies/:company_id/profiles/query
Query Params
Los filtros disponibles son los siguientes:
Field | Description |
---|---|
page | Posición de la página a visualizar. |
per_page | Número de elementos presentes dentro de una página. |
fields | String separado por comas que contiene los campos a visualizar en respuesta. Valores permitidos: nin, origin, username, phone_number, email, name, lastname, birthday, nationality, timezone |
disabled_profile | Campo booleano que indica si la busqueda debe incluir perfiles deshabilitados. Sólo puede tomar el valor true |
Path Variables:
Key | Value Example | Description |
---|---|---|
company_id | -1 | Identificador de la compañia, provisto por la empresa Trust. Obligatorio |
Recuerda que para utilizar este endpoint es necesario un access token obtenido en el servicio Atenea.
Body
Fields
Dentro del body, se da la opción de realizar un filtrado más fino, al indicar campos de usuario como llaves y asignarle valores, lo que conlleva a realizar una consultar por todos los usuarios que contenga dicho valor en ese campo.
Todos los campos pueden recibir como valor un string con un valor específico o un arreglo de string, permitiendo generar alternativas de valores (Similar a un operador or).
- nin: Filtro por identificador Único Nacional de la persona a registrar.
- origin: Filtro por subdivisión interna de la compañia aplicada al perfil de usuario.
- username: Filtro por apodo o identificador personalizado creado por el usuario.
- phone_number: Filtro por número de teléfono utilizado por el usuario para el contacto.
- email: Filtro por correo electrónico utilizado por el usuario para el contacto
- name: Filtro por nombre de pila del usuario.
- lastname: Filtro por apellido o nombre de familia del usuario.
- birthday: Filtro por fecha de nacimiento del usuario.
- nationality: Filtro por país de nacimiento del usuario.
- timezone: Filtro por zona horaria utilizada por el usuario.
- active: Filtro por valor booleano que setea el estado de acceso al usuario.
- created_at: Permite filtrar usando la fecha de creación del dispositivo.
- updated_at: Permite filtrar usando la fecha de actualización del dispositivo.
Example
{
"nin": "123456789",
"nationality": [
"CHL",
"PER",
"BOL"
],
"fields": [
"uuid"
],
"active": [
"true",
"false"
]
}
Code Examples
- Curl
- JavaScript
- Python
curl --location --request POST 'https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles/query?page=1&per_page=5&fields=name,lastname,origin' \
--header 'Authorization: Bearer `{{access_token}}`' \
--header 'Content-Type: application/json' \
--data-raw '{
"nin": "123456789",
"nationality": [
"CHL",
"PER",
"BOL"
],
"fields": [
"uuid"
],
"active": [
"true",
"false"
]
}'
import requests
import json
url = "https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles/query?page=1&per_page=5&fields=name,lastname,origin"
payload = json.dumps({
"nin": "123456789",
"nationality": [
"CHL",
"PER",
"BOL"
],
"fields": [
"uuid"
],
"active": [
"true",
"false"
]
})
headers = {
'Authorization': 'Bearer `{{access_token}}`',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
var axios = require('axios');
var data = JSON.stringify({
"nin": "123456789",
"nationality": [
"CHL",
"PER",
"BOL"
],
"fields": [
"uuid"
],
"active": [
"true",
"false"
]
});
var config = {
method: 'post',
url: 'https://api.trust.lat/trust-idp/v1/companies/:company_id/profiles/query?page=1&per_page=5&fields=name,lastname,origin',
headers: {
'Authorization': 'Bearer `{{access_token}}`',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Responses
HTTP Code: 200 OK
Multiple Profiles Found
{
"code": 200,
"resource": "Profile",
"data": [
{
"uuid": "00000000-0000-0000-0000-000000000000",
"nin": "98765432",
"username": null,
"phone_number": null,
"email": null,
"origin": "test_idp",
"name": "nullson",
"lastname": null,
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
},
{
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"nin": "123456789",
"username": "tlat",
"phone_number": "+56911223344",
"email": "tlat@trust.lat",
"origin": "test_idp",
"name": "test",
"lastname": "latin",
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
},
{
"uuid": "gggggggg-gggg-gggg-gggg-gggggggggggg",
"nin": "111111111",
"username": "fassistance",
"phone_number": "+56999887766",
"email": null,
"origin": "test_idp",
"name": "flow",
"lastname": "assistance",
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
}
],
"message": "Found",
"page": 1,
"per_page": 5,
"total": 3
}
Multiple Profiles Found - Filtered Data
{
"code": 200,
"resource": "Profile",
"data": [
{
"uuid": "00000000-0000-0000-0000-000000000000",
"name": "nullson",
"lastname": null
},
{
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name": "test",
"lastname": "latin"
},
{
"uuid": "gggggggg-gggg-gggg-gggg-gggggggggggg",
"name": "flow",
"lastname": "assistance"
}
],
"message": "Found",
"page": 1,
"per_page": 5,
"total": 3
}
Multiple Profiles Found - Search Over Field Value)
{
"code": 200,
"resource": "Profile",
"data": [
{
"uuid": "00000000-0000-0000-0000-000000000000",
"nin": "98765432",
"username": null,
"phone_number": null,
"email": null,
"origin": "test_idp",
"name": "nullson",
"lastname": null,
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
}
],
"message": "Found",
"page": 1,
"per_page": 5,
"total": 1
}
Multiple Profiles Found - Search Over Non Active Profiles
{
"code": 200,
"resource": "Profile",
"data": [
{
"uuid": "00000000-0000-0000-0000-000000000000",
"nin": "98765432",
"username": null,
"phone_number": null,
"email": null,
"origin": "test_idp",
"name": "nullson",
"lastname": null,
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
},
{
"uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"nin": "123456789",
"username": "tlat",
"phone_number": "+56911223344",
"email": "tlat@trust.lat",
"origin": "test_idp",
"name": "test",
"lastname": "latin",
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
},
{
"uuid": "gggggggg-gggg-gggg-gggg-gggggggggggg",
"nin": "111111111",
"username": "fassistance",
"phone_number": "+56999887766",
"email": null,
"origin": "test_idp",
"name": "flow",
"lastname": "assistance",
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": true,
"identification_provider": "test_idp"
},
{
"uuid": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"nin": "121212121",
"username": null,
"phone_number": "+56999887766",
"email": null,
"origin": "test_idp",
"name": "sapien",
"lastname": "europe",
"birthday": null,
"nationality": null,
"timezone": null,
"trusted_fields": {},
"field_expiration_time": {},
"two_factor_authentication": [],
"active": false,
"identification_provider": "test_idp"
}
],
"message": "Found",
"page": 1,
"per_page": 5,
"total": 4
}
No Profile Matches the Query
{
"code": 200,
"resource": "Profile",
"data": [],
"message": "Found",
"page": 1,
"per_page": 5,
"total": 0
}
HTTP Code: 401 Unauthorized
Missing Access Token
{
"status": 401,
"error": "Bearer token is required"
}