{"components":{"schemas":{"Article":{"properties":{"ai_assisted":{"const":true},"body":{"type":"string"},"headline":{"type":"string"},"id":{"type":"integer"},"published_at":{"format":"date-time","type":["string","null"]},"review_kind":{"enum":["ai","human"],"type":"string"},"reviewer":{"type":"string"},"scope":{"properties":{"affected_versions":{"type":"string"},"exploitation_status":{"type":"string"},"fixed_versions":{"type":"string"},"limitations":{"type":"string"}},"required":[],"type":"object"},"section":{"type":"string"},"sources":{"items":{"properties":{"publisher":{"type":"string"},"url":{"format":"uri","type":"string"}},"required":["publisher","url"],"type":"object"},"type":"array"},"updated_at":{"format":"date-time","type":["string","null"]},"url":{"format":"uri","type":"string"}},"required":["id","headline","body","url","reviewer","sources"],"type":"object"},"CVE":{"properties":{"affected":{"items":{"description":"Upstream affected product and version ranges, without inferred fixes.","type":"object"},"type":"array"},"cna":{"additionalProperties":true,"description":"Original CVE Program record, or null when not enriched.","type":["object","null"]},"cna_checked":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"},"cve":{"pattern":"^CVE-[0-9]{4}-[0-9]{4,}$","type":"string"},"description":{"type":"string"},"epss":{"description":"Dated FIRST EPSS observation; null is unknown, not zero.","properties":{"date":{"format":"date","type":"string"},"epss":{"description":"Estimated exploitation probability over the next 30 days.","maximum":1,"minimum":0,"type":"number"},"percentile":{"maximum":1,"minimum":0,"type":"number"}},"type":["object","null"]},"epss_checked":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"},"first_seen":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"},"kev":{"additionalProperties":true,"description":"Original CISA KEV entry, or null if absent/unchecked. Inspect kev_checked.","type":["object","null"]},"kev_checked":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"},"products":{"type":"string"},"references":{"items":{"format":"uri","type":"string"},"type":"array"},"score":{"properties":{"baseScore":{"maximum":10,"minimum":0,"type":"number"},"baseSeverity":{"type":"string"},"provider":{"type":"string"},"vectorString":{"type":"string"},"version":{"type":"string"}},"type":["object","null"]},"solutions":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"},"updated_at":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"},"url":{"format":"uri","type":"string"},"workarounds":{"type":"string"}},"required":["cve","url","title","score","epss","kev","cna","updated_at"],"type":"object"},"CVERecord":{"properties":{"api_version":{"const":"v1"},"data":{"$ref":"#/components/schemas/CVE"}},"required":["api_version","data"],"type":"object"},"CVEs":{"properties":{"api_version":{"const":"v1"},"data":{"items":{"$ref":"#/components/schemas/CVE"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["api_version","data","pagination"],"type":"object"},"Change":{"properties":{"cve":{"type":"string"},"id":{"type":"integer"},"kind":{"enum":["cna","kev","epss"],"type":"string"},"observed_at":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"}},"required":["id","cve","kind","observed_at"],"type":"object"},"Changes":{"properties":{"api_version":{"const":"v1"},"data":{"items":{"$ref":"#/components/schemas/Change"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["api_version","data","pagination"],"type":"object"},"Index":{"properties":{"api_version":{"const":"v1"},"attribution":{"type":"string"},"authentication":{"const":"none"},"cors":{"const":"*"},"coverage":{"properties":{"cna":{"minimum":0,"type":"integer"},"epss":{"minimum":0,"type":"integer"},"kev":{"minimum":0,"type":"integer"},"sources":{"items":{"properties":{"checked_at":{"type":["integer","null"]},"count":{"type":"integer"},"source":{"type":"string"},"status":{"enum":["ok","error"],"type":"string"},"successful_at":{"type":["integer","null"]}},"required":["source","checked_at","successful_at","count","status"],"type":"object"},"type":"array"},"total":{"minimum":0,"type":"integer"}},"required":["total","kev","cna","epss","sources"],"type":"object"},"coverage_note":{"type":"string"},"docs":{"format":"uri","type":"string"},"endpoints":{"additionalProperties":{"type":"string"},"type":"object"},"for_agents":{"type":"string"},"max_page_size":{"const":50},"name":{"type":"string"},"openapi":{"format":"uri","type":"string"},"published_reports":{"type":"integer"},"read_only":{"const":true}},"required":["api_version","coverage","endpoints"],"type":"object"},"Pagination":{"properties":{"limit":{"minimum":1,"type":"integer"},"next":{"format":"uri","type":["string","null"]},"page":{"minimum":1,"type":"integer"},"pages":{"minimum":1,"type":"integer"},"total":{"minimum":0,"type":"integer"}},"required":["total","page","limit","pages","next"],"type":"object"},"Problem":{"properties":{"detail":{"type":"string"},"status":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"}},"required":["type","title","status","detail"],"type":"object"},"ReportRecord":{"properties":{"api_version":{"const":"v1"},"data":{"$ref":"#/components/schemas/Article"}},"required":["api_version","data"],"type":"object"},"Reports":{"properties":{"api_version":{"const":"v1"},"data":{"items":{"$ref":"#/components/schemas/Article"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["api_version","data","pagination"],"type":"object"},"Source":{"properties":{"canonical_url":{"format":"uri","type":"string"},"excerpt":{"maxLength":220,"type":"string"},"id":{"type":"integer"},"identifiers":{"items":{"type":"string"},"type":"array"},"last_checked_at":{"description":"Unix timestamp in seconds, UTC; 0 means never checked.","minimum":0,"type":"integer"},"publisher":{"type":"string"},"source_published_at":{"type":["integer","null"]},"title":{"type":"string"}},"required":["id","title","publisher","canonical_url","excerpt"],"type":"object"},"Sources":{"properties":{"api_version":{"const":"v1"},"data":{"items":{"$ref":"#/components/schemas/Source"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["api_version","data","pagination"],"type":"object"}}},"externalDocs":{"url":"https://www.clawpit.io/egret/api"},"info":{"description":"Free, keyless, CORS-open, read-only local snapshots. Downloaded CISA KEV catalog plus CVEs identified in monitored sources; not the entire CVE universe. Enrichment may be incomplete. CVE data refresh is scheduled every six hours; failures retain the last successful snapshot. EPSS is a probability in [0,1], not evidence of exploitation. Unix timestamps are seconds; report timestamps are ISO 8601 UTC. Retain Egret and upstream source attribution. No live scraping or model invocation occurs on API requests.","title":"Egret Data API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/articles/{aid}.json":{"get":{"operationId":"getReport","parameters":[{"in":"path","name":"aid","required":true,"schema":{"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportRecord"}}},"description":"One published report"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"One published report"}},"/changes.json":{"get":{"operationId":"getChanges","parameters":[{"description":"","in":"query","name":"page","schema":{"default":1,"maximum":1000000,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"limit","schema":{"default":25,"maximum":50,"minimum":1,"type":"integer"}},{"description":"Up to 100 comma-separated CVE IDs. Empty string matches nothing.","in":"query","name":"ids","schema":{"maxLength":10000,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Changes"}}},"description":"Observed material CVE changes"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"Observed material CVE changes"}},"/cves.json":{"get":{"operationId":"getCVEs","parameters":[{"description":"","in":"query","name":"page","schema":{"default":1,"maximum":1000000,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"limit","schema":{"default":25,"maximum":50,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"q","schema":{"maxLength":160,"type":"string"}},{"description":"","in":"query","name":"kev","schema":{"enum":["","0","1"],"type":"string"}},{"description":"","in":"query","name":"severity","schema":{"enum":["","critical","high","medium","low","none"],"type":"string"}},{"description":"","in":"query","name":"scope","schema":{"enum":["","sources"],"type":"string"}},{"description":"","in":"query","name":"sort","schema":{"enum":["updated","epss","cvss"],"type":"string"}},{"description":"Up to 100 comma-separated CVE IDs. Empty string matches nothing.","in":"query","name":"ids","schema":{"maxLength":10000,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVEs"}}},"description":"Tracked CVEs, enriched from local upstream snapshots"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"Tracked CVEs, enriched from local upstream snapshots"}},"/cves/{cve}.json":{"get":{"operationId":"getCVE","parameters":[{"in":"path","name":"cve","required":true,"schema":{"pattern":"^CVE-[0-9]{4}-[0-9]{4,}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CVERecord"}}},"description":"One tracked CVE; missing enrichment stays null"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"One tracked CVE; missing enrichment stays null"}},"/index.json":{"get":{"operationId":"getIndex","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Index"}}},"description":"Coverage, freshness and endpoint catalog"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"Coverage, freshness and endpoint catalog"}},"/news.json":{"get":{"operationId":"getReports","parameters":[{"description":"","in":"query","name":"page","schema":{"default":1,"maximum":1000000,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"limit","schema":{"default":25,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reports"}}},"description":"Editorially approved and published Egret reports"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"Editorially approved and published Egret reports"}},"/sources.json":{"get":{"operationId":"getSources","parameters":[{"description":"","in":"query","name":"page","schema":{"default":1,"maximum":1000000,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"limit","schema":{"default":25,"maximum":50,"minimum":1,"type":"integer"}},{"description":"","in":"query","name":"q","schema":{"maxLength":160,"type":"string"}},{"description":"","in":"query","name":"publisher","schema":{"maxLength":160,"type":"string"}},{"description":"","in":"query","name":"window","schema":{"enum":["30","90","all"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sources"}}},"description":"Attributed discovery links, separate from reporting"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid query"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found"},"405":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Read-only API"}},"summary":"Attributed discovery links, separate from reporting"}}},"security":[],"servers":[{"url":"https://www.clawpit.io/api/v1"}]}
