Skip to main content

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

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
  • 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
  • end_date (datetime): End date for data range (ISO 8601 format)
    • Example: ?end_date=2024-01-31T23:59:59Z
  • timezone (str): Client timezone for date interpretation (default: "UTC")
    • Example: ?timezone=America/New_York

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:

  1. In PowerBI, use "Get Data" > "Web"
  2. Enter this endpoint URL with your parameters
  3. Add Authorization header: Bearer <token>
  4. Configure incremental refresh using start_date/end_date 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

Successful Response