Loading...
Loading...
Access asset data in a flattened format optimized for Business Intelligence tools. All fields are at the root level for direct column mapping.
The BI API returns a completely flat structure - no nested objects. This makes it perfect for tools that expect tabular data:
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/bi/v1/assets | List all assets in flattened format |
| GET | /api/bi/v1/assets/count | Get total count of assets |
| GET | /api/bi/v1/assets/{assetId} | Get a specific asset by ID |
/assetsReturns a paginated list of assets with all fields flattened to the root level. Ideal for bulk data export to BI tools.
| Parameter | Type | Description |
|---|---|---|
| status | string | Filter by asset status (e.g., ACTIVE, INACTIVE) |
| policy | string | Filter by assigned policy path name |
| page | integer | Page number (0-indexed, default: 0) |
| size | integer | Page size (default: 20, max: 100) |
| sort | string | Sort field and direction (e.g., 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/countReturns the total count of assets matching the filter criteria. Useful for pagination calculations.
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}Returns a single asset in flattened format by its asset ID.
curl -X GET "https://api.nomid.tech/emm/api/bi/v1/assets/asset_abc123" \
-H "X-API-Key: nm_acme_abc123..."Each asset object follows the BiAssetDto flat structure. All fields are strings at the root level - no nested objects or arrays.
| Field | Type | Description |
|---|---|---|
| Identifiers | ||
| pathName | string | Full asset path (e.g., enterprises/acme/assets/abc123) |
| identification | string | User-friendly identifier for the asset |
| name | string | Device name |
| description | string | Device description |
| Hardware Info | ||
| serialNumber | string | Device serial number |
| imeis | string | IMEI numbers (comma-separated if multiple) |
| brand | string | Device manufacturer/brand |
| model | string | Device model name |
| Status & Timestamps | ||
| status | string | Asset status (ACTIVE, INACTIVE) |
| lastSyncAt | string | Last synchronization timestamp (ISO 8601) |
| enrollmentTime | string | Device enrollment timestamp (ISO 8601) |
| Policy Info | ||
| policyPathName | string | Full path of assigned policy |
| policyDisplayName | string | Human-readable policy name |
| policyGroupName | string | Policy group for categorization |
| Custom Data | ||
| metadata | string | Custom metadata as JSON string |
| tags | string | Tags as comma-separated string |
| Operating System | ||
| operatingSystem | string | OS name (e.g., Android) |
| operatingSystemVersion | string | OS version number |
The main difference is the response structure. Public API uses nested objects for organization, while BI API flattens everything for easy column mapping.
// 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"
}
}// 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"
}Results are paginated using the same format as the Public API. Use page and size parameters to navigate through large datasets.
Tip: For bulk exports, use size=100 (maximum) and iterate through all pages. The Power BI and Python examples above show how to fetch all pages automatically.