ProjectDiscovery enumerations API
The enumerations API from ProjectDiscovery — 11 operation(s) for enumerations.
The enumerations API from ProjectDiscovery — 11 operation(s) for enumerations.
openapi: 3.1.0
info:
title: PDCP Asset enumerations 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: enumerations
paths:
/v1/asset/enumerate:
get:
summary: Get Enumeration List
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/EnumerateResponse'
'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-asset-enumerate
parameters:
- schema:
type: integer
in: query
name: offset
description: The number of items to skip before starting to collect the result set
- schema:
type: integer
in: query
name: limit
description: The numbers of items to return
- schema:
type: string
in: query
name: search
description: search keyword in enumeration list
- schema:
type: string
in: query
name: enum_type
description: types of enumeration list (comma seperated)
- schema:
type: string
in: query
name: sort_asc
description: comma separated ascending sorting e.g sort_asc=created_at,name
- schema:
type: string
in: query
name: sort_desc
description: comma separated descending sorting e.g sort_desc=created_at,name
- schema:
type: string
in: query
name: status
description: comma separated filter enumeration result by status
- schema:
type: string
enum:
- last_day
- last_week
- last_month
- last_3_months
- last_6_months
- last_12_months
- all_time
default: all_time
in: query
name: time
description: time range to get enumerations from
- schema:
type: string
format: date
in: query
name: start_date
description: time filter start date
- schema:
type: string
format: date
in: query
name: end_date
description: time filter end date
- schema:
type: string
in: query
name: custom_filter
description: custom query to filter. double encode the query string.
- schema:
type: boolean
in: query
name: is_internal
description: filter by internal enumerations
- 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 enumeration list
post:
summary: Create Enumeration
tags:
- enumerations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
truncated-scan-targets:
type: integer
is-public:
type: boolean
bulk_ids:
type: array
items:
type: string
failed_domains:
type: object
additionalProperties:
type: string
description: Map of domain to failure reason
'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: post-v1-asset-enumerate
requestBody:
content:
application/json:
schema:
type: object
properties:
root_domains:
type: array
items:
type: string
enrichment_inputs:
type: array
items:
type: string
cloudlist_config_ids:
type: array
items:
type: string
name:
type: string
steps:
type: array
items:
type: string
enum:
- dns_resolve
- dns_bruteforce
- dns_permute
- port_scan
- http_probe
- http_screenshot
- endpoint_crawling
- dns_passive
- tls_scan
- uncover_assets
- dns_scraping
enumeration_ports:
type: string
alerting_config_ids:
type: array
items:
type: string
disable_global_alert_config:
type: boolean
exclude_targets:
type: array
items:
type: string
enumeration_config:
type: object
properties:
follow-redirect:
type: boolean
ports:
type: string
automatic_vuln_scans:
type: boolean
per_domain_enumeration:
type: boolean
agent_id:
type: string
agent_tags:
type: array
items:
type: string
agent_networks:
type: array
items:
type: string
agent_behavior:
type: string
enum:
- distribute
- mirror
default: distribute
agent_auto_discover:
type: boolean
exclusions:
type: array
items:
type: string
description: Combined inclusion and exclusion patterns for discovery scope. Exclusion patterns (e.g. `*.staging.company.com`) filter out matching targets. Inclusion patterns use a `+` prefix (e.g. `+prod-*.company.com`) to restrict discovery to only matching targets (allowlist mode). When inclusion patterns are present, targets must match at least one inclusion pattern and not match any exclusion pattern. Supports exact domains, wildcard patterns, IP addresses, and CIDR ranges.
security:
- X-API-Key: []
description: Create a new enumeration
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 Assets in bulk
tags:
- enumerations
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'
operationId: delete-v1-asset-enumerates
requestBody:
content:
application/json:
schema:
type: object
required:
- asset_ids
properties:
asset_ids:
type: array
items:
type: string
security:
- X-API-Key: []
description: Delete enumeration by enumerate ids
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/asset/enumerate/{enumerate_id}:
parameters:
- schema:
type: string
name: enumerate_id
in: path
required: true
get:
summary: Get Enumeration
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/GetEnumerateIdContentsResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'499':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-asset-enumerate-enumerate_id
security:
- X-API-Key: []
description: Get enumeration by enumerate_id
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 Enumeration
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'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: patch-v1-asset-enumerate-enumerate_id
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
security:
- X-API-Key: []
description: Update enumeration by enumerate_id
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 Enumeration
tags:
- enumerations
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'
operationId: delete-v1-asset-enumerate-enumerate_id
security:
- X-API-Key: []
description: Delete enumeration by enumerate_id
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/asset/enumerate/{enumerate_id}/rescan:
parameters:
- schema:
type: string
name: enumerate_id
in: path
required: true
post:
summary: Rescan Enumeration
operationId: post-v1-asset-enumerate-enumerate_id-rescan
tags:
- enumerations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
truncated-scan-targets:
type: integer
'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'
security:
- X-API-Key: []
description: Re-run a existing enumeration
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/asset/enumerate/{enum_id}/export:
parameters:
- schema:
type: string
name: enum_id
in: path
required: true
- schema:
type: boolean
in: query
name: async
get:
summary: Export Enumeration
tags:
- enumerations
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
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-enumerate-id-export
parameters:
- schema:
type: integer
minimum: 1
in: query
name: not_seen_for_days
description: Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
- schema:
$ref: '#/components/schemas/EnumExportFormats'
in: query
name: format
- schema:
type: string
in: query
name: search
description: Search by string
- schema:
type: string
in: query
name: labels
description: Filter by comma separated labels, e.g-> labels=p1,p2
- schema:
type: boolean
in: query
name: is_new
description: Filter by new content
- schema:
type: string
in: query
name: host
description: Filter by comma separated hosts, e.g-> host=p1,p2
- schema:
type: string
in: query
name: domains
description: Filter by comma separated domains, e.g-> domains=p1,p2
- schema:
type: string
in: query
name: port
description: Filter by comma separated ports, e.g-> port=p1,p2
- schema:
type: string
in: query
name: status_code
description: Filter by comma separated status codes, e.g-> status_code=p1,p2
- schema:
type: string
in: query
name: title
description: Filter by comma separated titles, e.g-> title=p1,p2
- schema:
type: string
in: query
name: content_length
description: Filter by comma separated content lengths, e.g-> content_length=p1,p2
- schema:
type: string
in: query
name: cname
description: cname to filter
- schema:
type: string
in: query
name: technologies
description: technologies to filter
- schema:
type: string
in: query
name: ip
description: ips to filter
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
- schema:
type: string
in: query
name: custom_filter
description: custom query to filter. double encode the query string.
- schema:
type: boolean
in: query
name: is_screenshot
description: Return records that have screenshots
- schema:
type: boolean
in: query
name: is_tech
description: Return records that have technologies
- schema:
type: boolean
in: query
name: is_favicon
description: Return the records that have favicon
- schema:
$ref: '#/components/schemas/TimeRangeQueryParameter'
default: all_time
in: query
name: time
description: time filter to select
- schema:
type: string
format: date
in: query
name: start_date
description: time filter start date
- schema:
type: string
format: date
in: query
name: end_date
description: time filter end date
- schema:
type: string
in: query
name: favicon
description: Filter by comma separated favicons, e.g-> favicon=p1,p2
- schema:
type: boolean
in: query
name: only_dns
description: Query only dns FQDN records
- schema:
type: boolean
in: query
name: only_ip
description: Query only dns IP records
security:
- X-API-Key: []
description: Export the list of discovered assets for an enumeration.
/v1/asset/enumerate/group:
post:
summary: Create an asset group
tags:
- enumerations
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
'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'
requestBody:
$ref: '#/components/requestBodies/CreateAssetGroupRequest'
operationId: post-v1-asset-enumerate-group
parameters:
- 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: Create an asset group from existing enumeration data using filters
/v1/asset/enumerate/group/{group_id}:
parameters:
- schema:
type: string
name: group_id
in: path
required: true
delete:
summary: Delete an asset group
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'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: delete-v1-asset-enumerate-group
parameters:
- 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 an asset group by id
patch:
summary: Update an asset group
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'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'
requestBody:
$ref: '#/components/requestBodies/UpdateAssetGroupRequest'
operationId: patch-v1-asset-enumerate-group
parameters:
- schema:
type: string
enum:
- append
- replace
default: append
in: query
name: update_type
description: Append vs Replace update_type. Default is append
- 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: Update an asset group by customising the filters
/v1/enumeration/schedule:
get:
summary: Get Enumeration Schedules
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/GetEnumerationScheduleResponse'
'400':
$ref: '#/components/responses/MessageResponse'
'401':
$ref: '#/components/responses/MessageResponse'
'500':
$ref: '#/components/responses/MessageResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-enumeration-schedule
security:
- X-API-Key: []
description: Get enumeration re-scan schedule
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 Enumeration Schedule
operationId: post-v1-enumeration-schedule
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'400':
$ref: '#/components/responses/MessageResponse'
'401':
$ref: '#/components/responses/MessageResponse'
'500':
$ref: '#/components/responses/MessageResponse'
default:
$ref: '#/components/responses/ErrorResponse'
requestBody:
$ref: '#/components/requestBodies/SetEnumerationScheduleRequest'
security:
- X-API-Key: []
description: Set enumeration re-scan frequency
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 Enumeration Schedule
operationId: delete-v1-enumeration-schedule
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/MessageResponse'
'400':
$ref: '#/components/responses/MessageResponse'
'401':
$ref: '#/components/responses/MessageResponse'
'500':
$ref: '#/components/responses/MessageResponse'
default:
$ref: '#/components/responses/ErrorResponse'
parameters:
- schema:
type: string
in: query
name: enumeration_id
description: enumeration_id of the schedule to be deleted
required: true
- 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 a re-scan schedule
/v1/asset/enumerate/{enumerate_id}/config:
parameters:
- schema:
type: string
name: enumerate_id
in: path
required: true
get:
summary: Get enumeration config
tags:
- enumerations
responses:
'200':
description: Shared Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnumerationConfig'
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v1-asset-enumerate-enumerate_id-config
parameters:
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
/v1/asset/enumerate/export:
parameters:
- schema:
type: boolean
in: query
name: async
get:
summary: Export Enumeration of user
tags:
- enumerations
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
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-enumerate-export
parameters:
- schema:
type: integer
minimum: 1
in: query
name: not_seen_for_days
description: Return assets that haven't been seen in the last N days. An asset is only included if a scan that covers it has run during that period without rediscovering it, so assets that simply haven't been rescanned recently are not matched.
- schema:
$ref: '#/components/schemas/EnumExportFormats'
in: query
name: format
- schema:
type: string
name: search
in: query
description: Search on the content name
- schema:
type: string
in: query
name: labels
description: Filter by comma separated labels, e.g-> labels=p1,p2
- schema:
type: boolean
in: query
name: is_new
description: Filter by new content
- schema:
type: string
in: query
name: host
description: Filter by comma separated labels, e.g-> host=p1,p2
- schema:
type: string
in: query
name: port
description: Filter by port separated labels, e.g-> port=p1,p2
- schema:
type: string
in: query
name: status_code
description: Filter by status code separated labels, e.g-> status_code=p1,p2
- schema:
type: string
in: query
name: title
description: Filter by title separated labels, e.g-> title=p1,p2
- schema:
type: string
in: query
name: content_length
description: Filter by content length separated labels, e.g-> content_length=p1,p2
- schema:
type: string
in: query
name: domain
description: Filter by domain names separated labels, e.g-> domain=domain1.com,domain2.com
- schema:
type: string
in: query
name: cname
description: cname to filter
- schema:
type: string
in: query
name: technologies
description: technologies to filter
- schema:
type: string
in: query
name: sort_asc
description: comma separated ascending sorting e.g sort_asc=created_at,name
- schema:
type: string
in: query
name: sort_desc
- schema:
$ref: '#/components/schemas/TimeRangeQueryParameter'
default: all_time
in: query
name: time
description: time filter to select
- schema:
type: string
format: date
in: query
name: start_date
description: time filter start date
- schema:
type: string
format: date
in: query
name: end_date
description: time filter end date
- schema:
type: string
in: header
description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team'
name: X-Team-Id
- schema:
type: string
in: query
name: custom_filter
description: custom query to filter. double encode the query string.
- schema:
type: boolean
in: query
name: is_screenshot
- schema:
type: string
in: query
name: ip
description: ips to filter
- schema:
type: string
in: query
name: favicon
description: Filter by comma separated favicons, e.g-> favicon=p1,p2
- schema:
type: boolean
in: query
name: only_dns
description: Query only dns FQDN records
- schema:
type: boolean
in: query
name: only_ip
description: Query only dns IP records
security:
- X-API-Key: []
description: Export the list of discovered assets for all enumerations.
/v1/asset/enumerate/{enumerate_id}/contents:
parameters:
- schema:
type: string
name: enumerate_id
in: path
required: true
get:
summary: Get Enumeration Contents
tags:
- enumerations
responses:
'200':
$ref: '#/components/responses/GetEnumerateIdContents'
'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-asset-enumerate-enumerate_id-contents
parameters:
- schema:
type: integer
default: 0
in: query
name: offset
description: The number of items to skip before starting to collect the result set
- schema:
type: integer
default: 100
in: query
name: limit
description: The numbers of items to return
- schema:
type: boolean
in: query
name: is_tech
description: Return records that have technologies
- schema:
type: boolean
in: query
name: is_favicon
description: Return the records that have favicon
- schema:
type: string
name: search
in: query
description: Search on the content name
- schema:
type: string
in: query
name: labels
description: Filter by comma separated labels, e.g-> labels=p1,p2
- schema:
type: boolean
in: query
name: is_new
description: Filter by new content
- schema:
type: string
in: query
name: host
description: Filter by comma separated hosts, e.g-> host=p1,p2
- schema:
type: string
in: query
name: port
description: Filter by comma separated ports, e.g-> port=p1,p2
- schema:
type: string
in: query
name: status_code
description: Filter by comma separated status codes, e.g-> status_code=p1,p2
- schema:
type: string
in: query
name: title
description: Filter by comma separated titles, e.g-> title=p1,p2
- schema:
type: string
in: query
name: content_length
description: Filter by comma separated content lengths, e.g-> content_length=p1,p2
- schema:
type: string
in: query
# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/projectdiscovery/refs/heads/main/openapi/projectdiscovery-enumerations-api-openapi.yml