Endpoint de Activos BI
Accede a datos de activos en un formato aplanado optimizado para herramientas de Business Intelligence. Todos los campos están en el nivel raíz para mapeo directo de columnas.
Diferencia Clave con la API Pública
La API BI devuelve una estructura completamente plana - sin objetos anidados. Esto la hace perfecta para herramientas que esperan datos tabulares:
- •Todos los campos están en el nivel superior (sin anidación)
- •Los arrays se convierten en cadenas separadas por comas
- •Los objetos se serializan como cadenas JSON
Endpoints Disponibles
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/bi/v1/assets | Listar todos los activos en formato aplanado |
| GET | /api/bi/v1/assets/count | Obtener el conteo total de activos |
| GET | /api/bi/v1/assets/{assetId} | Obtener un activo específico por ID |
/assetsListar Todos los Activos
Devuelve una lista paginada de activos con todos los campos aplanados al nivel raíz. Ideal para exportación masiva de datos a herramientas BI.
Parámetros de Consulta
| Parameter | Type | Description |
|---|---|---|
| status | string | Filtrar por estado del activo (ej., ACTIVE, INACTIVE) |
| policy | string | Filtrar por nombre de ruta de política asignada |
| page | integer | Número de página (indexado desde 0, predeterminado: 0) |
| size | integer | Tamaño de página (predeterminado: 20, máximo: 100) |
| sort | string | Campo de ordenación y dirección (ej., lastSyncAt,desc) |
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets?status=ACTIVE&page=0&size=100" \
-H "X-API-Key: nm_acme_abc123..."{
"content": [
{
"pathName": "enterprises/acme/assets/asset_abc123",
"identification": "Warehouse Scanner 01",
"name": "WH-SCANNER-001",
"description": "Main warehouse barcode scanner",
"serialNumber": "ABC123XYZ",
"imeis": "123456789012345",
"brand": "Samsung",
"model": "Galaxy Tab Active3",
"status": "ACTIVE",
"lastSyncAt": "2026-01-29T08:15:00Z",
"enrollmentTime": "2025-01-15T10:30:00Z",
"policyPathName": "enterprises/acme/policies/warehouse",
"policyDisplayName": "Warehouse Policy",
"policyGroupName": "Warehouse",
"metadata": "{\"department\":\"logistics\",\"location\":\"warehouse-a\"}",
"tags": "warehouse,scanner,critical",
"operatingSystem": "Android",
"operatingSystemVersion": "13"
}
],
"totalElements": 156,
"totalPages": 2,
"size": 100,
"number": 0
}/assets/countObtener Conteo de Activos
Devuelve el conteo total de activos que coinciden con los criterios de filtro. Útil para cálculos de paginación.
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets/count?status=ACTIVE" \
-H "X-API-Key: nm_acme_abc123..."{
"count": 156
}/assets/{assetId}Obtener Activo Específico
Devuelve un único activo en formato aplanado por su ID de activo.
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets/asset_abc123" \
-H "X-API-Key: nm_acme_abc123..."Esquema BiAssetDto
Cada objeto de activo sigue la estructura plana BiAssetDto. Todos los campos son cadenas en el nivel raíz - sin objetos anidados ni arrays.
| Field | Type | Description |
|---|---|---|
| Identificadores | ||
| pathName | string | Ruta completa del activo (ej., enterprises/acme/assets/abc123) |
| identification | string | Identificador amigable del activo |
| name | string | Nombre del dispositivo |
| description | string | Descripción del dispositivo |
| Información de Hardware | ||
| serialNumber | string | Número de serie del dispositivo |
| imeis | string | Números IMEI (separados por comas si hay múltiples) |
| brand | string | Fabricante/marca del dispositivo |
| model | string | Nombre del modelo del dispositivo |
| Estado y Marcas de Tiempo | ||
| status | string | Estado del activo (ACTIVE, INACTIVE) |
| lastSyncAt | string | Marca de tiempo de última sincronización (ISO 8601) |
| enrollmentTime | string | Marca de tiempo de inscripción del dispositivo (ISO 8601) |
| Información de Política | ||
| policyPathName | string | Ruta completa de la política asignada |
| policyDisplayName | string | Nombre legible de la política |
| policyGroupName | string | Grupo de política para categorización |
| Datos Personalizados | ||
| metadata | string | Metadatos personalizados como cadena JSON |
| tags | string | Etiquetas como cadena separada por comas |
| Sistema Operativo | ||
| operatingSystem | string | Nombre del SO (ej., Android) |
| operatingSystemVersion | string | Número de versión del SO |
API Pública vs API BI
La principal diferencia es la estructura de respuesta. La API Pública usa objetos anidados para organización, mientras que la API BI aplana todo para mapeo fácil de columnas.
API Pública (Anidada)
// Public API Response (nested)
{
"pathName": "enterprises/acme/assets/abc123",
"customData": {
"metadata": { "department": "logistics" },
"tags": ["warehouse", "scanner"]
},
"specifications": {
"imeis": ["123456789012345"],
"serialNumber": "ABC123XYZ",
"brand": "Samsung"
},
"managedDevice": {
"policyPathName": "enterprises/acme/policies/warehouse"
}
}API BI (Plana)
// BI API Response (flat)
{
"pathName": "enterprises/acme/assets/abc123",
"metadata": "{\"department\":\"logistics\"}",
"tags": "warehouse,scanner",
"imeis": "123456789012345",
"serialNumber": "ABC123XYZ",
"brand": "Samsung",
"policyPathName": "enterprises/acme/policies/warehouse"
}Paginación
Los resultados están paginados usando el mismo formato que la API Pública. Usa los parámetros page y size para navegar por grandes conjuntos de datos.
Consejo: Para exportaciones masivas, usa size=100 (máximo) e itera por todas las páginas. Los ejemplos de Power BI y Python arriba muestran cómo obtener todas las páginas automáticamente.