Programmatic access to TechWatchAlert’s vulnerability database: multi-criteria search and full records (CVSS, EPSS, KEV, PoC, affected products). Public data — no project required.
Authorization : Bearer twa_your_key_here
Parameter Type Description qstringSearch in ID, description, vendor or product severitystringFilter, comma-separated: CRITICAL,HIGH,MEDIUM,LOW is_kevbooleantrue = only CVEs in CISA’s KEV cataloghas_pocbooleantrue = only CVEs with a known public exploitvendorstringFilter by vendor — searched across all affected entries productstringFilter by product — searched across all affected entries matchstringpartial (default) or exact for vendor/productupdated_sincestringISO 8601 date: only CVEs modified since includestringaffected to attach version ranges to the listpageintegerPage (default 1) page_sizeintegerPage size, max 100 (default 20)
Searching by product
vendor and product match the primary pair and every affected entry.
A CVE affecting Chrome, Edge and Electron is now found under all three —
previously only the first one answered.
match=exact removes the noise of partial matching: product=java also
returns javascript, product=java_se&match=exact does not. Recommended for
automated clients.
Incremental sync
updated_since returns modified CVEs, not just newly published ones: a CVE
gets its KEV listing and CVSS score days after publication.
Combined with include=affected, it keeps a local cache current without ever
opening each CVE’s detail — version ranges come back in the list itself.
curl -H " Authorization: Bearer $TWA_API_KEY " " https://app.techwatchalert.com/api/v1/cves?updated_since=2026-08-01T00:00:00Z&include=affected&page_size=100 "
"cve_id" : " CVE-2024-3094 " ,
"date_published" : " 2024-03-29T00:00:00Z "
Field Type Description cve_idstringCVE identifier severitystringCRITICAL, HIGH, MEDIUM, LOW, NONE, UNKNOWNcvss_scorenumber | nullCVSS score (0–10) epss_scorenumber | nullEPSS exploitation probability (0–1) is_kevbooleanListed in CISA’s KEV catalog has_pocbooleanKnown public exploit / proof of concept vendorstring | nullPrimary vendor productstring | nullPrimary product date_publishedstring (ISO 8601) | nullPublication date affectedarray | nullOnly present with include=affected — same fields as on the record
Code Detail Cause 422updated_since doit etre une date ISO 8601updated_since cannot be parsed422string_pattern_mismatchmatch is neither partial nor exact422less_than_equalpage_size above 100
GET /api/v1/cves/{cve_id}
Authorization : Bearer twa_your_key_here
Parameter Type Description cve_idstringCVE identifier (e.g. CVE-2024-3094)
In addition to the search item fields:
Field Type Description descriptionstring | nullEnglish description cvss_vectorstring | nullCVSS vector epss_percentilenumber | nullEPSS percentile (0–1) cwe_idsarray | nullAssociated CWE identifiers poc_countintegerNumber of public PoCs recorded date_updatedstring (ISO 8601) | nullLast update affectedarrayAffected products
Each affected entry: vendor, product, version_from, version_to, version_status, cpe.
Code Detail Cause 404CVE introuvablecve_id not found
Critical CVEs with a public PoC, paginated
-H " Authorization: Bearer twa_your_key_here " \
" https://app.techwatchalert.com/api/v1/cves?severity=CRITICAL&has_poc=true&page=1&page_size=50 " \
| jq ' .items[] | {cve: .cve_id, cvss: .cvss_score, epss: .epss_score} '
Full record for a CVE
-H " Authorization: Bearer twa_your_key_here " \
https://app.techwatchalert.com/api/v1/cves/CVE-2024-3094 \
| jq ' {cve: .cve_id, kev: .is_kev, affected: [.affected[].product]} '