# CVEs

## Retrieve a CVE by identifier

> Provides the most up-to-date data about a CVE.

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"API V1","version":"v1"},"servers":[{"url":"https://{defaultHost}","variables":{"defaultHost":{"default":"app.empiricalsecurity.com"}}}],"security":[{"bearer_auth":[]}],"components":{"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/cves/{cve_id}":{"get":{"summary":"Retrieve a CVE by identifier","parameters":[{"name":"cve_id","in":"path","description":"The identifier of the CVE to return, in the format CVE-YYYY-######","required":true,"schema":{"type":"string"}}],"description":"Provides the most up-to-date data about a CVE.","responses":{"200":{"description":"successful","content":{"application/json":{}}}}}}}}
```

## Retrieve historical scores by CVE identifier

> Retrieve the entire score history for the CVE. Supported scoring\_model values are \`global\` \`epss\_v3\` \`epss\_v4\` \`all\`. Note that EPSS customers cannot request \`global\` scores.

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"API V1","version":"v1"},"servers":[{"url":"https://{defaultHost}","variables":{"defaultHost":{"default":"app.empiricalsecurity.com"}}}],"security":[{"bearer_auth":[]}],"components":{"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/cves/{cve_id}/score_history":{"get":{"summary":"Retrieve historical scores by CVE identifier","parameters":[{"name":"cve_id","in":"path","description":"The identifier of the CVE to return, in the format CVE-YYYY-######","required":true,"schema":{"type":"string"}},{"name":"scoring_model","in":"query","required":true,"description":"The scoring model to retrieve historical scores for.","schema":{"type":"string"}}],"description":"Retrieve the entire score history for the CVE. Supported scoring_model values are `global` `epss_v3` `epss_v4` `all`. Note that EPSS customers cannot request `global` scores.","responses":{"200":{"description":"successful","content":{"application/json":{}}},"400":{"description":"bad request","content":{"application/json":{}}},"403":{"description":"forbidden","content":{"application/json":{}}}}}}}}
```

## Retrieve changes to a CVE by identifier

> Provides the entire change history of a CVE.

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"API V1","version":"v1"},"servers":[{"url":"https://{defaultHost}","variables":{"defaultHost":{"default":"app.empiricalsecurity.com"}}}],"security":[{"bearer_auth":[]}],"components":{"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/cves/{cve_id}/history":{"get":{"summary":"Retrieve changes to a CVE by identifier","parameters":[{"name":"cve_id","in":"path","description":"The identifier of the CVE to return, in the format CVE-YYYY-######","required":true,"schema":{"type":"string"}},{"name":"accept","in":"header","description":"JSON is the default response type. If JSON Lines is preferable, set this header to application/jsonl.","schema":{"type":"string"}}],"description":"Provides the entire change history of a CVE.","responses":{"200":{"description":"successful","content":{"application/json":{}}}}}}}}
```

## Retrieve all CVE data as a .jsonl.gz file

> Provides a redirect which should be followed to obtain the latest CVE data file. The data is returned as a gzipped jsonl (JSON Lines) formatted file containing data for all CVEs we have in our system. If a file is unavailable a 202 Accepted is returned while the file is generated, and this endpoint should be periodically polled. If/when a file is available a 302 Found is issued with a redirect location to fetch the file.

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"API V1","version":"v1"},"servers":[{"url":"https://{defaultHost}","variables":{"defaultHost":{"default":"app.empiricalsecurity.com"}}}],"security":[{"bearer_auth":[]}],"components":{"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/cves/all":{"get":{"summary":"Retrieve all CVE data as a .jsonl.gz file","description":"Provides a redirect which should be followed to obtain the latest CVE data file. The data is returned as a gzipped jsonl (JSON Lines) formatted file containing data for all CVEs we have in our system. If a file is unavailable a 202 Accepted is returned while the file is generated, and this endpoint should be periodically polled. If/when a file is available a 302 Found is issued with a redirect location to fetch the file.","responses":{"202":{"description":"accepted"},"302":{"description":"redirect"}}}}}}
```

## Retrieve all malware hashes associated with the CVE identifier

> Provides all malware hashes associated with the given CVE identifier

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"API V1","version":"v1"},"servers":[{"url":"https://{defaultHost}","variables":{"defaultHost":{"default":"app.empiricalsecurity.com"}}}],"security":[{"bearer_auth":[]}],"components":{"securitySchemes":{"bearer_auth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/cves/{cve_id}/malware":{"get":{"summary":"Retrieve all malware hashes associated with the CVE identifier","parameters":[{"name":"cve_id","in":"path","description":"The identifier of the CVE to return, in the format CVE-YYYY-######","required":true,"schema":{"type":"string"}},{"name":"accept","in":"header","description":"JSON is the default response type. If JSON Lines is preferable, set this header to application/jsonl.","schema":{"type":"string"}}],"description":"Provides all malware hashes associated with the given CVE identifier","responses":{"200":{"description":"successful","content":{"application/json":{}}}}}}}}
```
