Microsoft Purview Scan API

The Scan API from Microsoft Purview — 2 operation(s) for scan.

GitHub OpenAPI

Operations 4

PUT /datasources/{dataSourceName}/scans/{scanName} Scans create or replace #
GET /datasources/{dataSourceName}/scans/{scanName} Scans get #
DELETE /datasources/{dataSourceName}/scans/{scanName} Scans delete #
GET /datasources/{dataSourceName}/scans Scans list by data source #

Documentation

📖
Documentation
https://learn.microsoft.com/en-us/rest/api/purview/
📖
Authentication
https://learn.microsoft.com/en-us/purview/tutorial-using-rest-apis
📖
GettingStarted
https://learn.microsoft.com/en-us/purview/data-gov-api-create-assets
📖
Authentication
https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow
📖
GettingStarted
https://learn.microsoft.com/en-us/purview/legacy/how-to-purview-custom-lineage-api-user-guide
📖
GettingStarted
https://learn.microsoft.com/en-us/purview/legacy/tutorial-metadata-policy-collections-apis
📖
Documentation
https://learn.microsoft.com/en-us/rest/api/purview/unified-catalog-api-overview
📖
Authentication
https://learn.microsoft.com/en-us/purview/data-gov-api-rest-data-plane
📖
Documentation
https://learn.microsoft.com/en-us/rest/api/purview/unified-catalog-data-quality
📖
Documentation
https://learn.microsoft.com/en-us/graph/api/resources/security-ediscovery-apioverview?view=graph-rest-1.0
📖
Authentication
https://learn.microsoft.com/en-us/graph/security-ediscovery-appauthsetup
📖
GettingStarted
https://learn.microsoft.com/en-us/purview/edisc-ref-api-guide
📖
Documentation
https://learn.microsoft.com/en-us/graph/security-information-protection-overview
📖
Documentation
https://learn.microsoft.com/en-us/graph/security-datasecurityandgovernance-overview
📖
GettingStarted
https://learn.microsoft.com/en-us/purview/developer/use-the-api
📖
Documentation
https://learn.microsoft.com/en-us/graph/api/resources/security-recordsmanagement-overview?view=graph-rest-1.0

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/microsoft-purview:microsoft-purview-scan-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

microsoft-purview-scan-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MicrosoftScanningClient Scan API
  description: Creates a Microsoft.Scanning management client.
  version: '2023-09-01'
servers:
- url: https://purview.azure.com/scan
security:
- azure_auth:
  - user_impersonation
tags:
- name: Scan
paths:
  /datasources/{dataSourceName}/scans/{scanName}:
    put:
      tags:
      - Scan
      description: Creates or replaces an instance of a scan.
      operationId: Scans_CreateOrReplace
      parameters:
      - $ref: '#/components/parameters/dataSourceName'
      - $ref: '#/components/parameters/scanName'
      - $ref: '#/components/parameters/api-version'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scan'
        '201':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scan'
        default:
          description: An error response received from the Scanning Service.
          headers:
            x-ms-error-code:
              description: String error code indicating what went wrong.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Scan'
        description: The scan definition.
        required: true
      summary: Scans create or replace
      x-summary-source: derived
    get:
      tags:
      - Scan
      description: Gets a scan information.
      operationId: Scans_Get
      parameters:
      - $ref: '#/components/parameters/dataSourceName'
      - $ref: '#/components/parameters/scanName'
      - $ref: '#/components/parameters/api-version'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scan'
        default:
          description: An error response received from the Scanning Service.
          headers:
            x-ms-error-code:
              description: String error code indicating what went wrong.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
      summary: Scans get
      x-summary-source: derived
    delete:
      tags:
      - Scan
      description: Deletes the scan associated with the data source.
      operationId: Scans_Delete
      parameters:
      - $ref: '#/components/parameters/dataSourceName'
      - $ref: '#/components/parameters/scanName'
      - $ref: '#/components/parameters/api-version'
      responses:
        '204':
          description: Success.
        default:
          description: An error response received from the Scanning Service.
          headers:
            x-ms-error-code:
              description: String error code indicating what went wrong.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
      summary: Scans delete
      x-summary-source: derived
  /datasources/{dataSourceName}/scans:
    get:
      tags:
      - Scan
      description: Lists scans in data source.
      operationId: Scans_ListByDataSource
      parameters:
      - $ref: '#/components/parameters/dataSourceName'
      - $ref: '#/components/parameters/api-version'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScanList'
        default:
          description: An error response received from the Scanning Service.
          headers:
            x-ms-error-code:
              description: String error code indicating what went wrong.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseModel'
      x-ms-pageable:
        nextLinkName: nextLink
      summary: Scans list by data source
      x-summary-source: derived
components:
  schemas:
    ErrorModel:
      description: The error model.
      type: object
      properties:
        code:
          description: A unique error code that identifies the specific error.
          type: string
        message:
          description: A human-readable error message that provides more details about the error.
          type: string
        target:
          description: The specific component that the error is associated with.
          type: string
        details:
          description: An array of nested ErrorModel objects that provides additional error details.
          type: array
          items:
            $ref: '#/components/schemas/ErrorModel'
      required:
      - code
      - message
    DataSourceType:
      description: The data source type.
      enum:
      - None
      - Fabric
      - AzureSubscription
      - AzureResourceGroup
      - AzureSynapseWorkspace
      - AzureSynapse
      - AdlsGen1
      - AdlsGen2
      - AmazonAccount
      - AmazonS3
      - AmazonSql
      - AzureCosmosDb
      - AzureDataExplorer
      - AzureFileService
      - AzureSqlDatabase
      - ArcEnabledSqlServer
      - AmazonPostgreSql
      - AzurePostgreSql
      - Databricks
      - SqlServerDatabase
      - AzureSqlDatabaseManagedInstance
      - AzureSqlDataWarehouse
      - AzureMySql
      - Hdfs
      - TableauServer
      - AzureStorage
      - Teradata
      - Oracle
      - PostgreSql
      - AmazonRedShift
      - DatabricksHms
      - SapS4Hana
      - SapEcc
      - Snowflake
      - PowerBI
      - Trident
      - Dataverse
      - DatabricksUnityCatalog
      type: string
      x-ms-enum:
        name: DataSourceType
        modelAsString: true
    IngestionExecutionDetails:
      description: The ingestion execution details.
      type: object
      properties:
        ingestionStartTime:
          format: date-time
          type: string
          description: The ingestion start time.
        ingestionEndTime:
          format: date-time
          type: string
          description: The ingestion end time.
        status:
          enum:
          - None
          - Succeeded
          - Queued
          - InProgress
          - SourceUnknown
          - PartialSucceeded
          - Failed
          - Canceled
          - Canceling
          type: string
          description: The ingestion status.
          x-ms-enum:
            name: IngestionPhaseStatus
            modelAsString: true
        statistics:
          type: object
          description: The ingestion statistics.
          additionalProperties: {}
        estimatedTimeRemainingInSeconds:
          format: int64
          description: The estimated time remaining in seconds.
          type: integer
        isErrorLogAvailable:
          type: boolean
          description: Indicates whether the error log is available.
        lastUpdatedAt:
          format: date-time
          type: string
          description: The last updated time.
    Scan:
      description: The scan.
      required:
      - kind
      type: object
      allOf:
      - $ref: '#/components/schemas/ProxyResource'
      properties:
        kind:
          enum:
          - AzureSubscriptionCredential
          - AzureSubscriptionMsi
          - AzureResourceGroupCredential
          - AzureResourceGroupMsi
          - AzureSynapseWorkspaceCredential
          - AzureSynapseWorkspaceMsi
          - AzureSynapseCredential
          - AzureSynapseMsi
          - AdlsGen1Credential
          - AdlsGen1Msi
          - AdlsGen2Credential
          - AdlsGen2Msi
          - AmazonAccountCredential
          - AmazonS3Credential
          - AmazonS3RoleARN
          - AmazonSqlCredential
          - AzureCosmosDbCredential
          - AzureDataExplorerCredential
          - AzureDataExplorerMsi
          - AzureFileServiceCredential
          - AzureSqlDatabaseCredential
          - AzureSqlDatabaseMsi
          - AzureSqlDatabaseNativeAuth
          - ArcEnabledSqlServerCredential
          - ArcEnabledSqlServerNativeAuth
          - AmazonPostgreSqlCredential
          - AzurePostgreSqlCredential
          - DatabricksCredential
          - SqlServerDatabaseCredential
          - AzureSqlDatabaseManagedInstanceCredential
          - AzureSqlDatabaseManagedInstanceMsi
          - AzureSqlDatabaseManagedInstanceNativeAuth
          - AzureSqlDataWarehouseCredential
          - AzureSqlDataWarehouseMsi
          - AzureMySqlCredential
          - HdfsCredential
          - AzureStorageCredential
          - AzureStorageMsi
          - TeradataTeradataCredential
          - TeradataTeradataUserPass
          - TeradataUserPass
          - OracleOracleCredential
          - OracleOracleUserPass
          - DatabricksHmsCredential
          - SapS4HanaSapS4HanaCredential
          - SapS4HanaSapS4HanaUserPass
          - SapEccSapEccCredential
          - SapEccSapEccUserPass
          - SnowflakeCredential
          - PowerBICredential
          - PowerBIDelegated
          - PowerBIFpa
          - PowerBIMsi
          - FabricCredential
          - FabricDelegated
          - FabricFpa
          - FabricMsi
          - TridentCredential
          - TridentDelegated
          - TridentMsi
          - DataverseCredential
          - DataverseMsi
          type: string
          description: The properties of scan, vary by datasource type.
          x-ms-enum:
            name: ScanAuthorizationType
            modelAsString: true
        lastRunResult:
          $ref: '#/components/schemas/ScanResultWithIngestion'
          readOnly: true
        scanId:
          type: string
          description: The scan identifier.
        dataSourceIdentifier:
          $ref: '#/components/schemas/DataSourceIdentifier'
        dataSourceName:
          type: string
          description: The data source name.
        creationType:
          enum:
          - Manual
          - AutoNative
          - AutoManaged
          type: string
          description: The creation type.
          x-ms-enum:
            name: CreationType
            values:
            - value: Manual
              description: the datasource creation type is Manual
            - value: AutoNative
              description: the datasource creation type is auto created, native
            - value: AutoManaged
              description: the datasource creation type is auto managed
            modelAsString: true
      discriminator:
        propertyName: kind
    QualifiedName:
      description: The qualified name.
      type: object
      properties:
        typeName:
          type: string
          description: The type name.
        name:
          type: string
          description: The name.
        extendedProperties:
          $ref: '#/components/schemas/ExtendedProperties'
    ScanDiagnostics:
      description: The scan diagnostics.
      type: object
      properties:
        notifications:
          type: array
          description: Notifications.
          items:
            $ref: '#/components/schemas/Notification'
        exceptionCountMap:
          type: object
          description: Exception count map.
          additionalProperties:
            format: int32
            type: integer
          readOnly: true
    Notification:
      description: The notification model.
      type: object
      properties:
        message:
          type: string
          description: Notification message.
        code:
          format: int32
          type: integer
          description: Notification code.
    DataSourceIdentifier:
      description: The data source identifier.
      type: object
      properties:
        itemPath:
          $ref: '#/components/schemas/ItemPath'
        qualifiedName:
          $ref: '#/components/schemas/QualifiedName'
        dataSourceName:
          type: string
          description: The data source name.
        guid:
          type: string
          description: The guid.
        resourceId:
          type: string
          description: The resource identifier.
    ScanResultWithIngestion:
      description: The scan result with ingestion.
      type: object
      properties:
        discoveryExecutionDetails:
          $ref: '#/components/schemas/DiscoveryExecutionDetails'
          readOnly: true
          description: The discovery execution details.
        ingestionExecutionDetails:
          $ref: '#/components/schemas/IngestionExecutionDetails'
          readOnly: true
          description: The ingestion execution details.
        parentId:
          type: string
          readOnly: true
          description: The parent scan result identifier.
        id:
          type: string
          readOnly: true
          description: The scan result identifier.
        ingestionJobId:
          type: string
          description: The ingestion job identifier.
        resourceId:
          type: string
          readOnly: true
          description: The resource identifier.
        status:
          type: string
          enum:
          - Accepted
          - InProgress
          - TransientFailure
          - Succeeded
          - Failed
          - Canceled
          description: The scan result status.
          x-ms-enum:
            name: ScanRunStatus
            modelAsString: true
            values:
            - value: Accepted
              description: the scan is accepted
            - value: InProgress
              description: the scan is InProgress
            - value: TransientFailure
              description: the scan is in transient failure
            - value: Succeeded
              description: the scan is succeeded
            - value: Failed
              description: the scan is failed
            - value: Canceled
              description: the scan is canceled
        diagnostics:
          $ref: '#/components/schemas/ScanDiagnostics'
          readOnly: true
          description: The scan diagnostics.
        startTime:
          format: date-time
          type: string
          description: The scan start time.
          readOnly: true
        endTime:
          format: date-time
          type: string
          description: The scan end time.
          readOnly: true
        scanRulesetVersion:
          format: int32
          type: integer
          description: The scan ruleset version.
          readOnly: true
        scanRulesetType:
          enum:
          - Custom
          - System
          type: string
          description: The scan ruleset type.
          readOnly: true
          x-ms-enum:
            name: ScanRulesetType
            values:
            - value: Custom
              description: the scan ruleset type is custom
            - value: System
              description: the scan ruleset type is system default
            modelAsString: true
        scanLevelType:
          enum:
          - Full
          - Incremental
          type: string
          description: Scan level type.
          readOnly: true
          x-ms-enum:
            name: ScanLevelType
            values:
            - value: Full
              description: the scan is full scan
            - value: Incremental
              description: the scan is incremental scan
            modelAsString: true
        errorMessage:
          type: string
          description: The error message.
          readOnly: true
        error:
          $ref: '#/components/schemas/ErrorModel'
          readOnly: true
          description: The error.
        runType:
          type: string
          readOnly: true
          description: The run type.
        dataSourceType:
          readOnly: true
          $ref: '#/components/schemas/DataSourceType'
    ErrorResponseModel:
      description: The error response model.
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorModel'
      required:
      - error
    ExtendedProperties:
      description: The extended properties.
      type: object
      properties:
        subscriptionId:
          type: string
          description: The subscription identifier.
        resourceGroup:
          type: string
          description: The resource group.
    DiscoveryExecutionDetails:
      description: The discovery execution details.
      type: object
      properties:
        discoveryStartTime:
          format: date-time
          type: string
          description: The discovery start time.
        discoveryEndTime:
          format: date-time
          type: string
          description: The discovery end time.
        status:
          enum:
          - Queued
          - Running
          - Succeeded
          - Failed
          - Cancelled
          - Delayed
          - Throttled
          - CompletedWithExceptions
          - CompleteWithWarning
          type: string
          description: The discovery status.
          x-ms-enum:
            name: ScanStatus
            modelAsString: true
        statistics:
          type: object
          description: The discovery statistics.
          additionalProperties: {}
        isErrorLogAvailable:
          type: boolean
          description: Indicates whether the error log is available.
    ItemPath:
      description: The item path.
      type: object
      properties:
        path:
          type: string
          description: The path.
        extendedProperties:
          description: The extended properties.
          $ref: '#/components/schemas/ExtendedProperties'
    ProxyResource:
      description: The proxy resource.
      type: object
      properties:
        id:
          description: The resource identifier.
          type: string
          readOnly: true
        name:
          description: The resource name.
          type: string
          readOnly: true
    ScanList:
      description: List of scans.
      required:
      - value
      type: object
      properties:
        value:
          description: List of scans.
          type: array
          items:
            $ref: '#/components/schemas/Scan'
        nextLink:
          description: The link to the next page of results, if any remaining results exist.
          type: string
        count:
          description: The number of scans.
          format: int64
          type: integer
  parameters:
    api-version:
      in: query
      name: api-version
      description: The api version to use.
      required: true
      x-ms-client-name: ApiVersion
      x-ms-parameter-location: client
      schema:
        type: string
    dataSourceName:
      in: path
      name: dataSourceName
      description: The dataSource name.
      required: true
      x-ms-parameter-location: method
      schema:
        type: string
        maxLength: 63
        minLength: 3
        pattern: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
    scanName:
      in: path
      name: scanName
      description: The scan name.
      required: true
      x-ms-parameter-location: method
      schema:
        type: string
        maxLength: 63
        minLength: 3
        pattern: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
  securitySchemes:
    azure_auth:
      type: oauth2
      flows:
        implicit:
          scopes:
            user_impersonation: impersonate your user account
          authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
      description: Azure Active Directory OAuth2 Flow.
x-ms-parameterized-host:
  hostTemplate: '{endpoint}'
  useSchemePrefix: false
  parameters:
  - $ref: '#/components/parameters/endpoint'