Microsoft Endpoint Configuration Management Export Jobs API

Manage asynchronous report export jobs. Create export jobs, poll for completion, and download exported report files.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

microsoft-endpoint-configuration-management-export-jobs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft Endpoint Configuration Management Configuration Manager REST API (AdminService) Applications Export Jobs API
  description: REST API for managing Configuration Manager resources including collections, deployments, applications, and device queries. The administration service is based on the OData v4 protocol and supports both WMI and versioned OData routes. Class names are case-sensitive.
  version: 1.0.0
  contact:
    name: Microsoft Configuration Manager Support
    url: https://learn.microsoft.com/en-us/intune/configmgr/develop/adminservice/overview
  license:
    name: Microsoft API License
    url: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use
servers:
- url: https://{siteserver}/AdminService
  description: Configuration Manager AdminService endpoint
  variables:
    siteserver:
      default: smsproviderfqdn
      description: Fully qualified domain name of the SMS Provider server hosting the administration service.
security:
- windowsAuth: []
- oauth2: []
tags:
- name: Export Jobs
  description: Manage asynchronous report export jobs. Create export jobs, poll for completion, and download exported report files.
paths:
  /deviceManagement/reports/exportJobs:
    get:
      operationId: listExportJobs
      summary: Microsoft Endpoint Configuration Management List export jobs
      description: List properties and relationships of the deviceManagementExportJob objects. Returns all export jobs that have been created for the tenant.
      tags:
      - Export Jobs
      parameters:
      - $ref: '#/components/parameters/top'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/select'
      - $ref: '#/components/parameters/orderby'
      - $ref: '#/components/parameters/count'
      responses:
        '200':
          description: Successful response returning a collection of export job objects.
          content:
            application/json:
              schema:
                type: object
                properties:
                  '@odata.context':
                    type: string
                  '@odata.count':
                    type: integer
                  '@odata.nextLink':
                    type: string
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/DeviceManagementExportJob'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createExportJob
      summary: Microsoft Endpoint Configuration Management Create export job
      description: Create a new deviceManagementExportJob object to initiate an asynchronous report export. The reportName parameter is required in the request body and identifies which report to export. After creation, poll the export job by ID until the status changes to completed, then download the report from the url property.
      tags:
      - Export Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceManagementExportJobCreate'
      responses:
        '201':
          description: Successfully created the export job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceManagementExportJob'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /deviceManagement/reports/exportJobs/{deviceManagementExportJobId}:
    get:
      operationId: getExportJob
      summary: Microsoft Endpoint Configuration Management Get export job
      description: Read properties and relationships of a deviceManagementExportJob object. Use this endpoint to poll the status of an export job. When the status property is completed, the url property contains the download location for the exported report file.
      tags:
      - Export Jobs
      parameters:
      - name: deviceManagementExportJobId
        in: path
        required: true
        description: The unique identifier of the deviceManagementExportJob.
        schema:
          type: string
      - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: Successful response returning the export job object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceManagementExportJob'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteExportJob
      summary: Microsoft Endpoint Configuration Management Delete export job
      description: Delete a deviceManagementExportJob. Removes the export job record from the service.
      tags:
      - Export Jobs
      parameters:
      - name: deviceManagementExportJobId
        in: path
        required: true
        description: The unique identifier of the deviceManagementExportJob.
        schema:
          type: string
      responses:
        '204':
          description: Successfully deleted the export job.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    DeviceManagementExportJob:
      type: object
      description: Entity representing a job to export a report. Tracks the status of an asynchronous report export including the download URL when complete.
      properties:
        id:
          type: string
          description: Unique identifier for this entity.
          readOnly: true
        reportName:
          type: string
          description: Name of the report. The maximum length allowed for this property is 2000 characters.
        filter:
          type: string
          description: Filters applied on the report. The maximum length allowed for this property is 2000 characters.
        select:
          type: array
          description: Columns selected from the report. The maximum number of allowed column names is 256. The maximum length allowed for each column name is 1000 characters.
          items:
            type: string
        format:
          type: string
          description: Format of the exported report.
          enum:
          - csv
          - pdf
          - json
          - unknownFutureValue
        snapshotId:
          type: string
          description: An identifiable subset of the dataset represented by the ReportName. A sessionId or CachedReportConfiguration id can be used here. The maximum length allowed is 128 characters.
        localizationType:
          type: string
          description: Configures how the requested export job is localized.
          enum:
          - localizedValuesAsAdditionalColumn
          - replaceLocalizableValues
        status:
          type: string
          description: Status of the export job.
          enum:
          - unknown
          - notStarted
          - inProgress
          - completed
          - failed
          readOnly: true
        url:
          type: string
          description: Temporary location of the exported report. Available when status is completed. The URL is a SAS-signed Azure Blob Storage URL.
          readOnly: true
        requestDateTime:
          type: string
          format: date-time
          description: Time that the exported report was requested.
          readOnly: true
        expirationDateTime:
          type: string
          format: date-time
          description: Time that the exported report expires.
          readOnly: true
    ODataError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            innerError:
              type: object
              properties:
                request-id:
                  type: string
                date:
                  type: string
    DeviceManagementExportJobCreate:
      type: object
      description: Request body for creating a new deviceManagementExportJob.
      required:
      - reportName
      properties:
        reportName:
          type: string
          description: Name of the report to export (e.g., Devices, DevicesWithInventory, DeviceCompliance). The maximum length is 2000 characters.
        filter:
          type: string
          description: Filters applied on the report. The maximum length is 2000 characters.
        select:
          type: array
          description: Columns selected from the report. Only valid column names for the specified report are accepted. Maximum 256 column names, each up to 1000 characters.
          items:
            type: string
        format:
          type: string
          description: Format of the exported report. Defaults to csv.
          enum:
          - csv
          - json
        snapshotId:
          type: string
          description: A sessionId or CachedReportConfiguration id. When specified, Filter, Select, and OrderBy cannot also be specified. Maximum 128 characters.
        localizationType:
          type: string
          description: Configures how the export job is localized. Default is localizedValuesAsAdditionalColumn.
          enum:
          - localizedValuesAsAdditionalColumn
          - replaceLocalizableValues
  responses:
    Forbidden:
      description: Forbidden. Insufficient permissions.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    NotFound:
      description: Not found. The specified resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    Unauthorized:
      description: Unauthorized. Authentication is required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    BadRequest:
      description: Bad request. The request body or parameters are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
    TooManyRequests:
      description: Too many requests. The API supports up to 100 requests per tenant per minute, with per-user limits of 8 requests per minute and per-app limits of 48 requests per minute.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
  parameters:
    count:
      name: $count
      in: query
      description: Include count of items.
      schema:
        type: boolean
    select:
      name: $select
      in: query
      description: Comma-separated list of properties to include in the response.
      schema:
        type: string
    skip:
      name: $skip
      in: query
      description: Number of items to skip.
      schema:
        type: integer
    filter:
      name: $filter
      in: query
      description: OData filter expression.
      schema:
        type: string
    orderby:
      name: $orderby
      in: query
      description: Order results by a property.
      schema:
        type: string
    top:
      name: $top
      in: query
      description: Number of items to return.
      schema:
        type: integer
  securitySchemes:
    windowsAuth:
      type: http
      scheme: negotiate
      description: Windows Integrated Authentication (Kerberos/NTLM).
    oauth2:
      type: oauth2
      description: OAuth 2.0 via Azure AD for cloud management gateway access.
      flows:
        authorizationCode:
          authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
          tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
          scopes: {}