Get Bi Data
GET/v1/insights/bi/data
Get analytics data optimized for BI tools.
This endpoint returns JSON data directly with pagination support, making it ideal for BI tool incremental refresh and data modeling features.
Query Parameters
Required Parameters
- application_ids (list[UUID]): Repeat the parameter to provide multiple values
- Example:
?application_ids=123e4567-e89b-12d3-a456-426614174000&application_ids=987fcdeb-51a2-43d1-9f12-345678901234
- Example:
Optional Parameters
Data Scope & Access
- organization_ids (list[UUID]): Repeat the parameter to provide multiple values (default: empty)
- Example:
?organization_ids=123e4567-e89b-12d3-a456-426614174000&organization_ids=987fcdeb-51a2-43d1-9f12-345678901234
- Example:
- scope (str): Data access scope - "internal", "external", or "all" (default: "internal")
- Use "internal" for organization-owned data
- Use "external" for partner/publisher data
- Use "all" for combined data
Time Filtering
- start_date (datetime): Start date for data range (ISO 8601 format)
- Example:
?start_date=2024-01-01T00:00:00Z
- Example:
- end_date (datetime): End date for data range (ISO 8601 format)
- Example:
?end_date=2024-01-31T23:59:59Z
- Example:
- timezone (str): Client timezone for date interpretation (default: "UTC")
- Example:
?timezone=America/New_York
- Example:
Data Collection & Pagination
- collection (str): Data collection to query (default: "basicLog")
- Options: "basicLog", "telemetry", "event", "sessionLog"
- Use "basicLog" for general log data
- Use "telemetry" for performance metrics
- Use "event" for user interaction events
- Use "sessionLog" for session-specific data
- page (int): Page number for pagination (default: 1)
- page_size (int): Number of records per page (default: 1000, max: 5000)
- Recommended: 1000-5000 for BI tools
- Example:
?application_ids=<YOUR_APP_ID>&page_size=2000
Aggregation & Grouping
- group_by (list[str]): Fields to group data by
- Fields must be referenced by their full document path (e.g., "sessionData.deviceModel", "sessionData.geolocation.country")
- Available fields: device_model, app_version, ipAddress, app_id, timestamp, country, subdivision, city, event_name, user_id, device_id, organization_id, session_id
- Example:
?group_by=sessionData.deviceModel&group_by=sessionData.geolocation.country
- aggregate (str): Aggregation function to apply
- Options: "count", "sum", "avg", "unique", "max", "min"
- Use with group_by for meaningful results
- Example:
?group_by=sessionData.deviceModel&aggregate=count
- aggregate_field (str): Field to apply aggregation to
- Required when using sum, avg, max, min aggregations
- Use the field key (e.g., "fps", "memory_total_allocated", "battery_percentage")
- Example:
?group_by=sessionData.deviceModel&aggregate=avg&aggregate_field=fps
Advanced Filtering
- filter_query (JSON): MongoDB-style query for complex filtering
- Must be URL-encoded JSON string
- Example:
{"logLevel": "INFO"} - Example:
{"sessionData.deviceModel": {"$in": ["Galaxy Tab", "Pico 4"]}}
- search_term (str): Text search across searchable fields
- Searches fields with "search" operator: sessionData.deviceModel, sessionData.appVersion, sessionData.ipAddress, appId, sessionData.geolocation.country, sessionData.geolocation.subdivision, sessionData.geolocation.city, name, userId, deviceId, orgId, sessionId
- Example:
?search_term=Quest
PowerBI Integration
Setup Steps:
- In PowerBI, use "Get Data" > "Web"
- Enter this endpoint URL with your parameters
- Add Authorization header:
Bearer <token> - Configure incremental refresh using start_date/end_date parameters
Recommended Parameters:
- page_size: 1000-5000 (balance between performance and memory)
- Use date filters for incremental refresh
- Single collection per query for better performance
Examples
- Minimal example:
https://insights-api.xrdm.app/v1/insights/bi/data?application_ids=<YOUR_APP_ID> - With page size (append additional parameters using
&):https://insights-api.xrdm.app/v1/insights/bi/data?application_ids=<YOUR_APP_ID>&page_size=2000 - Multiple apps and collection override:
https://insights-api.xrdm.app/v1/insights/bi/data?application_ids=<APP_ID_1>&application_ids=<APP_ID_2>&collection=telemetry&page=1&page_size=5000
Authentication
Use API key authentication with the Authorization: Bearer <token> header.
Returns
JSON response with:
- data: Array of records
- next_page: URL for next page (for pagination)
- total_items: Total number of records
- applications: Metadata about queried applications
Request
Responses
- 200
- 422
Successful Response
Validation Error