Microsoft Purview Unified Catalog API

APIs for programmatically integrating and managing the Microsoft Purview Unified Catalog. Supports operations on business domains, glossary terms, data products, OKRs, critical data elements, and data access policies.

OpenAPI Specification

microsoft-purview-unified-catalog-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft Purview Unified Catalog API
  description: >-
    APIs for programmatically integrating and managing the Microsoft Purview
    Unified Catalog. Supports operations on business domains, glossary terms,
    data products, OKRs, critical data elements, and data access policies.
  version: 2024-03-01-preview
  contact:
    name: Microsoft Purview Support
    url: https://learn.microsoft.com/en-us/purview/
  license:
    name: Microsoft API License
    url: https://azure.microsoft.com/en-us/support/legal/
servers:
  - url: https://{accountName}.purview.azure.com
    description: Microsoft Purview Unified Catalog API endpoint
    variables:
      accountName:
        description: The name of the Microsoft Purview account
        default: myaccount
security:
  - oauth2: []
tags:
  - name: Business Domains
    description: Operations for managing business domains
  - name: Critical Data Elements
    description: Operations for managing critical data elements
  - name: Data Products
    description: Operations for managing data products
  - name: Glossary Terms
    description: Operations for managing glossary terms in the unified catalog
  - name: OKRs
    description: Operations for managing Objectives and Key Results
paths:
  /businessdomains:
    get:
      operationId: listBusinessDomains
      summary: Microsoft Purview List business domains
      description: List all business domains in the Purview unified catalog.
      tags:
        - Business Domains
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
        - name: maxpagesize
          in: query
          schema:
            type: integer
            format: int32
        - name: skipToken
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Business domains listed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDomainList'
        '401':
          description: Unauthorized
    post:
      operationId: createBusinessDomain
      summary: Microsoft Purview Create a business domain
      description: Create a new business domain in the unified catalog.
      tags:
        - Business Domains
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessDomain'
      responses:
        '201':
          description: Business domain created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDomain'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /businessdomains/{businessDomainId}:
    get:
      operationId: getBusinessDomain
      summary: Microsoft Purview Get a business domain
      description: Get a business domain by its identifier.
      tags:
        - Business Domains
      parameters:
        - name: businessDomainId
          in: path
          required: true
          schema:
            type: string
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      responses:
        '200':
          description: Business domain retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDomain'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    patch:
      operationId: updateBusinessDomain
      summary: Microsoft Purview Update a business domain
      description: Update a business domain by its identifier.
      tags:
        - Business Domains
      parameters:
        - name: businessDomainId
          in: path
          required: true
          schema:
            type: string
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BusinessDomain'
      responses:
        '200':
          description: Business domain updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessDomain'
        '401':
          description: Unauthorized
    delete:
      operationId: deleteBusinessDomain
      summary: Microsoft Purview Delete a business domain
      description: Delete a business domain by its identifier.
      tags:
        - Business Domains
      parameters:
        - name: businessDomainId
          in: path
          required: true
          schema:
            type: string
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      responses:
        '204':
          description: Business domain deleted successfully
        '401':
          description: Unauthorized
  /dataproducts:
    get:
      operationId: listDataProducts
      summary: Microsoft Purview List data products
      description: List all data products in the Purview unified catalog.
      tags:
        - Data Products
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
        - name: maxpagesize
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Data products listed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProductList'
        '401':
          description: Unauthorized
    post:
      operationId: createDataProduct
      summary: Microsoft Purview Create a data product
      description: Create a new data product in the unified catalog.
      tags:
        - Data Products
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataProduct'
      responses:
        '201':
          description: Data product created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
        '401':
          description: Unauthorized
  /dataproducts/{dataProductId}:
    get:
      operationId: getDataProduct
      summary: Microsoft Purview Get a data product
      description: Get a data product by its identifier.
      tags:
        - Data Products
      parameters:
        - name: dataProductId
          in: path
          required: true
          schema:
            type: string
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      responses:
        '200':
          description: Data product retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    patch:
      operationId: updateDataProduct
      summary: Microsoft Purview Update a data product
      description: Update a data product by its identifier.
      tags:
        - Data Products
      parameters:
        - name: dataProductId
          in: path
          required: true
          schema:
            type: string
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataProduct'
      responses:
        '200':
          description: Data product updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProduct'
        '401':
          description: Unauthorized
    delete:
      operationId: deleteDataProduct
      summary: Microsoft Purview Delete a data product
      description: Delete a data product by its identifier.
      tags:
        - Data Products
      parameters:
        - name: dataProductId
          in: path
          required: true
          schema:
            type: string
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      responses:
        '204':
          description: Data product deleted successfully
        '401':
          description: Unauthorized
  /glossaryterms:
    get:
      operationId: listUnifiedGlossaryTerms
      summary: Microsoft Purview List glossary terms
      description: List glossary terms in the Purview unified catalog.
      tags:
        - Glossary Terms
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
        - name: maxpagesize
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Glossary terms listed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlossaryTermList'
        '401':
          description: Unauthorized
  /okrs:
    get:
      operationId: listOKRs
      summary: Microsoft Purview List OKRs
      description: List all Objectives and Key Results in the Purview unified catalog.
      tags:
        - OKRs
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
        - name: maxpagesize
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: OKRs listed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OKRList'
        '401':
          description: Unauthorized
    post:
      operationId: createOKR
      summary: Microsoft Purview Create an OKR
      description: Create a new Objective and Key Result.
      tags:
        - OKRs
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OKR'
      responses:
        '201':
          description: OKR created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OKR'
        '401':
          description: Unauthorized
  /criticaldataelements:
    get:
      operationId: listCriticalDataElements
      summary: Microsoft Purview List critical data elements
      description: List all critical data elements in the Purview unified catalog.
      tags:
        - Critical Data Elements
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
        - name: maxpagesize
          in: query
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Critical data elements listed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CriticalDataElementList'
        '401':
          description: Unauthorized
    post:
      operationId: createCriticalDataElement
      summary: Microsoft Purview Create a critical data element
      description: Create a new critical data element definition.
      tags:
        - Critical Data Elements
      parameters:
        - name: api-version
          in: query
          required: true
          schema:
            type: string
            default: '2024-03-01-preview'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CriticalDataElement'
      responses:
        '201':
          description: Critical data element created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CriticalDataElement'
        '401':
          description: Unauthorized
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: Azure Active Directory OAuth2 authentication
      flows:
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
          scopes:
            https://purview.azure.net/.default: Access Microsoft Purview
  schemas:
    BusinessDomain:
      type: object
      description: A business domain in the unified catalog
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        owners:
          type: array
          items:
            $ref: '#/components/schemas/GovernanceContact'
        stewards:
          type: array
          items:
            $ref: '#/components/schemas/GovernanceContact'
        parentDomainId:
          type: string
        status:
          type: string
          enum: [Draft, Published, Expired]
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    BusinessDomainList:
      type: object
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/BusinessDomain'
        nextLink:
          type: string
    DataProduct:
      type: object
      description: A data product in the unified catalog
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        businessDomainId:
          type: string
        owners:
          type: array
          items:
            $ref: '#/components/schemas/GovernanceContact'
        status:
          type: string
          enum: [Draft, Published, Expired]
        dataAssets:
          type: array
          items:
            type: object
            properties:
              assetId:
                type: string
              assetType:
                type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    DataProductList:
      type: object
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/DataProduct'
        nextLink:
          type: string
    GlossaryTermList:
      type: object
      properties:
        value:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              description:
                type: string
              status:
                type: string
              businessDomainId:
                type: string
        nextLink:
          type: string
    OKR:
      type: object
      description: An Objective and Key Result
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        businessDomainId:
          type: string
        type:
          type: string
          enum: [Objective, KeyResult]
        parentOkrId:
          type: string
        status:
          type: string
          enum: [Draft, Published]
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    OKRList:
      type: object
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/OKR'
        nextLink:
          type: string
    CriticalDataElement:
      type: object
      description: A critical data element definition
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        businessDomainId:
          type: string
        owners:
          type: array
          items:
            $ref: '#/components/schemas/GovernanceContact'
        status:
          type: string
          enum: [Draft, Published]
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    CriticalDataElementList:
      type: object
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/CriticalDataElement'
        nextLink:
          type: string
    GovernanceContact:
      type: object
      properties:
        id:
          type: string
          format: uuid
        displayName:
          type: string
        mail:
          type: string
          format: email