CVE Security Search API

The Search API from CVE Security — 1 operation(s) for search.

Operations 1

GET /api/search Search the CVE catalog with structured filters (keyless) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cve-security-com:cve-security-com-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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 Specification

cve-security-com-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cve Security Com Search API
  version: 1.9.1
  contact:
    url: https://cve-security.com/api
  license:
    name: 'Scoreboard data: CC BY 4.0. Underlying sources retain their own licenses (see /sources).'
    identifier: CC-BY-4.0
  description: 'Operations tagged Search across 2 of this provider''s published API definitions: cve-security-com-openapi.json, cve-security-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://cve-security.com
tags:
- name: Search
paths:
  /api/search:
    get:
      operationId: searchCves
      summary: Search the CVE catalog with structured filters (keyless)
      description: 'Three modes. (1) q shaped like a CVE id → exact:true with one row, filters ignored (filters_ignored:true is set). (2) q + filters → full-text rank restricted to the filtered set. (3) Filters only, no q → the /browse slice as JSON, ordered KEV-first then EPSS/CVSS, with `page` and `has_more`. Filter semantics: fix=0 means ''computed, and no fix held'', rows not yet computed are excluded from both fix=1 and fix=0 (absence semantics). detect covers the four DETECTION-CONTENT engines (Nuclei, Metasploit check, Emerging Threats, Snort), not exploit code. Per-IP rate limited (30/min).'
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
        example: citrix bleed
        description: Free text or a CVE id. Optional when at least one filter is present.
      - name: vendor
        in: query
        schema:
          type: string
        example: microsoft
        description: Vendor slug (see /api/entities)
      - name: cwe
        in: query
        schema:
          type: string
          pattern: ^CWE-\d{1,5}$
        example: CWE-502
      - name: technique
        in: query
        schema:
          type: string
          pattern: ^T\d{4}(\.\d{3})?$
        example: T1190
        description: MITRE ATT&CK technique id, CVEs whose weakness classes map to it (see /attack)
      - name: year
        in: query
        schema:
          type: string
        example: 2024,2025
        description: Publication year(s), comma-separated
      - name: sev
        in: query
        schema:
          type: string
        example: critical,high
        description: 'Severity band(s), comma-separated: critical|high|medium|low|none'
      - name: kev
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: In CISA KEV
      - name: kev_from
        in: query
        schema:
          type: string
          format: date
        example: '2026-03-01'
        description: Inclusive lower bound on the CISA KEV listing date (YYYY-MM-DD). Implies kev=1 unless kev is given explicitly.
      - name: kev_to
        in: query
        schema:
          type: string
          format: date
        example: '2026-04-01'
        description: 'Exclusive upper bound on the CISA KEV listing date (YYYY-MM-DD): the window is [kev_from, kev_to).'
      - name: kev_vendor
        in: query
        schema:
          type: string
          maxLength: 80
        example: Palo Alto Networks
        description: CISA's vendorProject for the KEV entry, verbatim and case-sensitive. A different axis from `vendor` (our CPE/CNA vendor slug).
      - name: ransomware
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: CISA known-ransomware-campaign flag
      - name: detect
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: Detection content we track (1) / none we track (0)
      - name: fix
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: Actionable vendor fix held (1) / computed-and-none-held (0)
      - name: automatable
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: 'CISA SSVC Automatable: 1 = yes, 0 = CISA assessed no. A CVE with no CISA assessment held matches neither value.'
      - name: ti
        in: query
        schema:
          type: string
          enum:
          - total
          - partial
        description: CISA SSVC Technical impact, for CVEs with a CISA assessment held.
      - name: triage_flag
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: 'CISA''s forensic triage flag on the KEV entry (BOD 26-04, the catalog''s forensicTriage field): 1 = Yes, 0 = No. Both values select KEV entries; a CVE outside KEV carries no flag.'
      - name: ssvc
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: 'Whether this dataset holds a CISA SSVC assessment (Automatable and Technical impact) for the CVE: 1 = held, 0 = no assessment held, the set where CISA''s interim values apply outside KEV.'
      - name: bod
        in: query
        schema:
          type: string
          enum:
          - 3df
          - 3d
          - 14d
          - 60d
          - fsu
        description: 'BOD 26-04 Table 1 read at the stated exposure (see exposed): the outcome key Table 1 gives the row''s KEV status and CISA''s two SSVC values. 3df = three days and forensic triage, 3d = three days, 14d = 14 days, 60d = 60 days, fsu = fix on system upgrade. A mapping at that exposure; an agency''s timeline for an asset also needs its own enumeration date. A KEV entry with no CISA values held matches no key; a CVE outside KEV with a value missing reads on CISA''s interim value for it (Automatable no, Technical impact total). The per-CVE read is the bod_26_04 object on /api/cve/{id}.'
      - name: exposed
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: 'The exposure branch for bod: 1 = publicly exposed (the default when bod is set), 0 = internal. Ignored without bod.'
      - name: eco
        in: query
        schema:
          type: string
        example: npm
        description: OSS ecosystem by its OSV name (npm, PyPI, Maven, Go, crates.io and so on), joined through the package mapping. For version ranges use /api/package.
      - name: pkg
        in: query
        schema:
          type: string
        example: npm/lodash
        description: Package key, ecosystem/name (such as npm/lodash or maven/org.apache.logging.log4j:log4j-core), joined through the package mapping.
      - name: sighted
        in: query
        schema:
          type: string
          enum:
          - '7'
          - '30'
        description: 'Field sighting window in days: a named sensor network (Shadowserver honeypots per VulnCheck KEV, VulnCheck canary sensors) recorded the CVE within the last 7 or 30 days. Presence per day, apart from the exploitation claims.'
      - name: malware
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: 'Malware claim: a published source (MITRE ATT&CK, or a Ransomware Vulnerability Matrix row verified against its cited page) ties a named malware family, tool, campaign or ransomware group to the CVE.'
      - name: watch
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: 'KEV Watch: on the watch list at tier 1 or 2, reported as exploited by trackers other than CISA (VulnCheck KEV, Microsoft, Google Project Zero, ENISA, CIRCL, FortiGuard) while outside CISA KEV. Mirrors /kev-watch.'
      - name: chained
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: '1: in a known exploit chain (a cited source reports the CVE was used together with another CVE in one exploit chain); 0: no known chain in our sources.'
      - name: chainability
        in: query
        schema:
          type: string
          enum:
          - '0'
          - '1'
        description: '1: on KCV Watch™, the CVE carries at least one chain candidate at tier A or B (a pair whose extracted exploit capabilities connect or whose records tie the two CVEs together); 0: no such candidate we hold. A candidate is not a confirmed chain.'
      - name: epss_gte
        in: query
        schema:
          type: number
          minimum: 0
          maximum: 1
        example: 0.5
      - name: page
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 500
          default: 1
        description: 'Filter-only mode: page through the slice'
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 50
          default: 20
      responses:
        '200':
          description: '{ query, exact, results[], filters?, filters_ignored?, page?, has_more? }, each result carries cve_id, slug, title, severity, epss_score, kev_listed, detection flags, and url (site-relative). `filters` echoes the active slice in canonical (alphabetical, byte-stable) form.'
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Neither q nor any filter provided
        '429':
          description: Rate limited (Retry-After header)
        '503':
          description: Search unavailable, an outage, NOT an empty result
      tags:
      - Search
    servers:
    - url: https://cve-security.com
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: 'Authorization: Bearer cvs_live_…'
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative to the Authorization header. Keys are never accepted in query strings.
x-refined-from:
- cve-security-com-openapi.json
- cve-security-com-openapi.yml