{"openapi":"3.1.0","info":{"title":"Dragons Eye Cybersecurity Hub API","version":"1.0.0","description":"Read-only public API for the cybersecurity hub on ransomware-tracker.com. Records are observations from public reporting across ten layers; they are not confirmed incidents, collection time is not incident time, and shared identifiers do not establish attribution. Counts describe overlapping observation records and retained history, not unique incidents."},"servers":[{"url":"https://ransomware-tracker.com/api/cyberhub"}],"paths":{"/status":{"get":{"operationId":"cyberhub_status","summary":"Hub status and dataset identity","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats":{"get":{"operationId":"cyberhub_stats","summary":"Record totals, counts per kind and layer descriptions","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Statistics"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events":{"get":{"operationId":"cyberhub_events","summary":"Search observation records across all layers","parameters":[{"name":"layer","in":"query","required":false,"schema":{"type":"string","enum":["all","ransomware","vulnerabilities","indicators","phishing","malware","supply_chain","network","ai_security","news","research"],"description":"Intelligence layer to search, or all."}},{"name":"query","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"Free-text search, 1-256 characters."}},{"name":"cve","in":"query","required":false,"schema":{"type":"string","pattern":"^[Cc][Vv][Ee]-[0-9]{4}-[0-9]{4,19}$","description":"Exact CVE identifier, for example CVE-2024-3400."}},{"name":"active","in":"query","required":false,"schema":{"oneOf":[{"type":"boolean"},{"type":"string","const":"all"}],"description":"true for current records only (default for search), false for inactive, or \"all\"."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Page size, 1-200."}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"Opaque next_cursor from the previous page of the same query. Pass it back unchanged."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/indicators":{"get":{"operationId":"cyberhub_indicators","summary":"Exact indicator lookup","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"The exact indicator value."}},{"name":"active","in":"query","required":false,"schema":{"oneOf":[{"type":"boolean"},{"type":"string","const":"all"}],"description":"true for current records only (default for search), false for inactive, or \"all\"."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Page size, 1-200."}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"Opaque next_cursor from the previous page of the same query. Pass it back unchanged."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/vulnerabilities":{"get":{"operationId":"cyberhub_vulnerabilities","summary":"Vulnerability records","parameters":[{"name":"cve","in":"query","required":false,"schema":{"type":"string","pattern":"^[Cc][Vv][Ee]-[0-9]{4}-[0-9]{4,19}$","description":"Exact CVE identifier, for example CVE-2024-3400."}},{"name":"exploited_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only vulnerabilities known to be exploited."}},{"name":"active","in":"query","required":false,"schema":{"oneOf":[{"type":"boolean"},{"type":"string","const":"all"}],"description":"true for current records only (default for search), false for inactive, or \"all\"."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Page size, 1-200."}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"Opaque next_cursor from the previous page of the same query. Pass it back unchanged."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/related":{"get":{"operationId":"cyberhub_related","summary":"Records related to exactly one CVE or indicator","parameters":[{"name":"cve","in":"query","required":false,"schema":{"type":"string","pattern":"^[Cc][Vv][Ee]-[0-9]{4}-[0-9]{4,19}$","description":"Exact CVE identifier, for example CVE-2024-3400."}},{"name":"indicator","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"The exact indicator value."}},{"name":"active","in":"query","required":false,"schema":{"oneOf":[{"type":"boolean"},{"type":"string","const":"all"}],"description":"true for current records only (default for search), false for inactive, or \"all\"."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Page size, 1-200."}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"Opaque next_cursor from the previous page of the same query. Pass it back unchanged."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Related"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/exports":{"get":{"operationId":"cyberhub_exports","summary":"Download one page of records in an export format","parameters":[{"name":"format","in":"query","required":true,"schema":{"type":"string","enum":["json","ndjson","csv","stix","misp"],"description":"Export format."}},{"name":"layer","in":"query","required":false,"schema":{"type":"string","enum":["all","ransomware","vulnerabilities","indicators","phishing","malware","supply_chain","network","ai_security","news","research"],"description":"Intelligence layer to search, or all."}},{"name":"query","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"Free-text search, 1-256 characters."}},{"name":"cve","in":"query","required":false,"schema":{"type":"string","pattern":"^[Cc][Vv][Ee]-[0-9]{4}-[0-9]{4,19}$","description":"Exact CVE identifier, for example CVE-2024-3400."}},{"name":"active","in":"query","required":false,"schema":{"oneOf":[{"type":"boolean"},{"type":"string","const":"all"}],"description":"true for current records only (default for search), false for inactive, or \"all\"."}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Page size, 1-200."}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"Opaque next_cursor from the previous page of the same query. Pass it back unchanged."}}],"responses":{"200":{"description":"One page of records as a file download. Pagination is in the X-Cyberhub-Has-More and X-Cyberhub-Next-Cursor headers; X-Cyberhub-Complete-Dataset is always false.","content":{"application/json":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}},"text/csv":{"schema":{"type":"string"}},"application/stix+json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/snapshots":{"get":{"operationId":"cyberhub_snapshots","summary":"Completed full-dataset snapshots","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotList"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/snapshot-chunk":{"get":{"operationId":"cyberhub_snapshot_chunk","summary":"One verified base64 chunk of a snapshot file","parameters":[{"name":"artifact_id","in":"query","required":true,"schema":{"type":"string","pattern":"^snap_[0-9a-f]{32}\\.(ndjson|csv|stix|misp)$","description":"Snapshot file identifier from /snapshots."}},{"name":"offset","in":"query","required":true,"schema":{"type":"integer","minimum":0,"description":"Byte offset; start at 0, then use next_offset."}},{"name":"length","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":524288,"description":"Bytes to read, at most 524288."}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotChunk"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/snapshot-download":{"get":{"operationId":"cyberhub_snapshot_download","summary":"Download one complete snapshot file (gzip), verified chunk by chunk","parameters":[{"name":"artifact_id","in":"query","required":true,"schema":{"type":"string","pattern":"^snap_[0-9a-f]{32}\\.(ndjson|csv|stix|misp)$"}}],"description":"Files up to 2 GiB are streamed (larger ones answer 413). 2 downloads run at a time site-wide (503 with Retry-After when full) and 1 per address (429 while one is running). Each download must finish within 5 minutes plus the file size at 256 KiB/s, at most 3 hours, and is stopped after 60 seconds without progress. Content-Length and X-Cyberhub-Sha256 are sent before the body; a transfer that fails verification, stalls or runs out of time is cut short, so check the length and SHA-256 before use. Ranges and resuming are not supported.","responses":{"200":{"description":"The gzip file. If any chunk or the final SHA-256 fails verification the transfer is cut short, so an incomplete file never looks complete.","headers":{"Content-Length":{"schema":{"type":"integer"}},"X-Cyberhub-Sha256":{"schema":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"content":{"application/gzip":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid, unknown or repeated parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"File larger than the download limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Upstream answer failed verification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Hub not connected and no snapshot to fall back on","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Hub did not answer in time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/mcp":{"post":{"operationId":"cyberhub_mcp","summary":"MCP endpoint (Streamable HTTP, JSON responses, protocol 2025-06-18)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"One JSON-RPC 2.0 message, at most 16 KiB."}}}},"responses":{"200":{"description":"JSON-RPC response","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"Notification accepted"},"400":{"description":"Malformed message, batch, or unsupported protocol version"},"403":{"description":"Browser origin not allowed"},"413":{"description":"Message larger than 16 KiB"},"415":{"description":"Content-Type is not application/json"}}}},"/openapi.json":{"get":{"operationId":"cyberhub_openapi","summary":"This document","responses":{"200":{"description":"OpenAPI 3.1"}}}},"/llms.txt":{"get":{"operationId":"cyberhub_llms","summary":"Plain-text guide for language-model agents","responses":{"200":{"description":"Markdown text"}}}}},"components":{"schemas":{"Delivery":{"type":"object","description":"How this answer was delivered. state 'cached' is a dated last-good snapshot served while the live connection is unavailable; it is stale after 900 seconds.","required":["state","relay","cache","snapshot_generated_at","snapshot_received_at","snapshot_age_seconds","stale","degraded","reason","served_at"],"properties":{"state":{"type":"string","enum":["live","cached","unavailable"]},"relay":{"type":"string","enum":["connected","disconnected"]},"cache":{"type":"string","enum":["none","hit","miss"]},"snapshot_generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"snapshot_received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"snapshot_age_seconds":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"stale":{"type":"boolean"},"degraded":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"served_at":{"type":"string","format":"date-time"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"parameter":{"type":"string"},"reason":{"type":"string"},"delivery":{"$ref":"#/components/schemas/Delivery"}}},"Indicator":{"type":"object","required":["type","value","display"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"display":{"type":"string","description":"Defanged form. Show as plain text, never as a link."}}},"Facts":{"type":"object","description":"Every key is always present; null means the hub did not report it.","required":["known_exploited","ransomware_use","severity","cvss_score","epss","vendor","product","group","sector","required_action","country","due_date"],"properties":{"known_exploited":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"ransomware_use":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"severity":{"anyOf":[{"type":"string"},{"type":"null"}]},"cvss_score":{"anyOf":[{"type":"number"},{"type":"null"}]},"epss":{"anyOf":[{"type":"number"},{"type":"null"}]},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}]},"product":{"anyOf":[{"type":"string"},{"type":"null"}]},"group":{"anyOf":[{"type":"string"},{"type":"null"}]},"sector":{"anyOf":[{"type":"string"},{"type":"null"}]},"required_action":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"Record":{"type":"object","required":["id","kind","layer","title","summary","indicator","cves","facts","published_at","occurred_at","first_observed_at","last_observed_at","expires_at","active","observation_status","collection_status","record_semantics"],"properties":{"id":{"type":"string","pattern":"^hub_[0-9a-f]{64}$"},"kind":{"type":"string"},"layer":{"type":"string","enum":["ransomware","vulnerabilities","indicators","phishing","malware","supply_chain","network","ai_security","news","research"]},"title":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"indicator":{"anyOf":[{"$ref":"#/components/schemas/Indicator"},{"type":"null"}]},"cves":{"type":"array","items":{"type":"string"}},"facts":{"$ref":"#/components/schemas/Facts"},"published_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"occurred_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"first_observed_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_observed_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"active":{"type":"boolean"},"observation_status":{"type":"string","enum":["current","withdrawn","expired"]},"collection_status":{"type":"string","enum":["current","delayed","unknown"]},"record_semantics":{"type":"string","enum":["report_version","context_observation","intelligence_observation"]}}},"Page":{"type":"object","required":["schema_version","dataset_id","observed_at","items","limit","has_more","next_cursor","delivery"],"properties":{"schema_version":{"type":"string"},"dataset_id":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Record"}},"limit":{"type":"integer"},"has_more":{"type":"boolean"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string","description":"Short description of what the page covers."},{"type":"null"}]},"match_type":{"anyOf":[{"type":"string","enum":["exact"],"description":"Indicator lookups only."},{"type":"null"}]},"value":{"anyOf":[{"type":"string","description":"Indicator lookups only: the value looked up."},{"type":"null"}]},"warning":{"anyOf":[{"type":"string","description":"Indicator lookups only."},{"type":"null"}]},"priority_scope":{"anyOf":[{"type":"string","description":"Vulnerability reads only."},{"type":"null"}]},"delivery":{"$ref":"#/components/schemas/Delivery"}}},"Statistics":{"type":"object","description":"Counts are overlapping observation records and retained history, not unique incidents. record_count_unit is the hub's own statement of what a counted record is, unshortened.","required":["schema_version","dataset_id","observed_at","statistics_as_of","statistics_age_seconds","statistics_stale","records","by_kind","layers","record_count_unit","active_count_scope","delivery"],"properties":{"schema_version":{"type":"string"},"dataset_id":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"statistics_as_of":{"anyOf":[{"type":"string"},{"type":"null"}]},"statistics_age_seconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"statistics_stale":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"records":{"type":"object","required":["total_records","active_records","indicator_records","newest_first_seen_at","latest_observed_at","newest_publication_at"],"properties":{"total_records":{"anyOf":[{"type":"integer"},{"type":"null"}]},"active_records":{"anyOf":[{"type":"integer"},{"type":"null"}]},"indicator_records":{"anyOf":[{"type":"integer"},{"type":"null"}]},"newest_first_seen_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"latest_observed_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"newest_publication_at":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"by_kind":{"type":"array","description":"Record counts per record kind.","items":{"type":"object","required":["kind","records"],"properties":{"kind":{"type":"string"},"records":{"type":"integer","minimum":0}}}},"layers":{"type":"array","description":"Descriptions of the layers. These are metadata, not counts; there are no per-layer counts.","items":{"type":"object","required":["id","label","description"],"properties":{"id":{"type":"string","enum":["ransomware","vulnerabilities","indicators","phishing","malware","supply_chain","network","ai_security","news","research"]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"record_count_unit":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"active_count_scope":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"delivery":{"$ref":"#/components/schemas/Delivery"}}},"Status":{"type":"object","required":["schema_version","dataset_id","observed_at","status","statistics","delivery"],"properties":{"schema_version":{"type":"string"},"dataset_id":{"anyOf":[{"type":"string","description":"Null before the hub has a first dataset."},{"type":"null"}]},"observed_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["operational","degraded","unavailable"]},"storage":{"type":"object","additionalProperties":{"type":"boolean"}},"collection":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},"statistics":{"type":"object","description":"Freshness of the statistics only; counts are at /stats.","required":["as_of","stale"],"properties":{"as_of":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"stale":{"anyOf":[{"type":"boolean"},{"type":"null"}]}}},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"delivery":{"$ref":"#/components/schemas/Delivery"}}},"Related":{"type":"object","required":["schema_version","dataset_id","observed_at","identifier","identifier_id","items","relationships","has_more","next_cursor","delivery"],"properties":{"schema_version":{"type":"string"},"dataset_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"observed_at":{"type":"string","format":"date-time"},"identifier":{"type":"object","description":"The CVE or indicator looked up, exactly as matched.","required":["type","value"],"properties":{"type":{"type":"string","enum":["cve","indicator"]},"value":{"type":"string"}}},"identifier_id":{"anyOf":[{"type":"string","description":"Relationship end that stands for the identifier."},{"type":"null"}]},"items":{"type":"array","items":{"$ref":"#/components/schemas/Record"}},"relationships":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"type":{"type":"string","enum":["references_cve","observes_indicator"]}}}},"has_more":{"type":"boolean"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"delivery":{"$ref":"#/components/schemas/Delivery"}}},"SnapshotList":{"type":"object","required":["schema_version","observed_at","items","delivery"],"properties":{"schema_version":{"type":"string"},"observed_at":{"type":"string","format":"date-time"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["schema_version","dataset_id","snapshot_id","captured_at","completed_at","record_count","complete_dataset","selection","files"],"properties":{"schema_version":{"type":"string"},"dataset_id":{"type":"string"},"snapshot_id":{"type":"string"},"captured_at":{"type":"string","format":"date-time"},"completed_at":{"type":"string","format":"date-time"},"record_count":{"type":"integer"},"complete_dataset":{"type":"boolean","const":true},"selection":{"type":"string","enum":["all","current"]},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"limits":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"files":{"type":"array","items":{"type":"object","required":["artifact_id","format","filename","bytes","sha256","compression","content_type","decoded_content_type"],"properties":{"artifact_id":{"type":"string"},"format":{"type":"string","enum":["ndjson","csv","stix","misp"]},"filename":{"type":"string"},"bytes":{"type":"integer"},"sha256":{"type":"string"},"compression":{"type":"string","const":"gzip"},"content_type":{"type":"string","const":"application/gzip"},"decoded_content_type":{"type":"string","description":"Media type of the decompressed file, possibly with parameters such as charset or version."}}}}}}},"delivery":{"$ref":"#/components/schemas/Delivery"}}},"SnapshotChunk":{"type":"object","required":["schema_version","artifact_id","offset","next_offset","total_bytes","eof","sha256","chunk_sha256","encoding","content","delivery"],"properties":{"schema_version":{"type":"string"},"artifact_id":{"type":"string"},"offset":{"type":"integer"},"next_offset":{"type":"integer"},"total_bytes":{"type":"integer"},"eof":{"type":"boolean"},"sha256":{"type":"string","description":"SHA-256 of the whole compressed file."},"chunk_sha256":{"type":"string"},"encoding":{"type":"string","const":"base64"},"content":{"type":"string"},"delivery":{"$ref":"#/components/schemas/Delivery"}}}}}}