Intune Data Warehouse API

OData-based REST API that provides access to Intune reporting data in a machine-readable format. Enables building custom reports and analytics for enterprise mobile environment insights.

Documentation

Specifications

Other Resources

OpenAPI Specification

microsoft-endpoint-configuration-management-intune-data-warehouse-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft Endpoint Configuration Management Intune Data Warehouse API
  description: >-
    OData-based REST API that provides access to Intune reporting data in a
    machine-readable format. Enables building custom reports and analytics for
    enterprise mobile environment insights. Uses OData v4.0 protocol with
    standard patterns for request/response headers, status codes, HTTP methods,
    URL conventions, and query options. Data is sampled daily to provide a
    historical view of the mobile device environment.
  version: 1.0.0
  contact:
    name: Microsoft Intune Support
    url: https://learn.microsoft.com/en-us/intune/intune-service/developer/reports-nav-intune-data-warehouse
  license:
    name: Microsoft API License
    url: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use
servers:
  - url: https://fef.{location}.manage.microsoft.com/ReportingService/DataWarehouseFEService
    description: Intune Data Warehouse endpoint
    variables:
      location:
        default: msua06
        description: >-
          Location identifier found in the Data Warehouse API blade in the
          Microsoft Intune admin center.
security:
  - oauth2: []
paths:
  /devices:
    get:
      operationId: listDevices
      summary: Microsoft Endpoint Configuration Management List device records
      description: >-
        Retrieve historical device records from the Data Warehouse. Returns
        daily snapshots of device properties including enrollment status,
        compliance state, and OS information.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning device records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Device'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /dates:
    get:
      operationId: listDates
      summary: Microsoft Endpoint Configuration Management List date dimension records
      description: >-
        Retrieve date dimension records used to correlate facts over time
        dimensions. Provides date keys with associated calendar attributes.
      tags:
        - Dates
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successful response returning date records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/DateEntity'
  /users:
    get:
      operationId: listUsers
      summary: Microsoft Endpoint Configuration Management List user records
      description: >-
        Retrieve user dimension records from the Data Warehouse. Provides
        historical snapshots of user information associated with device
        enrollments.
      tags:
        - Users
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning user records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
  /devicePropertyHistories:
    get:
      operationId: listDevicePropertyHistories
      summary: Microsoft Endpoint Configuration Management List device property histories
      description: >-
        Retrieve historical device property snapshots. Contains daily snapshots
        of device-level data for the configured history window.
      tags:
        - Devices
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning device property history.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/DevicePropertyHistory'
  /policies:
    get:
      operationId: listPolicies
      summary: Microsoft Endpoint Configuration Management List policy records
      description: >-
        Retrieve compliance and configuration policy records from the Data
        Warehouse.
      tags:
        - Policies
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successful response returning policy records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Policy'
  /policyDeviceActivities:
    get:
      operationId: listPolicyDeviceActivities
      summary: Microsoft Endpoint Configuration Management List policy device activities
      description: >-
        Retrieve policy device activity records showing device compliance
        status against policies over time.
      tags:
        - Policies
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning policy device activities.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyDeviceActivity'
  /policyUserActivities:
    get:
      operationId: listPolicyUserActivities
      summary: Microsoft Endpoint Configuration Management List policy user activities
      description: >-
        Retrieve policy user activity records showing user compliance
        status against policies over time.
      tags:
        - Policies
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning policy user activities.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyUserActivity'
  /applications:
    get:
      operationId: listApplications
      summary: Microsoft Endpoint Configuration Management List application records
      description: >-
        Retrieve application inventory records from the Data Warehouse
        including discovered and managed applications.
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successful response returning application records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Application'
  /mobileAppInstallStatuses:
    get:
      operationId: listMobileAppInstallStatuses
      summary: Microsoft Endpoint Configuration Management List mobile app install statuses
      description: >-
        Retrieve mobile application installation status records.
      tags:
        - Applications
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning install statuses.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/MobileAppInstallStatus'
  /userDeviceAssociations:
    get:
      operationId: listUserDeviceAssociations
      summary: Microsoft Endpoint Configuration Management List user-device associations
      description: >-
        Retrieve records mapping users to their associated devices.
      tags:
        - User Device Associations
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning user-device associations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserDeviceAssociation'
  /intuneManagementExtensions:
    get:
      operationId: listIntuneManagementExtensions
      summary: Microsoft Endpoint Configuration Management List Intune management extension records
      description: >-
        Retrieve Intune management extension activity records including
        script execution results.
      tags:
        - Management Extensions
      parameters:
        - $ref: '#/components/parameters/apiVersion'
        - $ref: '#/components/parameters/top'
        - $ref: '#/components/parameters/skip'
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/maxhistorydays'
      responses:
        '200':
          description: Successful response returning management extension records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/IntuneManagementExtension'
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.0 via Microsoft Entra ID. Requires Intune service administrator
        role or role-based access to the Intune data warehouse resource.
      flows:
        authorizationCode:
          authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
          tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
          scopes:
            https://api.manage.microsoft.com/.default: Access Intune Data Warehouse
  parameters:
    apiVersion:
      name: api-version
      in: query
      required: true
      description: >-
        API version. Use 'v1.0' for stable or 'beta' for preview features.
      schema:
        type: string
        enum:
          - v1.0
          - beta
        default: v1.0
    top:
      name: $top
      in: query
      description: Number of items to return.
      schema:
        type: integer
    skip:
      name: $skip
      in: query
      description: Number of items to skip.
      schema:
        type: integer
    filter:
      name: $filter
      in: query
      description: >-
        OData filter expression. Only DateKey or RowLastModifiedDateTimeUTC
        may be supported for filtering depending on the collection.
      schema:
        type: string
    select:
      name: $select
      in: query
      description: Comma-separated list of properties to include.
      schema:
        type: string
    maxhistorydays:
      name: maxhistorydays
      in: query
      description: >-
        Maximum number of days of history to retrieve. Only takes effect
        for collections that include dateKey as part of their key property.
      schema:
        type: integer
        default: 7
  schemas:
    Device:
      type: object
      description: >-
        Device entity representing a snapshot of device properties in the
        Data Warehouse.
      properties:
        deviceKey:
          type: integer
          description: Unique identifier of the device in the Data Warehouse.
        deviceId:
          type: string
          description: Unique identifier of the device.
        deviceName:
          type: string
          description: Name of the device.
        deviceType:
          type: string
          description: Type of device.
        operatingSystem:
          type: string
          description: Operating system of the device.
        osVersion:
          type: string
          description: Operating system version.
        ownerType:
          type: string
          description: >-
            Type of owner (company, personal, unknown).
        enrolledDateTime:
          type: string
          format: date-time
          description: Date and time the device was enrolled.
        lastSyncDateTime:
          type: string
          format: date-time
          description: Last time the device synced with Intune.
        managementAgent:
          type: string
          description: Management agent type.
        managementState:
          type: string
          description: Management state of the device.
        referenceId:
          type: string
          description: Reference identifier for the device in Azure AD.
        manufacturer:
          type: string
          description: Manufacturer of the device.
        model:
          type: string
          description: Model of the device.
        serialNumber:
          type: string
          description: Serial number of the device.
        isSupervised:
          type: boolean
          description: Whether the device is supervised.
        isEncrypted:
          type: boolean
          description: Whether the device is encrypted.
        dateKey:
          type: integer
          description: Date key reference for the snapshot.
        complianceState:
          type: string
          description: Compliance state of the device.
    DateEntity:
      type: object
      description: >-
        Date dimension entity used to correlate facts over time.
      properties:
        dateKey:
          type: integer
          description: Unique identifier for the date in YYYYMMDD format.
        fullDate:
          type: string
          format: date
          description: Full date representation.
        dayOfWeek:
          type: integer
          description: Day of the week (1=Sunday, 7=Saturday).
        dayOfMonth:
          type: integer
          description: Day of the month.
        dayOfYear:
          type: integer
          description: Day of the year.
        weekOfYear:
          type: integer
          description: Week of the year.
        monthOfYear:
          type: integer
          description: Month of the year.
        calendarQuarter:
          type: integer
          description: Calendar quarter.
        calendarYear:
          type: integer
          description: Calendar year.
    User:
      type: object
      description: >-
        User dimension entity representing user information associated with
        device enrollments.
      properties:
        userKey:
          type: integer
          description: Unique identifier of the user in the Data Warehouse.
        userId:
          type: string
          description: Unique identifier of the user.
        userEmail:
          type: string
          description: Email address of the user.
        userPrincipalName:
          type: string
          description: User principal name.
        displayName:
          type: string
          description: Display name of the user.
        isDeleted:
          type: boolean
          description: Whether the user has been deleted.
        startDateInclusiveUTC:
          type: string
          format: date-time
          description: Start of the record validity period.
        endDateExclusiveUTC:
          type: string
          format: date-time
          description: End of the record validity period.
        isCurrent:
          type: boolean
          description: Whether this is the current record.
    DevicePropertyHistory:
      type: object
      description: >-
        Historical snapshot of device properties taken daily.
      properties:
        devicePropertyHistoryKey:
          type: integer
          description: Unique key for the history record.
        deviceKey:
          type: integer
          description: Reference to the device.
        dateKey:
          type: integer
          description: Date key for this snapshot.
        deviceName:
          type: string
          description: Device name at the time of snapshot.
        deviceRegistrationStateKey:
          type: integer
          description: Device registration state key.
        complianceStateKey:
          type: integer
          description: Compliance state key.
        osVersion:
          type: string
          description: OS version at the time of snapshot.
        storageTotal:
          type: integer
          format: int64
          description: Total storage in bytes.
        storageFree:
          type: integer
          format: int64
          description: Free storage in bytes.
    Policy:
      type: object
      description: >-
        Policy entity representing compliance and configuration policies.
      properties:
        policyKey:
          type: integer
          description: Unique key for the policy in the Data Warehouse.
        policyId:
          type: string
          description: Unique identifier of the policy.
        policyName:
          type: string
          description: Name of the policy.
        policyVersion:
          type: integer
          description: Version of the policy.
        isDeleted:
          type: boolean
          description: Whether the policy has been deleted.
        policyTypeKey:
          type: integer
          description: Reference to the policy type.
        policyPlatformKey:
          type: integer
          description: Reference to the platform.
    PolicyDeviceActivity:
      type: object
      description: >-
        Device compliance activity record against a specific policy.
      properties:
        dateKey:
          type: integer
          description: Date key for the activity.
        policyKey:
          type: integer
          description: Policy key reference.
        pending:
          type: integer
          description: Number of devices pending compliance evaluation.
        succeeded:
          type: integer
          description: Number of devices in compliance.
        failed:
          type: integer
          description: Number of devices out of compliance.
        error:
          type: integer
          description: Number of devices in error state.
    PolicyUserActivity:
      type: object
      description: >-
        User compliance activity record against a specific policy.
      properties:
        dateKey:
          type: integer
          description: Date key for the activity.
        policyKey:
          type: integer
          description: Policy key reference.
        pending:
          type: integer
          description: Number of users pending compliance evaluation.
        succeeded:
          type: integer
          description: Number of users in compliance.
        failed:
          type: integer
          description: Number of users out of compliance.
        error:
          type: integer
          description: Number of users in error state.
    Application:
      type: object
      description: >-
        Application entity from the Data Warehouse inventory.
      properties:
        applicationKey:
          type: integer
          description: Unique key for the application in the Data Warehouse.
        applicationId:
          type: string
          description: Unique identifier of the application.
        applicationName:
          type: string
          description: Name of the application.
        applicationVersion:
          type: string
          description: Version of the application.
        applicationPublisher:
          type: string
          description: Publisher of the application.
        isDeleted:
          type: boolean
          description: Whether the application record has been deleted.
    MobileAppInstallStatus:
      type: object
      description: >-
        Mobile application installation status record.
      properties:
        dateKey:
          type: integer
          description: Date key for the status.
        deviceKey:
          type: integer
          description: Device key reference.
        userKey:
          type: integer
          description: User key reference.
        applicationKey:
          type: integer
          description: Application key reference.
        installState:
          type: string
          description: Installation state.
        errorCode:
          type: integer
          description: Error code if installation failed.
    UserDeviceAssociation:
      type: object
      description: >-
        Record mapping a user to an associated device.
      properties:
        userDeviceAssociationKey:
          type: integer
          description: Unique key for the association.
        userKey:
          type: integer
          description: User key reference.
        deviceKey:
          type: integer
          description: Device key reference.
        createdDate:
          type: string
          format: date-time
          description: Date the association was created.
    IntuneManagementExtension:
      type: object
      description: >-
        Intune management extension activity record.
      properties:
        dateKey:
          type: integer
          description: Date key for the record.
        tenantKey:
          type: integer
          description: Tenant key reference.
        deviceKey:
          type: integer
          description: Device key reference.
        userKey:
          type: integer
          description: User key reference.
        extensionVersionKey:
          type: integer
          description: Extension version key.
        policyKey:
          type: integer
          description: Policy key reference.
        policyTypeKey:
          type: integer
          description: Policy type key reference.
        status:
          type: string
          description: Extension execution status.
    ODataError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
  responses:
    Unauthorized:
      description: >-
        Unauthorized. Microsoft Entra ID authentication with OAuth 2.0 is
        required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    Forbidden:
      description: >-
        Forbidden. User must have Intune service administrator role or
        role-based access to the Intune data warehouse resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
tags:
  - name: Applications
    description: Application inventory and install status.
  - name: Dates
    description: Date dimension for time-based reporting.
  - name: Devices
    description: Device entity collections and property histories.
  - name: Management Extensions
    description: Intune management extension activities.
  - name: Policies
    description: Policy records and compliance activities.
  - name: User Device Associations
    description: User-to-device mapping records.
  - name: Users
    description: User dimension records.