> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tracecat.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ProjectDiscovery

> Reference for the Tracecat ProjectDiscovery integration: registered actions, required secrets, expected inputs, and example workflow usage.

## Create enumeration

Action ID: `tools.project_discovery.create_enumeration`

Create an asset enumeration. Calls POST /v1/asset/enumerate directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/create-enumeration](https://docs.projectdiscovery.io/api-reference/enumerations/create-enumeration)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="agent_auto_discover" type="boolean | null">
  Enable agent auto discovery.

  Default: `null`.
</ParamField>

<ParamField path="agent_behavior" type="string | null">
  Agent behavior (distribute or mirror). Defaults to distribute.

  Default: `null`.
</ParamField>

<ParamField path="agent_id" type="string | null">
  Agent ID.

  Default: `null`.
</ParamField>

<ParamField path="agent_networks" type="array[string] | null">
  Agent networks.

  Default: `null`.
</ParamField>

<ParamField path="agent_tags" type="array[string] | null">
  Agent tags.

  Default: `null`.
</ParamField>

<ParamField path="alerting_config_ids" type="array[string] | null">
  Alerting config IDs.

  Default: `null`.
</ParamField>

<ParamField path="automatic_vuln_scans" type="boolean | null">
  Enable automatic vulnerability scans.

  Default: `null`.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="cloudlist_config_ids" type="array[string] | null">
  Cloudlist config IDs.

  Default: `null`.
</ParamField>

<ParamField path="disable_global_alert_config" type="boolean | null">
  Disable the global alert config.

  Default: `null`.
</ParamField>

<ParamField path="enrichment_inputs" type="array[string] | null">
  Enrichment inputs.

  Default: `null`.
</ParamField>

<ParamField path="enumeration_config" type="object | null">
  Enumeration config object (documented keys are follow-redirect and ports).

  Default: `null`.
</ParamField>

<ParamField path="enumeration_ports" type="string | null">
  Enumeration ports.

  Default: `null`.
</ParamField>

<ParamField path="exclude_targets" type="array[string] | null">
  Targets to exclude.

  Default: `null`.
</ParamField>

<ParamField path="exclusions" type="array[string] | null">
  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.

  Default: `null`.
</ParamField>

<ParamField path="name" type="string | null">
  Enumeration name.

  Default: `null`.
</ParamField>

<ParamField path="per_domain_enumeration" type="boolean | null">
  Enable per-domain enumeration.

  Default: `null`.
</ParamField>

<ParamField path="root_domains" type="array[string] | null">
  Root domains to enumerate.

  Default: `null`.
</ParamField>

<ParamField path="steps" type="array[string] | null">
  Enumeration steps to run (dns\_resolve, dns\_bruteforce, dns\_permute, port\_scan, http\_probe, http\_screenshot, endpoint\_crawling, dns\_passive, tls\_scan, uncover\_assets, dns\_scraping).

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## Create scan

Action ID: `tools.project_discovery.create_scan`

Create a vulnerability scan. Calls POST /v1/scans directly.

Reference: [https://docs.projectdiscovery.io/api-reference/scans/create-scan](https://docs.projectdiscovery.io/api-reference/scans/create-scan)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="agent_behavior" type="string | null">
  Agent behavior (distribute or mirror). Defaults to distribute.

  Default: `null`.
</ParamField>

<ParamField path="agent_id" type="string | null">
  Agent ID.

  Default: `null`.
</ParamField>

<ParamField path="agent_networks" type="array[string] | null">
  Agent networks.

  Default: `null`.
</ParamField>

<ParamField path="agent_tags" type="array[string] | null">
  Agent tags.

  Default: `null`.
</ParamField>

<ParamField path="alerting_config_ids" type="array[string] | null">
  Alerting config IDs.

  Default: `null`.
</ParamField>

<ParamField path="all" type="boolean | null">
  Run all templates.

  Default: `null`.
</ParamField>

<ParamField path="asset_filters" type="object | null">
  Asset filters object (documented keys are is\_tech, is\_favicon, is\_new, labels, host, port, status\_code, content\_length, title, domain, cname, technologies, ip, is\_screenshot, time, start\_date, end\_date, custom\_filter, search, enumeration\_ids, only\_dns, only\_ip, not\_seen\_for\_days).

  Default: `null`.
</ParamField>

<ParamField path="assets" type="array[string] | null">
  Assets to scan.

  Default: `null`.
</ParamField>

<ParamField path="automatic_scan" type="boolean | null">
  Enable automatic scan.

  Default: `null`.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="disable_global_alert_config" type="boolean | null">
  Disable the global alert config.

  Default: `null`.
</ParamField>

<ParamField path="disable_global_report_config" type="boolean | null">
  Disable the global report config.

  Default: `null`.
</ParamField>

<ParamField path="disable_global_scan_config" type="boolean | null">
  Disable the global scan config.

  Default: `null`.
</ParamField>

<ParamField path="early_templates" type="array[string] | null">
  Early templates to run.

  Default: `null`.
</ParamField>

<ParamField path="enumeration_ids" type="array[object] | null">
  Array of EnumerationIds objects. Each object requires `id` (string).

  Default: `null`.
</ParamField>

<ParamField path="exclude_targets" type="array[string] | null">
  Targets to exclude.

  Default: `null`.
</ParamField>

<ParamField path="exclusions" type="array[string] | null">
  Combined inclusion and exclusion patterns for scan scope. Exclusion patterns (e.g. `*.staging.company.com`) filter out matching targets. Inclusion patterns use a `+` prefix (e.g. `+prod-*.company.com`) to restrict scanning 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.

  Default: `null`.
</ParamField>

<ParamField path="name" type="string | null">
  Scan name.

  Default: `null`.
</ParamField>

<ParamField path="private_templates" type="array[object] | null">
  Array of PrivateTemplates objects. Each object requires `name` (string) and `contents` (string).

  Default: `null`.
</ParamField>

<ParamField path="recommended" type="boolean | null">
  Run recommended templates.

  Default: `null`.
</ParamField>

<ParamField path="reporting_config_ids" type="array[string] | null">
  Reporting config IDs.

  Default: `null`.
</ParamField>

<ParamField path="scan_all_assets" type="boolean | null">
  Scan all assets.

  Default: `null`.
</ParamField>

<ParamField path="scan_config_ids" type="array[string] | null">
  Scan config IDs.

  Default: `null`.
</ParamField>

<ParamField path="schedule_only" type="boolean | null">
  Only schedule the scan.

  Default: `null`.
</ParamField>

<ParamField path="socks5_proxy" type="string | null">
  SOCKS5 proxy.

  Default: `null`.
</ParamField>

<ParamField path="targets" type="array[string] | null">
  Targets to scan.

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

<ParamField path="templates" type="array[string] | null">
  Templates to run.

  Default: `null`.
</ParamField>

## Get associated domains

Action ID: `tools.project_discovery.get_associated_domains`

Get associated domains. Calls GET /v1/domain/associated directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/get-associated-domains](https://docs.projectdiscovery.io/api-reference/enumerations/get-associated-domains)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="active" type="boolean | null">
  Filter by liveness (true=alive, false=unreachable).

  Default: `null`.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="domain" type="string | null">
  Domain name to fetch associated domains. If omitted, returns associated domains for all your verified domains.

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  Maximum results per page (pagination). If omitted, returns all.

  Default: `null`.
</ParamField>

<ParamField path="page" type="integer | null">
  Page number (pagination, starts at 1).

  Default: `null`.
</ParamField>

<ParamField path="raw" type="boolean | null">
  If true, returns plain text list (one domain per line).

  Default: `null`.
</ParamField>

<ParamField path="sort" type="string | null">
  Sort results (active, domain, source, subdomain\_count, update\_date).

  Default: `null`.
</ParamField>

<ParamField path="source" type="string | null">
  Comma-separated source filter (acquisition\_history, certificate\_history, whois\_history).

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## Get domain leak stats

Action ID: `tools.project_discovery.get_domain_leak_stats`

Get public domain leak statistics. Calls GET /v1/leaks/stats/domain directly. No API key is required.

Reference: [https://docs.projectdiscovery.io/api-reference/leaks/get-domain-stats](https://docs.projectdiscovery.io/api-reference/leaks/get-domain-stats)

### Input fields

<ParamField path="domain" type="string" required>
  Domain to get leak statistics for.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="unmask_email" type="boolean | null">
  Unmask email addresses in the results.

  Default: `null`.
</ParamField>

## Get email leak stats

Action ID: `tools.project_discovery.get_email_leak_stats`

Get public email leak statistics. Calls GET /v1/leaks/stats/email directly. No API key is required.

Reference: [https://docs.projectdiscovery.io/api-reference/leaks/get-email-stats](https://docs.projectdiscovery.io/api-reference/leaks/get-email-stats)

### Input fields

<ParamField path="email" type="string" required>
  Email to get stats for.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="unmask_email" type="boolean | null">
  Unmask email addresses in the results.

  Default: `null`.
</ParamField>

## Get enumeration

Action ID: `tools.project_discovery.get_enumeration`

Get an enumeration. Calls GET /v1/asset/enumerate/\{enumerate\_id} directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/get-enumeration](https://docs.projectdiscovery.io/api-reference/enumerations/get-enumeration)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="enumerate_id" type="string" required>
  Enumeration ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## Get enumeration contents

Action ID: `tools.project_discovery.get_enumeration_contents`

Get enumeration contents. Calls GET /v1/asset/enumerate/\{enumerate\_id}/contents directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/get-enumeration-contents](https://docs.projectdiscovery.io/api-reference/enumerations/get-enumeration-contents)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="enumerate_id" type="string" required>
  Enumeration ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="cname" type="string | null">
  cname to filter

  Default: `null`.
</ParamField>

<ParamField path="content_length" type="string | null">
  Filter by comma separated content lengths, e.g-> content\_length=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="custom_filter" type="string | null">
  custom query to filter. double encode the query string.

  Default: `null`.
</ParamField>

<ParamField path="domain" type="string | null">
  Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com

  Default: `null`.
</ParamField>

<ParamField path="end_date" type="string | null">
  time filter end date (YYYY-MM-DD).

  Default: `null`.
</ParamField>

<ParamField path="favicon" type="string | null">
  Filter by comma separated favicons, e.g-> favicon=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="host" type="string | null">
  Filter by comma separated hosts, e.g-> host=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="ip" type="string | null">
  ips to filter

  Default: `null`.
</ParamField>

<ParamField path="is_favicon" type="boolean | null">
  Return the records that have favicon.

  Default: `null`.
</ParamField>

<ParamField path="is_internal" type="boolean | null">
  filter by is\_internal (internal vs external hosts)

  Default: `null`.
</ParamField>

<ParamField path="is_new" type="boolean | null">
  Filter by new content.

  Default: `null`.
</ParamField>

<ParamField path="is_screenshot" type="boolean | null">
  asset with screenshots

  Default: `null`.
</ParamField>

<ParamField path="is_tech" type="boolean | null">
  Return records that have technologies.

  Default: `null`.
</ParamField>

<ParamField path="labels" type="string | null">
  Filter by comma separated labels, e.g-> labels=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  The numbers of items to return.

  Default: `null`.
</ParamField>

<ParamField path="not_seen_for_days" type="integer | null">
  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.

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  The number of items to skip before starting to collect the result set.

  Default: `null`.
</ParamField>

<ParamField path="only_dns" type="boolean | null">
  Query only dns FQDN records.

  Default: `null`.
</ParamField>

<ParamField path="only_ip" type="boolean | null">
  Query only dns IP records.

  Default: `null`.
</ParamField>

<ParamField path="port" type="string | null">
  Filter by comma separated ports, e.g-> port=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="search" type="string | null">
  Search on the content name.

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  comma separated ascending sorting e.g sort\_asc=created\_at,name

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  comma separated descending sorting e.g sort\_desc=created\_at,name

  Default: `null`.
</ParamField>

<ParamField path="start_date" type="string | null">
  time filter start date (YYYY-MM-DD).

  Default: `null`.
</ParamField>

<ParamField path="status_code" type="string | null">
  Filter by comma separated status codes, e.g-> status\_code=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

<ParamField path="technologies" type="string | null">
  technologies to filter

  Default: `null`.
</ParamField>

<ParamField path="time" type="string | null">
  time filter to select (last\_day, last\_week, last\_month, last\_3\_months, last\_6\_months, last\_12\_months, all\_time). Defaults to all\_time.

  Default: `null`.
</ParamField>

<ParamField path="title" type="string | null">
  Filter by comma separated titles, e.g-> title=p1,p2

  Default: `null`.
</ParamField>

## Get leak info

Action ID: `tools.project_discovery.get_leak_info`

Get leak information. Calls POST /v1/leaks/info directly.

Reference: [https://docs.projectdiscovery.io/api-reference/leaks/get-leak-info](https://docs.projectdiscovery.io/api-reference/leaks/get-leak-info)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="leakid" type="string" required>
  32-character MD5 hash identifying the leak (from list\_leaks).
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

## Get scan

Action ID: `tools.project_discovery.get_scan`

Get a scan. Calls GET /v1/scans/\{scan\_id} directly.

Reference: [https://docs.projectdiscovery.io/api-reference/scans/get-scan](https://docs.projectdiscovery.io/api-reference/scans/get-scan)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="scan_id" type="string" required>
  Scan ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## Get vulnerability

Action ID: `tools.project_discovery.get_vulnerability`

Get a vulnerability finding. Calls GET /v2/vulnerability/\{vulnerability\_id} directly.

Reference: [https://docs.projectdiscovery.io/api-reference/get-vulnerability-by-id](https://docs.projectdiscovery.io/api-reference/get-vulnerability-by-id)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="vulnerability_id" type="string" required>
  Vulnerability ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="fields" type="string | null">
  template data fields

  Default: `null`.
</ParamField>

## Get vulnerability filters

Action ID: `tools.project_discovery.get_vulnerability_filters`

Get vulnerability filters. Calls GET /v2/vulnerability/filters directly.

Reference: [https://docs.projectdiscovery.io/api-reference/get-all-filters-for-vulnerabilities](https://docs.projectdiscovery.io/api-reference/get-all-filters-for-vulnerabilities)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

## Get vulnerability timeline

Action ID: `tools.project_discovery.get_vulnerability_timeline`

Get a vulnerability timeline. Calls GET /v2/vulnerability/\{vulnerability\_id}/timeline directly.

Reference: [https://docs.projectdiscovery.io/api-reference/results/get-vulnerability-timeline](https://docs.projectdiscovery.io/api-reference/results/get-vulnerability-timeline)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="vulnerability_id" type="string" required>
  Vulnerability ID.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="event_type" type="string | null">
  Filter by event types (comma-separated). Supported values are detected, status\_change, resolved, reopened, severity\_change, template\_released, template\_updated. If not provided, returns all events.

  Default: `null`.
</ParamField>

## List enumeration contents

Action ID: `tools.project_discovery.list_enumeration_contents`

List enumeration contents. Calls GET /v1/asset/enumerate/contents directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/get-all-enumeration-contents](https://docs.projectdiscovery.io/api-reference/enumerations/get-all-enumeration-contents)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="cname" type="string | null">
  cname to filter

  Default: `null`.
</ParamField>

<ParamField path="content_length" type="string | null">
  Filter by comma separated content lengths, e.g-> content\_length=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="custom_filter" type="string | null">
  custom query to filter. double encode the query string.

  Default: `null`.
</ParamField>

<ParamField path="domain" type="string | null">
  Filter by comma separated domain names, e.g-> domain=domain1.com,domain2.com

  Default: `null`.
</ParamField>

<ParamField path="favicon" type="string | null">
  Filter by comma separated favicons, e.g-> favicon=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="host" type="string | null">
  Filter by comma separated hosts, e.g-> host=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="ip" type="string | null">
  ips to filter

  Default: `null`.
</ParamField>

<ParamField path="is_favicon" type="boolean | null">
  Return the records that have favicon.

  Default: `null`.
</ParamField>

<ParamField path="is_internal" type="boolean | null">
  filter by is\_internal (internal vs external hosts)

  Default: `null`.
</ParamField>

<ParamField path="is_new" type="boolean | null">
  Filter by new content.

  Default: `null`.
</ParamField>

<ParamField path="is_screenshot" type="boolean | null">
  asset with screenshots

  Default: `null`.
</ParamField>

<ParamField path="is_tech" type="boolean | null">
  Return records that have technologies.

  Default: `null`.
</ParamField>

<ParamField path="labels" type="string | null">
  Filter by comma separated labels, e.g-> labels=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  The numbers of items to return.

  Default: `null`.
</ParamField>

<ParamField path="not_seen_for_days" type="integer | null">
  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.

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  The number of items to skip before starting to collect the result set.

  Default: `null`.
</ParamField>

<ParamField path="only_dns" type="boolean | null">
  Query only dns FQDN records.

  Default: `null`.
</ParamField>

<ParamField path="only_ip" type="boolean | null">
  Query only dns IP records.

  Default: `null`.
</ParamField>

<ParamField path="port" type="string | null">
  Filter by comma separated ports, e.g-> port=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="search" type="string | null">
  Search on the content name.

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  comma separated ascending sorting e.g sort\_asc=created\_at,name

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  comma separated descending sorting e.g sort\_desc=created\_at,name

  Default: `null`.
</ParamField>

<ParamField path="status_code" type="string | null">
  Filter by comma separated status codes, e.g-> status\_code=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

<ParamField path="technologies" type="string | null">
  technologies to filter

  Default: `null`.
</ParamField>

<ParamField path="time" type="string | null">
  time filter to select (last\_day, last\_week, last\_month, last\_3\_months, last\_6\_months, last\_12\_months, all\_time). Defaults to all\_time.

  Default: `null`.
</ParamField>

<ParamField path="title" type="string | null">
  Filter by comma separated titles, e.g-> title=p1,p2

  Default: `null`.
</ParamField>

## List enumerations

Action ID: `tools.project_discovery.list_enumerations`

List asset enumerations. Calls GET /v1/asset/enumerate directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/get-enumeration-list](https://docs.projectdiscovery.io/api-reference/enumerations/get-enumeration-list)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="custom_filter" type="string | null">
  custom query to filter. double encode the query string.

  Default: `null`.
</ParamField>

<ParamField path="end_date" type="string | null">
  time filter end date (YYYY-MM-DD).

  Default: `null`.
</ParamField>

<ParamField path="enum_type" type="string | null">
  types of enumeration list (comma seperated)

  Default: `null`.
</ParamField>

<ParamField path="is_internal" type="boolean | null">
  filter by internal enumerations

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  The numbers of items to return.

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  The number of items to skip before starting to collect the result set.

  Default: `null`.
</ParamField>

<ParamField path="search" type="string | null">
  search keyword in enumeration list

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  comma separated ascending sorting e.g sort\_asc=created\_at,name

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  comma separated descending sorting e.g sort\_desc=created\_at,name

  Default: `null`.
</ParamField>

<ParamField path="start_date" type="string | null">
  time filter start date (YYYY-MM-DD).

  Default: `null`.
</ParamField>

<ParamField path="status" type="string | null">
  comma separated filter enumeration result by status

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

<ParamField path="time" type="string | null">
  time range to get enumerations from (last\_day, last\_week, last\_month, last\_3\_months, last\_6\_months, last\_12\_months, all\_time). Defaults to all\_time.

  Default: `null`.
</ParamField>

## List leaks

Action ID: `tools.project_discovery.list_leaks`

List leaks. Calls GET /v1/leaks directly.

Reference: [https://docs.projectdiscovery.io/api-reference/leaks](https://docs.projectdiscovery.io/api-reference/leaks)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="country" type="string | null">
  Filter by specific country (used with group\_by for drill-down).

  Default: `null`.
</ParamField>

<ParamField path="device_ip" type="string | null">
  Filter by specific device IP (used with group\_by for drill-down).

  Default: `null`.
</ParamField>

<ParamField path="domain" type="string | null">
  Filter leaks by specific domain (applies to employee/customer leaks).

  Default: `null`.
</ParamField>

<ParamField path="email" type="string | null">
  Filter leaks by specific email (can be personal, employee, or customer email from user's authorized results).

  Default: `null`.
</ParamField>

<ParamField path="end_date" type="string | null">
  time filter end date (YYYY-MM-DD).

  Default: `null`.
</ParamField>

<ParamField path="group_by" type="string | null">
  Group results by field - returns group summaries when used without field-specific filtering. Supported fields are url, country, device\_ip, hostname, email, hardware\_id.

  Default: `null`.
</ParamField>

<ParamField path="hardware_id" type="string | null">
  Filter by specific hardware ID (used with group\_by for drill-down).

  Default: `null`.
</ParamField>

<ParamField path="hostname" type="string | null">
  Filter by specific hostname (used with group\_by for drill-down).

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  Number of results per page for pagination.

  Default: `null`.
</ParamField>

<ParamField path="page_number" type="integer | null">
  Page number for pagination (starts from 1).

  Default: `null`.
</ParamField>

<ParamField path="search" type="string | null">
  Search query to filter results across all fields.

  Default: `null`.
</ParamField>

<ParamField path="sort_by" type="string | null">
  supported sort fields (url, username, log\_date, country, device\_ip, host\_username, hostname, os, hardware\_id, malware\_path)

  Default: `null`.
</ParamField>

<ParamField path="sort_order" type="string | null">
  supported sort order (asc or desc)

  Default: `null`.
</ParamField>

<ParamField path="start_date" type="string | null">
  time filter start date (YYYY-MM-DD).

  Default: `null`.
</ParamField>

<ParamField path="status" type="string | null">
  supported status (fixed or open)

  Default: `null`.
</ParamField>

<ParamField path="time_range" type="string | null">
  Time range (all\_time, current\_month, last\_month, last\_3\_months, last\_6\_months, last\_12\_months). Defaults to all\_time.

  Default: `null`.
</ParamField>

<ParamField path="type" type="string | null">
  Filter by specific leak type (single value only). Supported values are all, personal, employee, customer, external\_vendor\_leaks, organization\_leaks.

  Default: `null`.
</ParamField>

<ParamField path="url" type="string | null">
  Filter by specific URL (used with group\_by for drill-down).

  Default: `null`.
</ParamField>

## List scan results

Action ID: `tools.project_discovery.list_scan_results`

List vulnerability scan results. Calls GET /v1/scans/results directly.

Reference: [https://docs.projectdiscovery.io/api-reference/results/get-all-results](https://docs.projectdiscovery.io/api-reference/results/get-all-results)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="asset_metadata" type="boolean | null">
  Asset details for the vulnerability.

  Default: `null`.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="category" type="string | null">
  filter by comma separated categories e.g category=cve,xss

  Default: `null`.
</ParamField>

<ParamField path="domain" type="string | null">
  comma separated domain names e.g-> domain=domain1.com,domain2.com

  Default: `null`.
</ParamField>

<ParamField path="host" type="string | null">
  comma separated host e.g. hosts=[https://example.com,https://x.com](https://example.com,https://x.com)

  Default: `null`.
</ParamField>

<ParamField path="is_internal" type="boolean | null">
  filter by is\_internal (internal vs external hosts)

  Default: `null`.
</ParamField>

<ParamField path="is_regression" type="boolean | null">
  filter by is\_regression

  Default: `null`.
</ParamField>

<ParamField path="is_ticket" type="boolean | null">
  Return the records that have issue trackers.

  Default: `null`.
</ParamField>

<ParamField path="labels" type="string | null">
  filter by comma separated labels e.g labels=p1,p2

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  number of results to get

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  number of results to skip

  Default: `null`.
</ParamField>

<ParamField path="port" type="string | null">
  comma separated ports e.g. ports=80,443

  Default: `null`.
</ParamField>

<ParamField path="search" type="string | null">
  search term

  Default: `null`.
</ParamField>

<ParamField path="severity" type="string | null">
  string separated by comma e.g. info,high. Defaults to unknown,low,medium,high,critical.

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  comma separated ascending sorting e.g sort\_asc=created\_at,severity

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  comma separated descending sorting e.g sort\_desc=created\_at,severity

  Default: `null`.
</ParamField>

<ParamField path="tags" type="string | null">
  comma separated tags e.g tags=xss,cve

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

<ParamField path="templates" type="string | null">
  comma separated templates e.g. templates=tech-detect,azure-takeover

  Default: `null`.
</ParamField>

<ParamField path="time" type="string | null">
  filter by time ( last\_day, last\_week, last\_month )

  Default: `null`.
</ParamField>

<ParamField path="vuln_status" type="string | null">
  comma separated vuln\_status e.g vuln\_status=open,fixed

  Default: `null`.
</ParamField>

## List scans

Action ID: `tools.project_discovery.list_scans`

List vulnerability scans. Calls GET /v1/scans directly.

Reference: [https://docs.projectdiscovery.io/api-reference/scans/get-scan-list](https://docs.projectdiscovery.io/api-reference/scans/get-scan-list)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="is_internal" type="boolean | null">
  filter by internal scans

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  number of scan-status results to fetch

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  number of scan-status results to skip

  Default: `null`.
</ParamField>

<ParamField path="search" type="string | null">
  search term for running scans

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  comma separated ascending sorting e.g sort\_asc=created\_at,severity

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  comma separated descending sorting e.g sort\_desc=created\_at,severity

  Default: `null`.
</ParamField>

<ParamField path="status" type="string | null">
  filter by status (failed, finished, queued, running, starting, uploaded, scheduled)

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## List vulnerability changelogs

Action ID: `tools.project_discovery.list_vulnerability_changelogs`

List vulnerability changelogs. Calls GET /v1/scans/vuln/changelogs directly.

Reference: [https://docs.projectdiscovery.io/api-reference/results/get-all-vulnerability-changelogs](https://docs.projectdiscovery.io/api-reference/results/get-all-vulnerability-changelogs)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="event_type" type="string | null">
  comma separated event\_type e.g. event\_type=vul\_status,vul\_status\_change

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  number of results to get

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  number of results to skip

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  comma separated ascending sorting e.g sort\_asc=created\_at,severity

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  comma separated descending sorting e.g sort\_desc=created\_at,severity

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

<ParamField path="time" type="string | null">
  time filter to select (last\_day, last\_week, last\_month, last\_3\_months, last\_6\_months, last\_12\_months, all\_time). Defaults to all\_time.

  Default: `null`.
</ParamField>

## Rescan enumeration

Action ID: `tools.project_discovery.rescan_enumeration`

Rescan an enumeration. Calls POST /v1/asset/enumerate/\{enumerate\_id}/rescan directly.

Reference: [https://docs.projectdiscovery.io/api-reference/enumerations/rescan-enumeration](https://docs.projectdiscovery.io/api-reference/enumerations/rescan-enumeration)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="enumerate_id" type="string" required>
  Enumeration ID to rescan.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## Rescan scan

Action ID: `tools.project_discovery.rescan_scan`

Rescan a vulnerability scan. Calls POST /v1/scans/\{scan\_id}/rescan directly.

Reference: [https://docs.projectdiscovery.io/api-reference/scans/rescan-scan](https://docs.projectdiscovery.io/api-reference/scans/rescan-scan)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="scan_id" type="string" required>
  Scan ID to rescan.
</ParamField>

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="team_id" type="string | null">
  Retrieve the Team ID from: [https://cloud.projectdiscovery.io/settings/team](https://cloud.projectdiscovery.io/settings/team)

  Default: `null`.
</ParamField>

## Search vulnerabilities

Action ID: `tools.project_discovery.search_vulnerabilities`

Search vulnerability findings. Calls GET /v2/vulnerability/search directly.

Reference: [https://docs.projectdiscovery.io/api-reference/full-text-search](https://docs.projectdiscovery.io/api-reference/full-text-search)

### Secrets

Required secrets:

* `project_discovery`: required values `PDCP_API_KEY`.

### Input fields

<ParamField path="base_url" type="string | null">
  ProjectDiscovery Cloud API base URL.

  Default: `null`.
</ParamField>

<ParamField path="facet_size" type="integer | null">
  Number of facets to return.

  Default: `null`.
</ParamField>

<ParamField path="fields" type="string | null">
  List of fields to return (comma separated).

  Default: `null`.
</ParamField>

<ParamField path="highlight" type="boolean | null">
  Whether to highlight the search results.

  Default: `null`.
</ParamField>

<ParamField path="limit" type="integer | null">
  The numbers of items to return.

  Default: `null`.
</ParamField>

<ParamField path="offset" type="integer | null">
  The numbers of items to skip.

  Default: `null`.
</ParamField>

<ParamField path="q" type="string | null">
  Search query.

  Default: `null`.
</ParamField>

<ParamField path="range_facets" type="string | null">
  List of range facet fields (comma separated).

  Default: `null`.
</ParamField>

<ParamField path="sort_asc" type="string | null">
  Sort results in ascending order (CSV field names).

  Default: `null`.
</ParamField>

<ParamField path="sort_desc" type="string | null">
  Sort results in descending order (CSV field names).

  Default: `null`.
</ParamField>

<ParamField path="term_facets" type="string | null">
  List of term facet fields (comma separated).

  Default: `null`.
</ParamField>
