ProjectDiscovery scans API
The scans API from ProjectDiscovery — 17 operation(s) for scans.
The scans API from ProjectDiscovery — 17 operation(s) for scans.
openapi: 3.1.0
info:
title: PDCP Asset scans API
version: '1.0'
summary: ProjectDiscovery Cloud Platform
description: For more details, checkout https://docs.projectdiscovery.io/api-reference/editor/scan
servers:
- url: https://api.projectdiscovery.io
description: Production
- url: https://api.dev.projectdiscovery.io
description: Development
- url: http://localhost:8085
description: Localhost
security:
- X-API-Key: []
tags:
- name: scans
paths:
/v1/scans:
get:
summary: Get Scan List
tags:
- scans
responses:
'200':
$ref: '#/components/responses/GetScansStatusResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'499':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans
description: Get user scans status
security:
- X-API-Key: []
parameters:
- schema:
type: integer
in: query
name: offset
description: number of scan-status results to skip
- schema:
type: integer
in: query
name: limit
description: number of scan-status results to fetch
- schema:
type: string
in: query
name: search
description: search term for running scans
- schema:
type: string
in: query
name: status
description: filter by status (failed, finished, queued, running, starting, uploaded, scheduled)
- schema:
type: string
in: query
name: sort_asc
description: comma separated ascending sorting e.g sort_asc=created_at,severity
- schema:
type: string
in: query
name: sort_desc
description: comma separated descending sorting e.g sort_desc=created_at,severity
- schema:
type: boolean
in: query
name: is_internal
description: filter by internal scans
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
x-internal: false
post:
summary: Create Scan
tags:
- scans
operationId: post-v1-scans
responses:
'200':
$ref: '#/components/responses/TriggerUserScanResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
description: Trigger a scan
security:
- X-API-Key: []
requestBody:
$ref: '#/components/requestBodies/TriggerUserScanRequest'
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
delete:
summary: Delete Scan in bulk
tags:
- scans
operationId: delete-v1-scans
responses:
'200':
$ref: '#/components/responses/DeleteScansResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
requestBody:
content:
application/json:
schema:
type: object
required:
- scan_ids
properties:
scan_ids:
type: array
items:
type: string
description: Delete scans using scan ids
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/{scan_id}:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
get:
summary: Get Scan
tags:
- scans
responses:
'200':
$ref: '#/components/responses/GetScanDetailsResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'499':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-scan_id
description: Get details of a scan by scan ID
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
delete:
summary: Delete Scan
tags:
- scans
operationId: delete-v1-scans-scan_id
responses:
'200':
$ref: '#/components/responses/DeleteScansResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
description: Delete a scan using scanId
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
name: X-Team-Id
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
patch:
summary: Update Scan
tags:
- scans
operationId: patch-v1-scans-scan_id
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
description: Update scan metadata
security:
- X-API-Key: []
requestBody:
$ref: '#/components/requestBodies/UpdateScanRequest'
parameters:
- schema:
type: string
in: header
name: X-Team-Id
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
/v1/scans/import:
post:
summary: Import OSS Scan
tags:
- scans
operationId: post-v1-scans-import
responses:
'200':
$ref: '#/components/responses/ImportScanResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
description: Import scan details
security:
- X-API-Key: []
requestBody:
content:
application/octet-stream:
schema:
type: string
format: binary
parameters:
- schema:
type: string
in: query
name: name
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/{scan_id}/stop:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
post:
summary: Stop Scan
tags:
- scans
operationId: post-v1-scans-scan_id-stop
responses:
'200':
$ref: '#/components/responses/DeleteScansResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- X-API-Key: []
description: Stop a running scan, not applied in any other state.
parameters:
- schema:
type: string
in: header
name: X-Team-Id
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
/v1/scans/{scan_id}/rescan:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
post:
summary: Rescan scan
tags:
- scans
operationId: post-v1-scans-scan_id-rescan
responses:
'200':
$ref: '#/components/responses/TriggerUserScanResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- X-API-Key: []
description: Re-run a existing scan
parameters:
- schema:
type: string
in: header
name: X-Team-Id
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
/v1/scans/{vuln_id}/retest:
parameters:
- schema:
type: string
name: vuln_id
in: path
required: true
post:
summary: Retest vulnerability
tags:
- scans
operationId: post-v1-scans-vuln_id-retest
responses:
'200':
$ref: '#/components/responses/PostRescanVulnResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
security:
- X-API-Key: []
description: Retest a scan vulnerability
parameters:
- schema:
type: string
in: header
name: X-Team-Id
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
requestBody:
content:
application/json:
schema:
type: object
properties:
socks5_proxy:
type: string
agent_id:
type: string
agent_tags:
type: array
items:
type: string
agent_networks:
type: array
items:
type: string
/v1/scans/schedule:
get:
summary: Get Scan Schedules
tags:
- scans
responses:
'200':
$ref: '#/components/responses/GetScanScheduleResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-schedule
description: Get scan schedules for a user
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
post:
summary: Set Scan Schedule
tags:
- scans
operationId: post-v1-scans-schedule
responses:
'200':
$ref: '#/components/responses/SetScanScheduleResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
description: 'set a scan schedule for a user '
requestBody:
$ref: '#/components/requestBodies/SetScanScheduleRequest'
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
delete:
summary: Delete Scan Schedule
tags:
- scans
operationId: delete-v1-scans-schedule
responses:
'200':
$ref: '#/components/responses/DeleteScanScheduleResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
parameters:
- schema:
type: string
in: query
name: scan_id
required: true
description: scan_id of schedule to be deleted
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
security:
- X-API-Key: []
description: Delete scan schedule for a user
/v1/scans/scan_ips:
get:
summary: Get Scan IPs
tags:
- scans
responses:
'200':
$ref: '#/components/responses/StaticScanIPsResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-scan_ips
security:
- X-API-Key: []
description: Get user static scan IPs list
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/{scan_id}/import:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
patch:
summary: Update Imported Scan
operationId: patch-v1-scans-scan_id-import
tags:
- scans
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
description: Import more results to a given scan
requestBody:
content:
application/octet-stream:
schema:
type: string
format: binary
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/{scan_id}/export:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
- schema:
type: boolean
in: query
name: async
get:
summary: Export Scan
tags:
- scans
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
export_id:
type: string
required:
- export_id
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-scan_id-export
parameters:
- schema:
type: string
enum:
- json
- csv
- pdf
in: query
name: type
description: json, csv, pdf (default json)
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
security:
- X-API-Key: []
description: Export scan results
post:
summary: Export Filtered Scan
tags:
- scans
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
export_id:
type: string
required:
- export_id
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: post-v1-scans-scan_id-export
parameters:
- schema:
type: string
enum:
- json
- csv
- pdf
in: query
name: type
description: json, csv, pdf (default json)
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
requestBody:
content:
application/json:
schema:
type: object
properties:
ids:
type: array
items:
type: string
vuln_status:
type: string
severity:
type: array
items:
type: string
host:
type: array
items:
type: string
domain:
type: array
items:
type: string
port:
type: array
items:
type: integer
template:
type: array
items:
type: string
search:
type: string
category:
type: array
items:
type: string
is_internal:
type: boolean
security:
- X-API-Key: []
description: Export filtered scan results
/v1/scans/vuln/{vuln_id}/export:
parameters:
- schema:
type: string
name: vuln_id
in: path
required: true
get:
summary: Export Scan Vulnerability
tags:
- scans
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-vuln-vuln_id-export
parameters:
- schema:
type: string
enum:
- json
- csv
in: query
name: type
description: json, csv (default json)
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
security:
- X-API-Key: []
description: Export a specific scan vulnerability
/v1/scans/vulns:
patch:
summary: Update Vulnerability Status
operationId: patch-v1-scans-vulns
tags:
- scans
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
requestBody:
$ref: '#/components/requestBodies/PatchScanVulnsRequest'
security:
- X-API-Key: []
description: Batch update vulnerability status
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
delete:
summary: Delete Scan Vulnerability
operationId: delete-v1-scans-vulns
tags:
- scans
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
requestBody:
$ref: '#/components/requestBodies/DeleteVulnsRequest'
security:
- X-API-Key: []
description: Batch Delete scan vulnerability
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/vulns/labels:
patch:
summary: Update Vulnerability Labels
operationId: patch-v1-scans-vulns-labels
tags:
- scans
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
requestBody:
$ref: '#/components/requestBodies/PatchScanVulnsLabelsRequest'
security:
- X-API-Key: []
description: Batch update vulnerability labels
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/{scan_id}/config:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
get:
summary: Get Scan Config
tags:
- scans
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ScanConfig'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-scans-id-config
security:
- X-API-Key: []
description: 'Get scan metadata config '
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
patch:
summary: Update Scan Config
operationId: patch-scans-id-config
tags:
- scans
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScanConfigUpdateItem'
security:
- X-API-Key: []
description: Update scan metadata config
parameters:
- schema:
type: string
enum:
- append
- replace
default: append
in: query
name: update_type
description: 'Update type: append or replace'
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/scans/history:
get:
summary: Get All Scans History
tags:
- scans
responses:
'200':
$ref: '#/components/responses/GetScansHistoryResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-history
parameters:
- schema:
type: integer
in: query
name: offset
description: number of rows to skip
- schema:
type: integer
in: query
name: limit
description: number of rows to get
- schema:
type: string
format: date
in: query
name: start_date
description: start date from which you want to get history
- schema:
type: string
format: date
in: query
name: end_date
description: end date till which you want to get history
- schema:
type: string
enum:
- current_month
- last_month
- last_3_months
- last_6_months
- last_12_months
- all_time
in: query
name: time_range
description: time range to get history
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
security:
- X-API-Key: []
description: Get user scan history details
/v1/scans/{scanId}/history:
parameters:
- schema:
type: string
name: scanId
in: path
required: true
get:
summary: Get Scan History
tags:
- scans
responses:
'200':
$ref: '#/components/responses/GetScansHistoryResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-scanId-history
parameters:
- schema:
type: integer
in: query
name: offset
description: number of rows to skip
- schema:
type: integer
in: query
name: limit
description: number of rows to get
- schema:
type: string
format: date
in: query
name: start_date
description: start date from which you want to get history
- schema:
type: string
format: date
in: query
name: end_date
description: end date till which you want to get history
- schema:
type: string
enum:
- current_month
- last_month
- last_3_months
- last_6_months
- last_12_months
- all_time
in: query
name: time_range
description: time range to get history
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
security:
- X-API-Key: []
description: Get scan history detial by scanId
/v1/scans/{scan_id}/asset/export:
parameters:
- schema:
type: string
name: scan_id
in: path
required: true
get:
summary: Export list of unique assets for a scan
tags:
- scans
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
type: string
'400':
$ref: '#/components/responses/MessageResponse'
'401':
$ref: '#/components/responses/MessageResponse'
'404':
$ref: '#/components/responses/MessageResponse'
'500':
$ref: '#/components/responses/MessageResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-scans-scan-id-assets-export
security:
- X-API-Key: []
description: Export the list of all unique assets for a scan.
parameters:
- schema:
type: string
in: query
name: search
description: Search with host or port
- schema:
type: string
in: query
name: format
description: supported format is csv, json, or raw (default json)
components:
schemas:
EnumerationIds:
title: EnumerationIds
type: object
required:
- id
properties:
id:
type: string
SchedulerFrequency:
title: SchedulerFrequency
type: string
enum:
- hourly
- daily
- weekly
- monthly
- custom
description: Allowed frequencies for the scheduler
ScanSchedule:
title: ScanSchedule
type: object
required:
- scan_frequency
- scan_id
- schedule_last_run
- schedule_next_run
properties:
scan_frequency:
type: string
scan_id:
type: string
schedule_last_run:
type: string
schedule_next_run:
type: string
start_time:
type: string
format: time
hourly_frequency:
type: integer
custom_weekdays:
type: array
description: 'Array of integer denoting the weekdays on which the scan is supposed to run.
0-6 denoting Sunday-Saturday.'
items:
type: integer
minimum: 0
maximum: 6
EnumerationContent:
title: EnumerationContent
type: object
required:
- enumeration_id
- name
- created_at
- id
- is_new
properties:
enumeration_id:
type: string
name:
type: string
created_at:
type: string
updated_at:
type: string
id:
type: integer
format: int64
labels:
type: array
items:
type: string
cname:
type: array
items:
type: string
host:
type: string
port:
type: integer
ip:
type: array
items:
type: string
status_code:
type: integer
content_length:
type: integer
vulnerabilities:
type: integer
format: int64
title:
type: string
technologies:
type: array
items:
type: string
webserver:
type: string
method:
type: string
is_new:
type: boolean
type:
type
# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/projectdiscovery/refs/heads/main/openapi/projectdiscovery-scans-api-openapi.yml