{"openapi":"3.1.0","info":{"title":"Noevika API","description":"Noevika is a free, deduplicated public record of cybersecurity incidents — breaches, ransomware claims, exploited\nvulnerabilities and advisories — from government registries (CISA, HHS, state attorneys general, SEC) and security news.\n\n**Reads are public** (no key; wildcard CORS; please keep the attribution to the original publisher on every item).\n**Account routes** (`/me/…`) take an API key from Preferences → *API & MCP access* as `X-Api-Key: nvk_…` or\n`Authorization: Bearer nvk_…`; a key also raises `/incidents` page size to 500. The same record is available to AI\nassistants through the MCP endpoint `https://api.noevika.com/mcp` and the `noevika-mcp` package.\nRansomware *claims* are a group's assertions, not confirmed breaches.","contact":{"name":"Noevika","url":"https://noevika.com/developers/","email":"hello@noevika.com"},"license":{"name":"Apache-2.0 (code); data attributed to its publishers"},"version":"1.0.0"},"servers":[{"url":"https://api.noevika.com","description":"production"}],"paths":{"/incidents":{"get":{"summary":"Incidents","operationId":"incidents_incidents_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Before"}},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(added|reported)$","default":"added","title":"Sort"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(json|csv)$","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Incidents"]}},"/feed.xml":{"get":{"summary":"Feed All","description":"Atom feed of the deduplicated timeline. Optional ?sector= and ?type= filters.","operationId":"feed_all_feed_xml_get","parameters":[{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(added|reported)$","default":"added","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Feeds"]}},"/org/feed.xml":{"get":{"summary":"Feed Org","operationId":"feed_org_org_feed_xml_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120,"title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Feeds"]}},"/actor/feed.xml":{"get":{"summary":"Feed Actor","operationId":"feed_actor_actor_feed_xml_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":60,"title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Feeds"]}},"/incidents/search":{"get":{"summary":"Incidents Search","description":"Search recent incidents by title, organisation, threat actor, CVE id or summary (in-memory over the newest\n3,000 rows; see search.py). Public; cached briefly. Returned as a dict so FastAPI's encoder handles Decimals.","operationId":"incidents_search_incidents_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120,"title":"Q"}},{"name":"sector","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Incidents"]}},"/incidents/{incident_id}/ai":{"get":{"summary":"Incident Ai","description":"A5/A6: AI-drafted brief (known / unconfirmed / actions / quotes / sequence diagram). Cached; labelled.","operationId":"incident_ai_incidents__incident_id__ai_get","parameters":[{"name":"incident_id","in":"path","required":true,"schema":{"type":"string","title":"Incident Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Incidents"]}},"/incidents/{incident_id}":{"get":{"summary":"Incident","operationId":"incident_incidents__incident_id__get","parameters":[{"name":"incident_id","in":"path","required":true,"schema":{"type":"string","title":"Incident Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Incidents"]}},"/trends":{"get":{"summary":"Trends Range","description":"Aggregates over a preset period or a custom start/end (inclusive, ≤ 366 days), plus the period before it.","operationId":"trends_range_trends_get","parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(week|2weeks|month|quarter|half|year)$","default":"week","title":"Period"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}],"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Trends"]}},"/actors":{"get":{"summary":"Actors","operationId":"actors_actors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["Threat actors"],"parameters":[]}},"/actor":{"get":{"summary":"Actor","operationId":"actor_actor_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":60,"title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Threat actors"]}},"/orgs":{"get":{"summary":"Orgs","operationId":"orgs_orgs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["Organisations"],"parameters":[]}},"/orgs/suggest":{"get":{"summary":"Orgs Suggest","description":"Type-ahead over the organisation directory plus a curated vendor list (never other users' entries).","operationId":"orgs_suggest_orgs_suggest_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":120,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":8,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Organisations"]}},"/org":{"get":{"summary":"Org","operationId":"org_org_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120,"title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Organisations"]}},"/me":{"get":{"summary":"Me","operationId":"me_me_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"patch":{"summary":"Update Me","operationId":"update_me_me_patch","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreferencesUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/vendors":{"get":{"summary":"My Vendors","operationId":"my_vendors_me_vendors_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/vendors/check":{"post":{"summary":"Check Vendors","description":"Typo check before import: per name → exact (canonical form), close (did-you-mean) or none.","operationId":"check_vendors_me_vendors_check_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/vendors/import":{"post":{"summary":"Import Vendors","description":"Bulk-add vendors (watched organisations flagged as vendors). Duplicates by normalised name are merged.","operationId":"import_vendors_me_vendors_import_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/vendors/{key}":{"delete":{"summary":"Remove Vendor","operationId":"remove_vendor_me_vendors__key__delete","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/vendors/report":{"get":{"summary":"Vendor Report","description":"Monthly vendor report: for each vendor, incidents published in the month (default: previous month). ?format=csv downloads.","operationId":"vendor_report_me_vendors_report_get","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}$"},{"type":"null"}],"title":"Month"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(json|csv)$","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/vendors/report/send":{"post":{"summary":"Vendor Report Send","description":"B5: email the report now (what the 1st-of-month run sends), with the PDF attached. At most one every 10 minutes.","operationId":"vendor_report_send_me_vendors_report_send_post","parameters":[{"name":"month","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}$"},{"type":"null"}],"title":"Month"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/keys":{"get":{"summary":"My Keys","description":"Your API keys (prefix, label, dates) with calls per day for the last 7 days.","operationId":"my_keys_me_keys_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"post":{"summary":"Create Key","operationId":"create_key_me_keys_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/keys/{prefix}":{"delete":{"summary":"Revoke Key","operationId":"revoke_key_me_keys__prefix__delete","parameters":[{"name":"prefix","in":"path","required":true,"schema":{"type":"string","title":"Prefix"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/watchlist":{"get":{"summary":"My Watchlist","operationId":"my_watchlist_me_watchlist_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/watchlist/orgs":{"post":{"summary":"Watch Org","operationId":"watch_org_me_watchlist_orgs_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchOrgRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/watchlist/orgs/{key}":{"delete":{"summary":"Unwatch Org","operationId":"unwatch_org_me_watchlist_orgs__key__delete","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/watchlist/keywords":{"post":{"summary":"Watch Keyword","operationId":"watch_keyword_me_watchlist_keywords_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchKeywordRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/me/watchlist/keywords/{keyword}":{"delete":{"summary":"Unwatch Keyword","operationId":"unwatch_keyword_me_watchlist_keywords__keyword__delete","parameters":[{"name":"keyword","in":"path","required":true,"schema":{"type":"string","title":"Keyword"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/unsubscribe":{"get":{"summary":"Unsubscribe","operationId":"unsubscribe_unsubscribe_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Incidents"]},"post":{"summary":"Unsubscribe","operationId":"unsubscribe_unsubscribe_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Incidents"]}},"/me/identities":{"get":{"summary":"Me Identities","description":"Return which OIDC providers are linked to this account.","operationId":"me_identities_me_identities_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Account"],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}}},"components":{"schemas":{"Frequency":{"type":"string","enum":["daily","weekly","off"],"title":"Frequency"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IncidentRequest":{"properties":{"incident_id":{"type":"string","maxLength":64,"minLength":8,"title":"Incident Id"}},"type":"object","required":["incident_id"],"title":"IncidentRequest"},"PreferencesUpdate":{"properties":{"first_name":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Last Name"},"frequency":{"anyOf":[{"$ref":"#/components/schemas/Frequency"},{"type":"null"}]},"sectors":{"anyOf":[{"items":{"$ref":"#/components/schemas/Sector"},"type":"array"},{"type":"null"}],"title":"Sectors"},"send_hour_utc":{"anyOf":[{"type":"integer","maximum":23.0,"minimum":0.0},{"type":"null"}],"title":"Send Hour Utc"},"send_weekday":{"anyOf":[{"type":"integer","maximum":6.0,"minimum":0.0},{"type":"null"}],"title":"Send Weekday"},"alerts_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Alerts Enabled"},"webhook_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Webhook Url"},"webhook_digest":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Webhook Digest"},"webhook_alerts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Webhook Alerts"},"vendor_report_email":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Vendor Report Email"}},"type":"object","title":"PreferencesUpdate"},"RevealRequest":{"properties":{"uids":{"items":{"type":"string"},"type":"array","maxItems":200,"minItems":1,"title":"Uids"},"reason":{"type":"string","maxLength":200,"title":"Reason","default":""}},"type":"object","required":["uids"],"title":"RevealRequest"},"Sector":{"type":"string","enum":["healthcare","finance","government","education","technology","manufacturing","retail","energy","telecom","transportation","hospitality","media","professional","construction","nonprofit","defense","agriculture","other"],"title":"Sector"},"SetRoleRequest":{"properties":{"uid":{"type":"string","maxLength":120,"minLength":8,"title":"Uid"},"role":{"type":"string","pattern":"^(admin|user)$","title":"Role"}},"type":"object","required":["uid","role"],"title":"SetRoleRequest"},"SignupRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"first_name":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Last Name"},"accept_terms":{"type":"boolean","title":"Accept Terms"},"consent_email":{"type":"boolean","title":"Consent Email"},"frequency":{"$ref":"#/components/schemas/Frequency","default":"weekly"},"sectors":{"items":{"$ref":"#/components/schemas/Sector"},"type":"array","title":"Sectors"}},"type":"object","required":["email","accept_terms","consent_email"],"title":"SignupRequest"},"UidRequest":{"properties":{"uid":{"type":"string","maxLength":120,"minLength":8,"title":"Uid"}},"type":"object","required":["uid"],"title":"UidRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VendorImportRequest":{"properties":{"names":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Names"}},"type":"object","required":["names"],"title":"VendorImportRequest","description":"Names pasted or parsed from a CSV client-side; one vendor per entry, optional 'name | note'."},"VerifyRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"code":{"type":"string","maxLength":6,"minLength":6,"pattern":"^\\d{6}$","title":"Code"}},"type":"object","required":["email","code"],"title":"VerifyRequest"},"WatchKeywordRequest":{"properties":{"keyword":{"type":"string","maxLength":40,"minLength":3,"title":"Keyword"}},"type":"object","required":["keyword"],"title":"WatchKeywordRequest"},"WatchOrgRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":2,"title":"Name"}},"type":"object","required":["name"],"title":"WatchOrgRequest"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Personal key from Preferences → API & MCP access (nvk_…)."},"BearerAuth":{"type":"http","scheme":"bearer","description":"The same key as a bearer token."}}},"tags":[{"name":"Incidents","description":"The deduplicated timeline: list, search, detail, AI brief, standards map."},{"name":"Organisations","description":"Every report about one entity on a single timeline, and the directory."},{"name":"Threat actors","description":"Ransomware / extortion groups: claims by sector and month."},{"name":"Trends","description":"Counts over any range from daily rollups."},{"name":"Feeds","description":"Atom feeds of the record, a sector, an organisation or an actor."},{"name":"Account","description":"Preferences, watchlist, vendors and API keys for the signed-in user (session or API key)."}]}