Nuclei Vulnerability API
The Vulnerability API from Nuclei — 9 operation(s) for vulnerability.
The Vulnerability API from Nuclei — 9 operation(s) for vulnerability.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/nuclei-vulnerability-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: PDCP agents Vulnerability 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: Vulnerability
paths:
/v2/vulnerability/search:
parameters: []
get:
summary: Full Text Search
tags:
- Vulnerability
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
count:
type: integer
facets:
type: object
additionalProperties:
$ref: '#/components/schemas/Facets'
results:
type: array
items:
$ref: '#/components/schemas/Vulnerability'
total:
type: integer
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v2-vulnerability-search
description: Full text search on vulnerabilities
parameters:
- schema:
type: integer
in: query
name: limit
description: The numbers of items to return
- schema:
type: integer
in: query
name: offset
description: The numbers of items to skip
- schema:
type: string
in: query
name: sort_asc
description: Sort results in ascending order (CSV field names)
- schema:
type: string
in: query
name: sort_desc
description: Sort results in descending order (CSV field names)
- schema:
items:
type: string
type: array
in: query
name: fields
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: term_facets
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: range_facets
description: List of fields to return(comma separated)
- schema:
type: string
in: query
name: q
description: query
- schema:
type: boolean
in: query
name: highlight
description: Whether to highlight the search results
- schema:
type: integer
in: query
name: facet_size
description: Number of facets to return
/v2/vulnerability/{id}:
parameters:
- schema:
type: string
name: id
in: path
required: true
get:
summary: Get Vulnerability by ID
tags:
- Vulnerability
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Vulnerability'
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-vulnerability-by-id
description: Get Vulnerability by ID
parameters:
- schema:
type: string
in: query
name: fields
description: 'template data fields '
/v2/vulnerability/filters:
parameters: []
get:
summary: Get All Filters for Vulnerabilities
tags:
- Vulnerability
responses:
'200':
content:
application/json:
schema:
items:
properties:
can_sort:
description: Indicates if sorting is possible by this field.
type: boolean
data_type:
description: The data type of the filter field (e.g., string, number, datetime).
type: string
description:
description: A human-readable description of the filter field.
type: string
enum_values:
description: The possible values for this field.
items:
type: string
type: array
examples:
description: Example usage of the filter.
items:
type: string
type: array
facet_possible:
description: Indicates if faceting is possible for this field.
type: boolean
field:
description: The name of the filter field.
type: string
search_analyzer:
description: The search analyzer used for this field.
type: string
required:
- field
- data_type
- description
- facet_possible
- can_sort
- examples
- search_analyzer
- enum_values
type: object
type: array
description: OK
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v2-vulnerability-filters
description: Get all filters for vulnerabilities
/v2/vulnerability/product/search:
parameters: []
get:
summary: Search Products
tags:
- Vulnerability
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
count:
type: integer
facets:
type: object
additionalProperties:
$ref: '#/components/schemas/Facets'
results:
type: array
items:
$ref: '#/components/schemas/Product'
total:
type: integer
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v2-product-search
description: Search products with filtering and faceting capabilities
parameters:
- schema:
type: integer
in: query
name: limit
description: The numbers of items to return
- schema:
type: integer
in: query
name: offset
description: The numbers of items to skip
- schema:
type: string
in: query
name: sort_asc
description: Sort results in ascending order (CSV field names)
- schema:
type: string
in: query
name: sort_desc
description: Sort results in descending order (CSV field names)
- schema:
items:
type: string
type: array
in: query
name: fields
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: term_facets
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: range_facets
description: List of fields to return(comma separated)
- schema:
type: string
in: query
name: q
description: query
- schema:
type: boolean
in: query
name: highlight
description: Whether to highlight the search results
- schema:
type: integer
in: query
name: facet_size
description: Number of facets to return
/v2/vulnerability/product/{id}:
parameters:
- schema:
type: string
name: id
in: path
required: true
get:
summary: Get Product by ID
tags:
- Vulnerability
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Product'
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-product-by-id
description: Get Product by ID
parameters:
- schema:
type: string
in: query
name: fields
description: 'product data fields '
/v2/vulnerability/product/{id}/vulns:
parameters:
- schema:
type: string
name: id
in: path
required: true
get:
summary: Get Vulnerabilities for Product
tags:
- Vulnerability
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
count:
type: integer
facets:
type: object
additionalProperties:
$ref: '#/components/schemas/Facets'
results:
type: array
items:
$ref: '#/components/schemas/Vulnerability'
total:
type: integer
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-product-vulns
description: Get vulnerabilities for a specific product
parameters:
- schema:
type: integer
in: query
name: limit
description: The numbers of items to return
- schema:
type: integer
in: query
name: offset
description: The numbers of items to skip
- schema:
type: string
in: query
name: sort_asc
description: Sort results in ascending order (CSV field names)
- schema:
type: string
in: query
name: sort_desc
description: Sort results in descending order (CSV field names)
- schema:
items:
type: string
type: array
in: query
name: fields
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: term_facets
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: range_facets
description: List of fields to return(comma separated)
- schema:
type: string
in: query
name: q
description: query
- schema:
type: boolean
in: query
name: highlight
description: Whether to highlight the search results
- schema:
type: integer
in: query
name: facet_size
description: Number of facets to return
/v2/vulnerability/product/{id}/timeline:
parameters:
- schema:
type: string
name: id
in: path
required: true
get:
summary: Get Vulnerability Timeline for Product
tags:
- Vulnerability
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
count:
type: integer
facets:
type: object
additionalProperties:
$ref: '#/components/schemas/Facets'
results:
type: array
items:
$ref: '#/components/schemas/Vulnerability'
total:
type: integer
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-product-timeline
description: Get vulnerability timeline for a specific product (sorted by cve_created_at descending)
parameters:
- schema:
type: integer
in: query
name: limit
description: The numbers of items to return
- schema:
type: integer
in: query
name: offset
description: The numbers of items to skip
- schema:
type: string
in: query
name: sort_asc
description: Sort results in ascending order (CSV field names)
- schema:
type: string
in: query
name: sort_desc
description: Sort results in descending order (CSV field names)
- schema:
items:
type: string
type: array
in: query
name: fields
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: term_facets
description: List of fields to return(comma separated)
- schema:
items:
type: string
type: array
in: query
name: range_facets
description: List of fields to return(comma separated)
- schema:
type: string
in: query
name: q
description: query
- schema:
type: boolean
in: query
name: highlight
description: Whether to highlight the search results
- schema:
type: integer
in: query
name: facet_size
description: Number of facets to return
/v2/vulnerability/product/filters:
parameters: []
get:
summary: Get All Filters for Products
tags:
- Vulnerability
responses:
'200':
content:
application/json:
schema:
items:
properties:
can_sort:
description: Indicates if sorting is possible by this field.
type: boolean
data_type:
description: The data type of the filter field (e.g., string, number, datetime).
type: string
description:
description: A human-readable description of the filter field.
type: string
enum_values:
description: The possible values for this field.
items:
type: string
type: array
examples:
description: Example usage of the filter.
items:
type: string
type: array
facet_possible:
description: Indicates if faceting is possible for this field.
type: boolean
field:
description: The name of the filter field.
type: string
search_analyzer:
description: The search analyzer used for this field.
type: string
required:
- field
- data_type
- description
- facet_possible
- can_sort
- examples
- search_analyzer
- enum_values
type: object
type: array
description: OK
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-v2-product-filters
description: Get all filters for products
/v2/vulnerability/{id}/timeline:
parameters:
- schema:
type: string
name: id
in: path
required: true
get:
summary: Get Vulnerability Timeline
tags:
- Vulnerability
parameters:
- schema:
type: array
items:
type: string
enum:
- detected
- status_change
- resolved
- reopened
- severity_change
- template_released
- template_updated
name: event_type
in: query
required: false
description: Filter by event types (comma-separated). If not provided, returns all events.
style: form
explode: false
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VulnTimelineResponse'
'400':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
default:
$ref: '#/components/responses/ErrorResponse'
operationId: get-vulnerability-timeline
description: Get timeline of events for a vulnerability including template release date, first detection, status changes, and severity changes
components:
schemas:
VulnTimelineResponse:
title: VulnTimelineResponse
type: object
properties:
template_released_at:
type: string
format: date-time
description: Date when the template was first released (created)
template_updated_at:
type: string
format: date-time
description: Date when the template was last updated
template_raw:
type: string
description: Raw template content (YAML) for public templates
first_detected_at:
type: string
format: date-time
last_seen_at:
type: string
format: date-time
current_status:
type: string
events:
type: array
items:
$ref: '#/components/schemas/TimelineEvent'
ExposureStats:
title: ExposureStats
type: object
properties:
fofa:
$ref: '#/components/schemas/SearchEngineStats'
id:
type: string
max_hosts:
type: integer
min_hosts:
type: integer
shodan:
$ref: '#/components/schemas/SearchEngineStats'
ProductInfo:
title: ProductInfo
type: object
properties:
cpe:
description: CPE of the product
type: array
items:
type: string
product:
description: Product of the product
type: string
project_repos:
type: object
projects:
description: Projects of the product
type: array
items:
type: string
vendor:
description: Vendor of the product
type: string
product_category:
type: string
product_type:
type: string
industry:
description: Industry of the product
type: string
tech_domain:
description: Tech domain of the product
type: string
category:
description: Product category of the product
type: string
deployment_model:
description: Deployment model of the product
type: string
summary:
description: Summary of the product
type: string
Citation:
additionalProperties: false
title: Citation
type: object
properties:
source:
type: string
description: Source for the citation
tags:
type: array
description: Tags for the citation
items:
type: string
url:
type: string
description: URL for the citation
added_at:
description: Added at date for the citation
format: date-time
type: string
Facets:
title: Facets
type: object
properties:
buckets:
type: object
additionalProperties:
type: integer
missing:
type: integer
others:
type: integer
total:
type: integer
NucleiTemplate:
additionalProperties: false
allOf:
- $ref: '#/components/schemas/TemplateSourceMeta'
- $ref: '#/components/schemas/TemplateStatus'
- $ref: '#/components/schemas/TemplateFileMeta'
- $ref: '#/components/schemas/TemplateContent'
- $ref: '#/components/schemas/TemplateSharingMetadata'
- properties:
ai_meta:
$ref: '#/components/schemas/AIMeta'
description: AI Meta of the template
classification:
$ref: '#/components/schemas/Classification'
description: Classification of the template
id:
description: ID of the template
type: string
user_id:
description: User ID of the template
type: integer
type: object
type: object
AIMeta:
type: object
properties:
model_used:
description: The AI model used to generate the template
type: string
is_prompt_by_human:
description: Whether the prompt was written by a human
type: boolean
is_template_by_human:
description: Whether the template was written by a human
type: boolean
prompt:
description: The prompt used to generate the template
type: string
VulnerabilityInfo:
additionalProperties: false
allOf:
- $ref: '#/components/schemas/CVEInfo'
- properties:
citations:
description: Citations for the vulnerability/template
items:
$ref: '#/components/schemas/Citation'
type: array
cwe:
description: CWE IDs associated with the vulnerability
items:
type: string
type: array
description:
description: Description of the vulnerability/template
type: string
impact:
description: Impact of the vulnerability/template
type: string
name:
description: Name of the vulnerability/template
type: string
product:
description: Product associated with the vulnerability/template
type: string
remediation:
description: Remediation for the vulnerability/template
type: string
severity:
description: Severity of the vulnerability/template
type: string
vendor:
description: Vendor associated with the vulnerability/template
type: string
requirement_type:
description: Type of the requirement
type: string
requirements:
description: Requirements for the vulnerability/template
type: string
template_coverage:
description: Coverage of the template
type: string
vulnerability_impact:
description: Impact of the vulnerability/template
items:
type: string
type: array
vulnerability_type:
description: Type of the vulnerability/template
type: string
weaknesses:
description: Weaknesses associated with the vulnerability
items:
$ref: '#/components/schemas/Weakness'
type: array
type: object
type: object
title: ''
VulnExposure:
additionalProperties: false
title: VulnExposure
type: object
properties:
max_hosts:
description: Maximum number of hosts for the vulnerability
type: integer
min_hosts:
description: Minimum number of hosts for the vulnerability
type: integer
values:
description: Values of the vulnerability
type: array
items:
$ref: '#/components/schemas/ExposureStats'
Classification:
description: Classification of template including additional metadata like cve-id, cwe-id etc
type: object
properties:
cve-id:
type: array
items:
type: string
description: CVE IDs for the template
cwe-id:
type: array
items:
type: string
description: CWE IDs for the template
cvss-metrics:
type: string
description: CVSS Metrics for the template
cvss-score:
type: number
format: float
description: CVSS Score for the template
epss-score:
type: number
format: float
description: EPSS Score for the template
epss-percentile:
type: number
format: float
description: EPSS Percentile for the template
cpe:
type: string
description: CPE for the template
TemplateStatus:
properties:
is_draft:
description: Is the template a draft
type: boolean
is_early:
description: Is the template in early access
type: boolean
is_github:
description: Is the template from github
type: boolean
is_new:
description: Is the template new
type: boolean
is_pdteam:
description: Is the template from pdteam
type: boolean
type: object
TemplateFileMeta:
title: TemplateFileMeta
type: object
properties:
directory:
type: string
description: Directory of template
filename:
type: string
description: 'Filename of template
'
uri:
type: string
description: Uri of template
Product:
type: object
required:
- doc_id
- vuln_count
- kev_count
- vulns_with_poc
- product
- vendor
properties:
category:
description: Product category
type: string
cpe:
description: List of CPEs for this product
type: array
items:
type: string
deployment_model:
description: Product deployment model
type: string
doc_id:
description: Unique document ID in the form vendor:product
type: string
exposure:
$ref: '#/components/schemas/ExposureStats'
first_cve_created_at:
description: Date when the earliest CVE was processed for this product
type: string
format: date-time
industry:
description: Product industry
type: string
kev_count:
description: Number of KEV vulnerabilities for this product
type: integer
last_cve_created_at:
description: Date when the most recent CVE was processed for this product
type: string
format: date-time
product:
description: Product name
type: string
project_repos:
description: List of repository info for this product
type: array
items:
type: object
additionalProperties: true
projects:
description: List of project URLs for this product
type: array
items:
type: string
score:
description: Impact score based on available parameters mainly used for sorting
type: number
summary:
description: Product summary
type: string
tech_domain:
description: Product tech domain
type: string
vendor:
description: Vendor name
type: string
vulnerability_count:
description: Total number of vulnerabilities for this product
type: integer
vulnerability_max_cvss:
description: Maximum CVSS score among vulnerabilities
type: number
format: double
vulnerability_mean_cvss:
description: Mean CVSS score among vulnerabilities
type: number
format: double
vulnerability_poc_count:
description: Number of vulnerabilities with PoC for this product
type: integer
vulnerability_stat_counts:
description: Vulnerability statistics by type
type: object
additionalProperties:
type: integer
severities:
description: Map of severity -> count for vulnerabilities
type: object
additionalProperties:
type: integer
vuln_count:
description: Total number of vulnerabilities for this product
type: integer
vuln_impact_breakdown:
description: Map of vulnerability_impact -> count for vulnerabilities (flattened array)
type: object
additionalProperties:
type: integer
vuln_statuses:
description: Map of vuln_status -> count for vulnerabilities
type: object
additionalProperties:
type: integer
vuln_types:
description: Map of vulnerability_type -> count for vulnerabilities
type: object
additionalProperties:
type: integer
vulns_with_poc:
description: Number of vulnerabilities with PoC for this product
type: integer
SearchEngineStats:
title: SearchEngineStats
type: object
properties:
max_hosts:
type: integer
description: Maximum number of hosts for the product
min_hosts:
type: integer
description: Minimum number of hosts for the product
queries:
type: array
description: Queries for the product
items:
type: string
POC:
title: POC
type: object
properties:
added_at:
type: string
format: date-time
source:
type: string
url:
type: string
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuclei/refs/heads/main/openapi/nuclei-vulnerability-api-openapi.yml