---
title: "Create Scan Job"
method: POST
path: "/api/discovery-scan-config/v2/scan-job"
tags: ["Scan Jobs"]
---

# Create Scan Job

`POST /api/discovery-scan-config/v2/scan-job`

Use this API to create a new scan job in the specified data source.

## Request body

- DataUseGovernanceDataDiscoveryScanJobTriggerV3Dto
  - `dataSourceId` string, uuid, required — Unique identifier of the data source to scan. This data source must exist and be active.
  - `scanProfileId` string, uuid — Optional scan profile ID to use for this scan job. If provided, must match the data source system type. If not provided, the data source's default scan profile will be used.
  - `classificationProfileId` string, uuid — Classification profile ID for the scan job. Used when classification v2 is disabled. Either this or detectorProfileId should be provided for classification scans.
  - `detectorProfileId` string, uuid — Detector profile ID for the scan job. Used when classification v2 is enabled. Either this or classificationProfileId should be provided for classification scans.

## Response `201`

Scan job created successfully

- DataUseGovernanceDataDiscoveryMetadataScanJobV2Dto
  - `name` string — Name of Scan job
  - `sourceSystemId` string, uuid, required — Source System ID for Scan job
  - `scannerId` string, uuid, required — Scanner ID for Scan Job
  - `status` 'QUEUED' | 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'ABORTED' | 'STOPPED_AS_LOAD_ABORTED' | 'CANCELLED' | 'CANCELLING' | 'FAILED' | 'PAUSED' | 'PAUSING' | 'RESUMING', required — Scan job scan status
  - `statusMessage` string — Scan job status message
  - `scanLevel` 'INCREMENTAL_SCAN' | 'FULL_SCAN' | 'SCAN' | 'SOURCING' | 'CATALOG' | 'CATALOG_SCAN' | 'QUERY' | 'FILE_RETRIEVAL' | 'OFFSET_REPORT' | 'CATALOG_POLICY_SCAN' | 'ASSET_DISCOVERY' | 'DATA_ELEMENT_DISCOVERY' | 'POLICY_ORCHESTRATION_APPLY' | 'POLICY_ORCHESTRATION_UNAPPLY' | 'POLICY_ORCHESTRATION_EDIT' | 'POLICY_ORCHESTRATION_DELETE' | 'ROLE_INGESTION' | 'AI_ASSET_DISCOVERY' | 'GUARDRAIL_POLICY_ENFORCEMENT' — Scan Job scan level
  - `isManual` boolean
  - `isVoyager` boolean
  - `jobContext` object
  - `expectedRecordCount` integer — Scan Job expected record count
  - `failedRecordCount` integer — Scan Job failed record count
  - `successRecordCount` integer — Scan Job success record count
  - `cancelledRecordCount` integer — Scan Job cancelled record count
  - `scannedMetadataCount` integer — Scan Job scanned metadata count
  - `uploadedMetadataCount` integer — Scan Job uploaded metadata count
  - `failedIngestionCount` integer — Scan Job failed ingestion count
  - `createdDate` string, date-time — Scan Job creation date
  - `createdBy` string, uuid — User who created Scan Job
  - `jobProgress` number, double — Scan Jobs progress
  - `updatedDate` string, date-time — Scan Job updated date
  - `updatedBy` string, uuid — user who last updated scan job
  - `cancelledBy` string, uuid — user who cancelled scan job
  - `cancelledDate` string, date-time — Scan Job cancelled date
  - `pausedBy` string, uuid — user who paused scan job
  - `pausedDate` string, date-time — Scan Job paused date
  - `resumedBy` string, uuid — user who resumed scan job
  - `resumedDate` string, date-time — Scan Job resumed date
  - `classifiedTermsCount` integer — Scan Job classified terms count
  - `ingestionStatus` 'AWAITING' | 'PUBLISHING' | 'PUBLISHED' | 'NONE' — Scan Job ingestion status
  - `ingestionDate` string, date-time — Scan Job ingestion date
  - `ingestedMetadataVolume` integer — Scan job ingestion metadata volume in bytes
  - `scannedCount` string — Scan Job Scan count
  - `totalContentSize` integer — Scan Job total content size in bytes
  - `scanProfile` DataUseGovernanceDataDiscoveryScanProfileV2Dto
    - `id` string, uuid, required — Unique ID for Scan Profile
    - `name` string, required — Name of Scan Profile
    - `scanType` 'CATALOG' | 'CATALOG_SCAN', required — Scan Type of Scan Profile
    - `sourceType` 'SEED' | 'USER_DEFINED' — Source of this Scan Profile
    - `systemName` string, required — System Name of Scan Profile
    - `scanProfileContext` object, required — Properties of Scan Profile Specific to System
    - `systemType` 'RELATIONAL_DATABASE' | 'NON_RELATIONAL_DATABASE' | 'FILE' | 'API' | 'CUSTOM' | 'UNKNOWN' | 'CLOUD_PLATFORM' | 'MACHINE_LEARNING_PLATFORM', required — System Type of Scan Profile
    - `createdDate` string, date-time — Creation Date of Scan Profile
    - `displayName` string — Display Name for System Name of Scan Profile
  - `retryAttempts` integer — Total Retry Attempts for scan job failures
  - `maxRetries` integer — Max Retries allowed for scan job failures
  - `idleScanDuration` integer — Idle time of scan when Paused (or) during retry
  - `scanDuration` integer — Actual Scan duration
  - `scanStartedDate` string, date-time — Actual Scan start date
  - `id` string, uuid
  - `manual` boolean
  - `voyager` boolean

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `429` — Too Many Requests. For more information, see [API Rate Limits](https://developer.onetrust.com/onetrust/reference/rate-limits-overview).
- `500` — Internal Server Error

---

[API](https://skmtc.net/onetrust/apis/platform-access-management.md) · [All operations](https://skmtc.net/onetrust/apis/platform-access-management/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/onetrust/platform-access-management/versions/21de3aa0b170/schema)
