{"openapi":"3.1.0","info":{"title":"Basis Protocol API","description":"Standardized risk surfaces for on-chain finance","version":"1.0.0"},"paths":{"/api/receipts/verify":{"post":{"tags":["receipts"],"summary":"Verify Receipt Endpoint","description":"Holder-independence path: supply uuid + salt + payload; the hub\nrecomputes the commitment and confirms it against the on-chain slot.","operationId":"verify_receipt_endpoint_api_receipts_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyReceiptRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/operators":{"get":{"tags":["operators"],"summary":"List Operators","operationId":"list_operators_api_operators_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","title":"Kind"}},{"name":"venue","in":"query","required":false,"schema":{"type":"string","title":"Venue"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/operators/{slug}":{"get":{"tags":["operators"],"summary":"Get Operator","operationId":"get_operator_api_operators__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tti/roster":{"get":{"tags":["tti"],"summary":"Tti Roster","operationId":"tti_roster_api_tti_roster_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/operators/{slug}/conformance":{"get":{"tags":["operators"],"summary":"Get Conformance","operationId":"get_conformance_api_operators__slug__conformance_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tsv/venues":{"get":{"tags":["tsv"],"summary":"List Venues","operationId":"list_venues_api_tsv_venues_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tsv/venues/{slug}":{"get":{"tags":["tsv"],"summary":"Get Venue","operationId":"get_venue_api_tsv_venues__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tsv/halts":{"get":{"tags":["tsv"],"summary":"List Halts","operationId":"list_halts_api_tsv_halts_get","parameters":[{"name":"ticker","in":"query","required":false,"schema":{"type":"string","title":"Ticker"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/venue-shift/{operator_slug}/page":{"get":{"tags":["venue-shift","venue-shift"],"summary":"Venue Shift Page","operationId":"venue_shift_page_api_venue_shift__operator_slug__page_get","parameters":[{"name":"operator_slug","in":"path","required":true,"schema":{"type":"string","title":"Operator Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/venue-shift":{"get":{"tags":["venue-shift"],"summary":"List Findings","operationId":"list_findings_api_venue_shift_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/venue-shift/{operator_slug}":{"get":{"tags":["venue-shift"],"summary":"Get Finding","operationId":"get_finding_api_venue_shift__operator_slug__get","parameters":[{"name":"operator_slug","in":"path","required":true,"schema":{"type":"string","title":"Operator Slug"}},{"name":"history","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"History"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/morpho/vaults/cards":{"get":{"tags":["morpho"],"summary":"List Cards","operationId":"list_cards_api_morpho_vaults_cards_get","parameters":[{"name":"chain_id","in":"query","required":false,"schema":{"type":"integer","title":"Chain Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/morpho/vaults/{chain_id}/{vault}/card":{"get":{"tags":["morpho"],"summary":"Get Card","operationId":"get_card_api_morpho_vaults__chain_id___vault__card_get","parameters":[{"name":"chain_id","in":"path","required":true,"schema":{"type":"integer","title":"Chain Id"}},{"name":"vault","in":"path","required":true,"schema":{"type":"string","title":"Vault"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/morpho/vaults/{chain_id}/{vault}/drift":{"get":{"tags":["morpho"],"summary":"Get Drift","operationId":"get_drift_api_morpho_vaults__chain_id___vault__drift_get","parameters":[{"name":"chain_id","in":"path","required":true,"schema":{"type":"integer","title":"Chain Id"}},{"name":"vault","in":"path","required":true,"schema":{"type":"string","title":"Vault"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/asset-footprint/{token_or_symbol}":{"get":{"tags":["asset-footprint"],"summary":"Get Footprint","operationId":"get_footprint_api_asset_footprint__token_or_symbol__get","parameters":[{"name":"token_or_symbol","in":"path","required":true,"schema":{"type":"string","title":"Token Or Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/receipts/{receipt_uuid}/status":{"get":{"tags":["receipt-share"],"summary":"Receipt Status","description":"Public attestation status for a receipt uuid.\n\nDiscloses ONLY: attested (a receipt:v1 attestation row exists),\nattested_at, the stored commitment (unprefixed 64-hex, as\nattested), and the oracle read {checked, match|reason}. This does\nNOT run the salt-based recomputation — that requires the pre-image,\nwhich is never disclosed. What this confirms: the commitment is on\nthe hub's attested record. Holder-independent verification requires\nthe receipt holder's salt via POST /api/receipts/verify.","operationId":"receipt_status_api_receipts__receipt_uuid__status_get","parameters":[{"name":"receipt_uuid","in":"path","required":true,"schema":{"type":"string","title":"Receipt Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/receipts/lookup/{key}":{"get":{"tags":["receipt-lookup"],"summary":"Receipt Lookup","operationId":"receipt_lookup_api_receipts_lookup__key__get","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"}}}}}}},"/api/record":{"get":{"tags":["record"],"summary":"Api Record","operationId":"api_record_api_record_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/heartbeat":{"post":{"tags":["provenance"],"summary":"Provenance Heartbeat","operationId":"provenance_heartbeat_api_provenance_heartbeat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/oracle/keeper-status":{"get":{"summary":"Oracle Keeper Status","description":"Per-chain oracle address + publish status (trailing 7 days).","operationId":"oracle_keeper_status_api_oracle_keeper_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sii/publication-count":{"get":{"summary":"Sii Publication Count","operationId":"sii_publication_count_api_sii_publication_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/exit-capacity":{"get":{"summary":"Exit Capacity Json","operationId":"exit_capacity_json_api_exit_capacity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/liquidity-depth/{asset_id}":{"get":{"tags":["liquidity-depth"],"summary":"Get Liquidity Depth History","operationId":"get_liquidity_depth_history_api_liquidity_depth__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","title":"Asset Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/refusals":{"get":{"summary":"Api Refusals","operationId":"api_refusals_api_refusals_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since"}},{"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"}}}}}}},"/api/health":{"get":{"summary":"Get Health","description":"Liveness + DB-reachability probe. Trivial by design — returns in\nwell under 100ms. For the full per-domain integrity status, use\n/api/health/deep.","operationId":"get_health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health/deep":{"get":{"summary":"Get Health Deep","description":"Full system health — the integrity layer across every domain.\nHeavier than /api/health (runs check_all over all domains); cached\n60s. Not for liveness polling.","operationId":"get_health_deep_api_health_deep_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health/keeper":{"get":{"summary":"Get Keeper Health","description":"Dead-man-switch for keeper liveness. Returns 200 if keeper has run\nwithin 2h, 503 if stale. External monitoring hits this every 5 min.","operationId":"get_keeper_health_api_health_keeper_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/integrity":{"get":{"summary":"Get Integrity","description":"Full data integrity status across all domains.\n\nReads the latest snapshot the worker's periodic cycle already computed\nand stored in integrity_checks, rather than recomputing every domain\ninline — the inline path included several COUNT(*)/COUNT(DISTINCT)\nqueries over multi-million-row wallet_graph tables and could take\n9s-5min on a cache miss (Railway edge logs showed browser 499s on this\npath). Falls back to a live compute only if no cycle has ever stored\na snapshot (fresh deploy).","operationId":"get_integrity_api_integrity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/integrity/history":{"get":{"summary":"Get Integrity History Endpoint","description":"Integrity check history for trending analysis.","operationId":"get_integrity_history_endpoint_api_integrity_history_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/integrity/{domain}":{"get":{"summary":"Get Integrity Domain","description":"Data integrity status for a specific domain.","operationId":"get_integrity_domain_api_integrity__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/coherence/latest":{"get":{"summary":"Get Coherence Latest","description":"Most recent cross-domain coherence report.","operationId":"get_coherence_latest_api_coherence_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/coherence/history":{"get":{"summary":"Get Coherence History","description":"Recent coherence reports.","operationId":"get_coherence_history_api_coherence_history_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scores":{"get":{"summary":"Get Scores","description":"Get current SII scores for all stablecoins.","operationId":"get_scores_api_scores_get","parameters":[{"name":"methodology_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Methodology Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scores/{coin}":{"get":{"summary":"Get Score Detail","description":"Get detailed SII score breakdown for a specific stablecoin.","operationId":"get_score_detail_api_scores__coin__get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"methodology_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Methodology Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scores/{coin}/history":{"get":{"summary":"Get Score History","description":"Get historical SII scores for a stablecoin.","operationId":"get_score_history_api_scores__coin__history_get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scores/{coin}/recent":{"get":{"summary":"Get Recent Scores","description":"Lightweight recent score history for trend display (e.g. 7-day sparkline).","operationId":"get_recent_scores_api_scores__coin__recent_get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scores/{coin}/at/{target_date}":{"get":{"summary":"Score At Date","description":"Reconstruct SII score at a specific historical date.\nSync handler — FastAPI runs in threadpool to avoid blocking the event loop.","operationId":"score_at_date_api_scores__coin__at__target_date__get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"target_date","in":"path","required":true,"schema":{"type":"string","title":"Target Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scores/{coin}/range":{"get":{"summary":"Score Range","description":"Reconstruct SII scores for a date range (max 365 days).\nSync handler — FastAPI runs in threadpool.","operationId":"score_range_api_scores__coin__range_get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"Start date YYYY-MM-DD","title":"From"},"description":"Start date YYYY-MM-DD"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"End date YYYY-MM-DD","title":"To"},"description":"End date YYYY-MM-DD"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/backtest/{coin}":{"get":{"summary":"Backtest Event","description":"Reconstruct scores across a named crisis event window.\nSync handler — FastAPI runs in threadpool.","operationId":"backtest_event_api_backtest__coin__get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"event","in":"query","required":true,"schema":{"type":"string","description":"Named crisis event ID","title":"Event"},"description":"Named crisis event ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compare":{"get":{"summary":"Compare Scores","description":"Compare SII scores for multiple stablecoins.","operationId":"compare_scores_api_compare_get","parameters":[{"name":"coins","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated stablecoin IDs","examples":["usdc,usdt,dai"],"title":"Coins"},"description":"Comma-separated stablecoin IDs"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/methodology":{"get":{"summary":"Get Methodology","description":"Get the SII methodology — formula, weights, and component specifications.","operationId":"get_methodology_api_methodology_get","parameters":[{"name":"methodology_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Methodology Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/indices":{"get":{"summary":"Get All Indices","description":"Return all registered index definitions for the methodology page.","operationId":"get_all_indices_api_indices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/methodology/versions":{"get":{"summary":"Get Methodology Versions","description":"Get methodology version history, governance rules, and wallet scoring versions.","operationId":"get_methodology_versions_api_methodology_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/methodology/hashes":{"get":{"summary":"Public List Methodology Hashes","description":"List all registered methodology hashes (no content — use detail endpoint for full content).","operationId":"public_list_methodology_hashes_api_methodology_hashes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/methodology/hashes/{methodology_id}":{"get":{"summary":"Public Get Methodology Hash","description":"Get a single methodology including full content.","operationId":"public_get_methodology_hash_api_methodology_hashes__methodology_id__get","parameters":[{"name":"methodology_id","in":"path","required":true,"schema":{"type":"string","title":"Methodology Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config":{"get":{"summary":"Get Config","description":"Get the stablecoin registry configuration (every published scoring-enabled registry row).","operationId":"get_config_api_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/namespace":{"get":{"summary":"Get Namespace","description":"Addressing namespace specification for Basis Protocol URLs.","operationId":"get_namespace_api_namespace_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/events":{"get":{"summary":"Get Events","description":"Get crisis events and annotations timeline.","operationId":"get_events_api_events_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/deviations/{coin}":{"get":{"summary":"Get Deviations","description":"Get historical peg deviation events for a stablecoin.","operationId":"get_deviations_api_deviations__coin__get","parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string","title":"Coin"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/cda/test-vendors":{"get":{"summary":"Test Vendors","description":"Test both vendor integrations. For development only.","operationId":"test_vendors_api_cda_test_vendors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cda/issuer-registry":{"get":{"summary":"Get Issuer Registry","description":"Return current CDA issuer registry.","operationId":"get_issuer_registry_api_cda_issuer_registry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cda/quality":{"get":{"summary":"Cda Quality","description":"Data quality dashboard — freshness, confidence, and status per issuer.","operationId":"cda_quality_api_cda_quality_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cda/attestations/{asset_symbol}":{"get":{"summary":"Cda Attestations","description":"Extraction history for one asset (reconciliation-gated).","operationId":"cda_attestations_api_cda_attestations__asset_symbol__get","parameters":[{"name":"asset_symbol","in":"path","required":true,"schema":{"type":"string","title":"Asset Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cda/monitors":{"get":{"summary":"Get Monitors","description":"List active CDA monitor watches.","operationId":"get_monitors_api_cda_monitors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cda":{"get":{"summary":"Cda Overview","description":"Public documentation/overview of the CDA evidence layer.","operationId":"cda_overview_api_cda_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cda/issuers":{"get":{"summary":"Cda Issuers","description":"List all CDA-tracked issuers with last verification and source update timestamps.","operationId":"cda_issuers_api_cda_issuers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cda/issuers/{symbol}/latest":{"get":{"summary":"Cda Issuer Latest","description":"Most recent attestation for a specific issuer, with evidence hash.","operationId":"cda_issuer_latest_api_cda_issuers__symbol__latest_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cda/issuers/{symbol}/history":{"get":{"summary":"Cda Issuer History","description":"Attestation history for a specific issuer.","operationId":"cda_issuer_history_api_cda_issuers__symbol__history_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/cda/coverage":{"get":{"summary":"Cda Coverage","description":"Coverage summary of the CDA evidence layer.","operationId":"cda_coverage_api_cda_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/static-evidence/summary":{"get":{"summary":"Static Evidence Summary","description":"Summary stats for the static evidence layer.","operationId":"static_evidence_summary_api_static_evidence_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/static-evidence/screenshot/{evidence_id}":{"get":{"summary":"Static Evidence Screenshot","description":"Serve raw screenshot PNG for an evidence row.","operationId":"static_evidence_screenshot_api_static_evidence_screenshot__evidence_id__get","parameters":[{"name":"evidence_id","in":"path","required":true,"schema":{"type":"integer","title":"Evidence Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/static-evidence/{entity_slug}":{"get":{"summary":"Static Evidence For Entity","description":"All evidence rows for an entity (witness page data).","operationId":"static_evidence_for_entity_api_static_evidence__entity_slug__get","parameters":[{"name":"entity_slug","in":"path","required":true,"schema":{"type":"string","title":"Entity Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/specs/severity":{"get":{"summary":"Get Severity Spec","description":"Published severity taxonomy for assessment events.","operationId":"get_severity_spec_api_specs_severity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/specs/wallet-profile":{"get":{"summary":"Get Wallet Profile Spec","description":"Published wallet profile schema — reputation primitive definition.","operationId":"get_wallet_profile_spec_api_specs_wallet_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/assessment-events":{"get":{"summary":"Get Assessment Events","description":"Assessment events with optional severity filtering.","operationId":"get_assessment_events_api_assessment_events_get","parameters":[{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"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"}}}}}}},"/api/assessments/recent":{"get":{"summary":"Recent Assessments","description":"Recent assessment events with verification status.","operationId":"recent_assessments_api_assessments_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Limit"}},{"name":"verified","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assessments/{assessment_id}/inputs":{"get":{"summary":"Get Assessment Inputs","description":"Computation attestation: retrieve input hash and summary for an assessment event.","operationId":"get_assessment_inputs_api_assessments__assessment_id__inputs_get","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","title":"Assessment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assessments/{assessment_id}/verify":{"get":{"summary":"Verify Assessment","description":"Full computation attestation: verify an assessment by re-deriving the score from stored inputs.","operationId":"verify_assessment_api_assessments__assessment_id__verify_get","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","title":"Assessment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disputes":{"get":{"summary":"Public List Disputes","description":"Public dispute listing. Only shows disputes that have moved past 'submitted' status.","operationId":"public_list_disputes_api_disputes_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disputes/{dispute_id}":{"get":{"summary":"Public Get Dispute","description":"Public single-dispute view. Only visible if status != 'submitted'.","operationId":"public_get_dispute_api_disputes__dispute_id__get","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"string","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/psi/scores":{"get":{"summary":"Psi Scores","description":"All scored protocols — latest score per protocol.","operationId":"psi_scores_api_psi_scores_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/psi/definition":{"get":{"summary":"Psi Definition","description":"Return the full PSI index definition with methodology changelog.","operationId":"psi_definition_api_psi_definition_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/psi/scores/{slug}/at/{date_str}":{"get":{"summary":"Psi Score At Date","description":"Reconstruct PSI score for a protocol at a historical date.","operationId":"psi_score_at_date_api_psi_scores__slug__at__date_str__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"date_str","in":"path","required":true,"schema":{"type":"string","title":"Date Str"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/psi/scores/{slug}/range":{"get":{"summary":"Psi Score Range","description":"Reconstruct daily PSI scores for a date range (max 365 days).","operationId":"psi_score_range_api_psi_scores__slug__range_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"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"}}}}}}},"/api/psi/scores/{slug}/backtest/{event}":{"get":{"summary":"Psi Backtest Event","description":"Reconstruct PSI scores during a named crisis event.","operationId":"psi_backtest_event_api_psi_scores__slug__backtest__event__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"event","in":"path","required":true,"schema":{"type":"string","title":"Event"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/psi/scores/{slug}/verify":{"get":{"summary":"Verify Psi Score","description":"Verify the latest PSI score by re-deriving from stored raw values.","operationId":"verify_psi_score_api_psi_scores__slug__verify_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/psi/scores/{slug}":{"get":{"summary":"Psi Score Detail","description":"Detailed PSI breakdown for one protocol.","operationId":"psi_score_detail_api_psi_scores__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/governance-history":{"get":{"summary":"Protocol Governance History","description":"Governance config snapshot history with change detection events.","operationId":"protocol_governance_history_api_protocols__slug__governance_history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/market-history":{"get":{"summary":"Protocol Market History","description":"Market listing snapshot history with diffs and velocity events.","operationId":"protocol_market_history_api_protocols__slug__market_history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rpi/scores":{"get":{"summary":"Rpi Scores","description":"All scored protocols — latest base RPI score per protocol.","operationId":"rpi_scores_api_rpi_scores_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/rpi/rankings":{"get":{"summary":"Rpi Rankings","description":"Protocols ranked by base RPI score (or lensed score if lens= provided).","operationId":"rpi_rankings_api_rpi_rankings_get","parameters":[{"name":"lens","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lens"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rpi/lenses":{"get":{"summary":"Rpi Lenses","description":"List available lenses and their components.","operationId":"rpi_lenses_api_rpi_lenses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/rpi/components/{slug}":{"get":{"summary":"Rpi Components","description":"Base component-level detail for a protocol.","operationId":"rpi_components_api_rpi_components__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rpi/history/{slug}":{"get":{"summary":"Rpi History","description":"Base score history for a protocol (live + backfilled). Includes confidence tags.","operationId":"rpi_history_api_rpi_history__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rpi/history/{slug}/at/{date_str}":{"get":{"summary":"Rpi History At Date","description":"Reconstruct BASE RPI score for a protocol at a specific historical date.","operationId":"rpi_history_at_date_api_rpi_history__slug__at__date_str__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"date_str","in":"path","required":true,"schema":{"type":"string","title":"Date Str"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rpi/compare":{"get":{"summary":"Rpi Compare","description":"Multi-protocol comparison of base RPI scores.","operationId":"rpi_compare_api_rpi_compare_get","parameters":[{"name":"slugs","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated protocol slugs","title":"Slugs"},"description":"Comma-separated protocol slugs"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rpi/scores/{slug}":{"get":{"summary":"Rpi Score Detail","description":"Detailed RPI breakdown for one protocol. Optionally include lens scores.","operationId":"rpi_score_detail_api_rpi_scores__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"lens","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lens"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/treasury-exposure":{"get":{"summary":"Treasury Exposure","description":"All protocols' stablecoin holdings with SII cross-reference.","operationId":"treasury_exposure_api_protocols_treasury_exposure_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/protocols/{slug}/treasury":{"get":{"summary":"Protocol Treasury","description":"Single protocol treasury breakdown with SII cross-reference.","operationId":"protocol_treasury_api_protocols__slug__treasury_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stablecoins/{symbol}/protocol-exposure":{"get":{"summary":"Stablecoin Protocol Exposure","description":"Reverse lookup — which protocols hold this stablecoin?","operationId":"stablecoin_protocol_exposure_api_stablecoins__symbol__protocol_exposure_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/treasury/events":{"get":{"summary":"Get Treasury Events","description":"Recent treasury behavioral events.","operationId":"get_treasury_events_api_treasury_events_get","parameters":[{"name":"wallet","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"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"}}}}}}},"/api/treasury/{address}/profile":{"get":{"summary":"Treasury Profile","description":"Treasury risk profile — extends wallet profile with entity metadata and events.","operationId":"treasury_profile_api_treasury__address__profile_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/treasury/registry":{"get":{"summary":"Treasury Registry","description":"All registered treasury wallets.","operationId":"treasury_registry_api_treasury_registry_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/protocols/backlog":{"get":{"summary":"Protocol Backlog","description":"Protocol discovery backlog — candidates for PSI scoring.","operationId":"protocol_backlog_api_protocols_backlog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/protocols/collateral-exposure":{"get":{"summary":"Collateral Exposure","description":"All protocols' stablecoin collateral exposure with SII cross-reference.","operationId":"collateral_exposure_api_protocols_collateral_exposure_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/protocols/{slug}/collateral-exposure":{"get":{"summary":"Protocol Collateral Exposure","description":"Single protocol's stablecoin collateral exposure.","operationId":"protocol_collateral_exposure_api_protocols__slug__collateral_exposure_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stablecoins/{symbol}/collateral-exposure":{"get":{"summary":"Stablecoin Collateral Exposure","description":"Reverse lookup — which protocols accept this stablecoin as collateral?","operationId":"stablecoin_collateral_exposure_api_stablecoins__symbol__collateral_exposure_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/full-exposure":{"get":{"summary":"Protocol Full Exposure","description":"Combined treasury holdings + collateral exposure for one protocol.","operationId":"protocol_full_exposure_api_protocols__slug__full_exposure_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/pool-wallets/{symbol}":{"get":{"summary":"Protocol Pool Wallets","description":"Wallets in a protocol's stablecoin pool with risk profiles.","operationId":"protocol_pool_wallets_api_protocols__slug__pool_wallets__symbol__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/drift/vault-balances":{"get":{"summary":"Drift Vault Balances","description":"On-chain Drift vault token balances via Helius RPC. Real-time, not DeFiLlama.","operationId":"drift_vault_balances_api_protocols_drift_vault_balances_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/coverage/summary":{"get":{"summary":"Coverage Summary","description":"Component coverage summary across all Circle 7 indices.","operationId":"coverage_summary_api_coverage_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/{index_id}/coverage":{"get":{"summary":"Index Coverage","description":"Component coverage breakdown for a specific index.","operationId":"index_coverage_api__index_id__coverage_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/{index_id}/scores":{"get":{"summary":"Circle7 Scores","description":"Latest scores for a Circle 7 index (lsti, bri, dohi, vsri, cxri, tti).","operationId":"circle7_scores_api__index_id__scores_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/{index_id}/scores/{entity_slug}":{"get":{"summary":"Circle7 Score Detail","description":"Detailed score breakdown for a specific entity in a Circle 7 index.","operationId":"circle7_score_detail_api__index_id__scores__entity_slug__get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}},{"name":"entity_slug","in":"path","required":true,"schema":{"type":"string","title":"Entity Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/{index_id}/definition":{"get":{"summary":"Circle7 Definition","description":"Return the full index definition for a Circle 7 index.","operationId":"circle7_definition_api__index_id__definition_get","parameters":[{"name":"index_id","in":"path","required":true,"schema":{"type":"string","title":"Index Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/attribution":{"get":{"summary":"Attribution Query","description":"Attribution query endpoint.\n- ?protocol={slug}&period={days} — PSI trajectory + governance events overlay\n- ?contributor={tag} — cross-protocol contributor impact analysis","operationId":"attribution_query_api_attribution_get","parameters":[{"name":"protocol","in":"query","required":false,"schema":{"type":"string","title":"Protocol"}},{"name":"contributor","in":"query","required":false,"schema":{"type":"string","title":"Contributor"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/query":{"post":{"summary":"Query Wallets","description":"Structured query against the wallet risk graph.","operationId":"query_wallets_api_query_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/query/templates":{"get":{"summary":"Query Templates List","description":"List available query templates with descriptions and default params.","operationId":"query_templates_list_api_query_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/query/template":{"post":{"summary":"Query Template Execute","description":"Execute a named query template with optional parameter overrides.","operationId":"query_template_execute_api_query_template_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/query/schema":{"get":{"summary":"Query Schema","description":"Documentation of available query filters and options.","operationId":"query_schema_api_query_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pulse/latest":{"get":{"summary":"Get Latest Pulse","description":"Most recent daily pulse summary.","operationId":"get_latest_pulse_api_pulse_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pulse/history":{"get":{"summary":"Pulse History","description":"List of recent pulse dates with page URLs (not full summaries).","operationId":"pulse_history_api_pulse_history_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pulse/{date_str}":{"get":{"summary":"Pulse By Date","description":"Daily pulse for a specific date (YYYY-MM-DD).","operationId":"pulse_by_date_api_pulse__date_str__get","parameters":[{"name":"date_str","in":"path","required":true,"schema":{"type":"string","title":"Date Str"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divergence":{"get":{"summary":"Divergence All","description":"Combined divergence signals — stored signals only for the public.\n\n`force=true` runs the full detector set and writes signals, contagion\nevents and attestations, so it needs the admin key. The public route never\ntriggers a live compute (it exceeds 600s); the worker stores signals.","operationId":"divergence_all_api_divergence_get","parameters":[{"name":"force","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Force"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divergence/assets":{"get":{"summary":"Divergence Assets","description":"Asset quality divergence: score declining while capital flows in.","operationId":"divergence_assets_api_divergence_assets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/divergence/wallets":{"get":{"summary":"Divergence Wallets","description":"Wallet concentration divergence: HHI rising while value grows.","operationId":"divergence_wallets_api_divergence_wallets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/specs/divergence":{"get":{"summary":"Divergence Spec","description":"Divergence signal type definitions and severity thresholds.","operationId":"divergence_spec_api_specs_divergence_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/compose/cqi":{"get":{"summary":"Compose Cqi","description":"Compute Collateral Quality Index for an asset-in-protocol pair.","operationId":"compose_cqi_api_compose_cqi_get","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string","title":"Asset"}},{"name":"protocol","in":"query","required":true,"schema":{"type":"string","title":"Protocol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compose/cqi/matrix":{"get":{"summary":"Compose Cqi Matrix","description":"CQI for all stablecoin x protocol combinations.","operationId":"compose_cqi_matrix_api_compose_cqi_matrix_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cqi/{protocol_slug}/{stablecoin_symbol}/contagion":{"get":{"summary":"Cqi Contagion","description":"CQI pair enriched with contagion summary from pool wallets.\n\nRuns depth-limited contagion traversal on the top 50 pool wallets by balance,\nthen aggregates into a contagion summary: pool HHI, depth reach, worst SII\nexposure, and % connected to D/F-rated assets.","operationId":"cqi_contagion_api_cqi__protocol_slug___stablecoin_symbol__contagion_get","parameters":[{"name":"protocol_slug","in":"path","required":true,"schema":{"type":"string","title":"Protocol Slug"}},{"name":"stablecoin_symbol","in":"path","required":true,"schema":{"type":"string","title":"Stablecoin Symbol"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":1,"default":2,"title":"Depth"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compose/rqs":{"get":{"summary":"Compose Rqs All","description":"Reserve Quality Score for all PSI-scored protocols.","operationId":"compose_rqs_all_api_compose_rqs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/compose/rqs/{slug}":{"get":{"summary":"Compose Rqs Protocol","description":"Reserve Quality Score for a single protocol's stablecoin treasury.","operationId":"compose_rqs_protocol_api_compose_rqs__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/specs/composition":{"get":{"summary":"Get Composition Spec","description":"Published composition grammar specification.","operationId":"get_composition_spec_api_specs_composition_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/discovery/latest":{"get":{"summary":"Get Discovery Latest","description":"Top 20 signals from last 7 days by novelty_score.","operationId":"get_discovery_latest_api_discovery_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/discovery/domain/{domain}":{"get":{"summary":"Get Discovery By Domain","description":"Signals for a specific domain.","operationId":"get_discovery_by_domain_api_discovery_domain__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/discovery/unacknowledged":{"get":{"summary":"Get Discovery Unacknowledged","description":"Signals not yet reviewed.","operationId":"get_discovery_unacknowledged_api_discovery_unacknowledged_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/canonical/state":{"get":{"summary":"Canonical State","description":"Public endpoint: canonical state of the Basis Protocol system.","operationId":"canonical_state_api_canonical_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/data/liquidity/{asset_id}":{"get":{"summary":"Get Liquidity Depth","description":"Per-asset, per-venue liquidity profile (DEX + CEX).","operationId":"get_liquidity_depth_api_data_liquidity__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/yields":{"get":{"summary":"Get Yield Data","description":"Pool-level yield, TVL, utilization for any protocol.","operationId":"get_yield_data_api_data_yields_get","parameters":[{"name":"protocol","in":"query","required":false,"schema":{"type":"string","title":"Protocol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/governance/{protocol}":{"get":{"summary":"Get Governance Data","description":"Governance proposals and voter participation for a protocol slug (e.g. aave, lido, curve-finance).","operationId":"get_governance_data_api_data_governance__protocol__get","parameters":[{"name":"protocol","in":"path","required":true,"schema":{"type":"string","title":"Protocol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/bridge-flows":{"get":{"summary":"Get Bridge Flows","description":"Directional bridge flow volumes.","operationId":"get_bridge_flows_api_data_bridge_flows_get","parameters":[{"name":"bridge_id","in":"query","required":false,"schema":{"type":"string","title":"Bridge Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/exchanges":{"get":{"summary":"Get Exchange Data","description":"Exchange trust scores, volumes, and stablecoin pair data.","operationId":"get_exchange_data_api_data_exchanges_get","parameters":[{"name":"exchange_id","in":"query","required":false,"schema":{"type":"string","title":"Exchange Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/correlations":{"get":{"summary":"Get Correlations","description":"Cross-entity correlation matrices.","operationId":"get_correlations_api_data_correlations_get","parameters":[{"name":"matrix_type","in":"query","required":false,"schema":{"type":"string","default":"sii_30d","title":"Matrix Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/volatility/{asset_id}":{"get":{"summary":"Get Volatility","description":"Realized volatility and drawdown metrics for an asset.","operationId":"get_volatility_api_data_volatility__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/peg-5m/{stablecoin_id}":{"get":{"summary":"Get Peg 5M","description":"5-minute peg resolution data for a stablecoin.","operationId":"get_peg_5m_api_data_peg_5m__stablecoin_id__get","parameters":[{"name":"stablecoin_id","in":"path","required":true,"schema":{"type":"string","title":"Stablecoin Id"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/data/catalog":{"get":{"summary":"Get Data Catalog","description":"Every data type in the universal data layer with freshness and coverage.","operationId":"get_data_catalog_api_data_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/indices/simulate":{"post":{"summary":"Simulate Index","description":"Accept a JSON index definition, run it against the last 30 days of data.\nReturns simulated scores for all qualifying entities + data coverage report.","operationId":"simulate_index_api_indices_simulate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/indices/coverage-matrix":{"get":{"summary":"Indices Coverage Matrix","description":"For each index definition, show component-level data availability:\nwhich components have live data, which are stale, which have no data source.","operationId":"indices_coverage_matrix_api_indices_coverage_matrix_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/data/incidents":{"get":{"summary":"Get Incidents","description":"Structured incident history.","operationId":"get_incidents_api_data_incidents_get","parameters":[{"name":"entity_id","in":"query","required":false,"schema":{"type":"string","title":"Entity Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","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"}}}}}}},"/api/reports/{entity_type}/{entity_id}":{"get":{"summary":"Generate Report","description":"Generate an attested report for an entity.","operationId":"generate_report_api_reports__entity_type___entity_id__get","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}},{"name":"template","in":"query","required":false,"schema":{"type":"string","title":"Template"}},{"name":"lens","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lens"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"html","title":"Format"}},{"name":"if-none-match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reports/verify/{report_hash}":{"get":{"summary":"Verify Report Endpoint","description":"Verify a report's attestation chain.","operationId":"verify_report_endpoint_api_reports_verify__report_hash__get","parameters":[{"name":"report_hash","in":"path","required":true,"schema":{"type":"string","title":"Report Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reports/templates":{"get":{"summary":"List Report Templates","description":"List available report templates.","operationId":"list_report_templates_api_reports_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/reports/lenses":{"get":{"summary":"List Report Lenses","description":"List available regulatory lenses.","operationId":"list_report_lenses_api_reports_lenses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/reports/sbt/{token_id}":{"get":{"summary":"Sbt Metadata","description":"ERC-721 metadata for a Basis Rating SBT.","operationId":"sbt_metadata_api_reports_sbt__token_id__get","parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"integer","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lenses":{"get":{"summary":"List All Lenses","description":"List all available regulatory lenses (built-in + custom).","operationId":"list_all_lenses_api_lenses_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Lens","description":"Create a custom regulatory lens. Requires X-Admin-Key header.","operationId":"create_lens_api_lenses_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/lenses/{lens_id}":{"get":{"summary":"Get Lens Detail","description":"Get full lens config including criteria.","operationId":"get_lens_detail_api_lenses__lens_id__get","parameters":[{"name":"lens_id","in":"path","required":true,"schema":{"type":"string","title":"Lens Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lenses/{lens_id}/test":{"get":{"summary":"Test Lens","description":"Run a lens against all scored stablecoins, return pass/fail results.","operationId":"test_lens_api_lenses__lens_id__test_get","parameters":[{"name":"lens_id","in":"path","required":true,"schema":{"type":"string","title":"Lens Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/state-root/latest":{"get":{"summary":"State Root Latest","description":"Latest state root — all attestation hashes across all domains.","operationId":"state_root_latest_api_state_root_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/register":{"post":{"summary":"Provenance Register","operationId":"provenance_register_api_provenance_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/register/static":{"post":{"summary":"Provenance Register Static","description":"Register a static (GitHub/docs) provenance proof — same schema as live.","operationId":"provenance_register_static_api_provenance_register_static_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/register/batch":{"post":{"summary":"Provenance Register Batch","description":"Register multiple proofs in one request (avoids rate-limit issues).","operationId":"provenance_register_batch_api_provenance_register_batch_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/latest":{"get":{"summary":"Provenance Latest","operationId":"provenance_latest_api_provenance_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/{domain}/{date}":{"get":{"summary":"Provenance By Domain Date","operationId":"provenance_by_domain_date_api_provenance__domain___date__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"date","in":"path","required":true,"schema":{"type":"string","title":"Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/provenance/verify/{attestation_hash}":{"get":{"summary":"Provenance Verify","operationId":"provenance_verify_api_provenance_verify__attestation_hash__get","parameters":[{"name":"attestation_hash","in":"path","required":true,"schema":{"type":"string","title":"Attestation Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/provenance/summary":{"get":{"summary":"Provenance Summary","operationId":"provenance_summary_api_provenance_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/cda-sources":{"get":{"summary":"Provenance Cda Sources","operationId":"provenance_cda_sources_api_provenance_cda_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/attestor-pubkey":{"get":{"summary":"Provenance Attestor Pubkey","operationId":"provenance_attestor_pubkey_api_provenance_attestor_pubkey_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/sources":{"get":{"summary":"Provenance Sources List","description":"List all registered provenance sources with health status.","operationId":"provenance_sources_list_api_provenance_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/health/alert":{"post":{"summary":"Provenance Health Alert","description":"Record a health alert from the prover (domain change, DNS failure, auto-heal).","operationId":"provenance_health_alert_api_provenance_health_alert_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/sources/health":{"post":{"summary":"Provenance Source Health Update","description":"Prover writes health state for a source after each notarization attempt.","operationId":"provenance_source_health_update_api_provenance_sources_health_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/sources/cycle":{"get":{"summary":"Provenance Sources For Cycle","description":"Return sources the prover should notarize this cycle (schedule-aware).","operationId":"provenance_sources_for_cycle_api_provenance_sources_cycle_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provenance/health":{"get":{"summary":"Provenance Health","description":"Current provenance source health — active/disabled counts + recent alerts.","operationId":"provenance_health_api_provenance_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/contract-upgrades/history":{"get":{"summary":"Contract Upgrade History","description":"Upgrade history for scored contracts.","operationId":"contract_upgrade_history_api_contract_upgrades_history_get","parameters":[{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type"}},{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Entity Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/contract-upgrades/recent":{"get":{"summary":"Contract Upgrades Recent","description":"All contract upgrades in the last 30 days.","operationId":"contract_upgrades_recent_api_contract_upgrades_recent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stablecoins/{symbol}/contract-upgrades":{"get":{"summary":"Stablecoin Contract Upgrades","description":"Contract upgrade history for a specific stablecoin.","operationId":"stablecoin_contract_upgrades_api_stablecoins__symbol__contract_upgrades_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/contract-upgrades":{"get":{"summary":"Protocol Contract Upgrades","description":"Contract upgrade history for a specific protocol.","operationId":"protocol_contract_upgrades_api_protocols__slug__contract_upgrades_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion-events":{"get":{"summary":"Contagion Events List","description":"List archived contagion propagation events.","operationId":"contagion_events_list_api_contagion_events_get","parameters":[{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"entity_symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion-events/{event_id}":{"get":{"summary":"Contagion Event Detail","description":"Full contagion event record including graph state snapshot.","operationId":"contagion_event_detail_api_contagion_events__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stablecoins/{symbol}/contagion-events":{"get":{"summary":"Stablecoin Contagion Events","description":"Contagion events where this stablecoin was the source.","operationId":"stablecoin_contagion_events_api_stablecoins__symbol__contagion_events_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/contagion-events":{"get":{"summary":"Protocol Contagion Events","description":"Contagion events where this protocol was the source.","operationId":"protocol_contagion_events_api_protocols__slug__contagion_events_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sanctions/summary":{"get":{"summary":"Sanctions Summary","description":"Summary of sanctions screening status.","operationId":"sanctions_summary_api_sanctions_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sanctions/matches":{"get":{"summary":"Sanctions Matches","description":"All historical sanctions matches.","operationId":"sanctions_matches_api_sanctions_matches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stablecoins/{symbol}/sanctions":{"get":{"summary":"Stablecoin Sanctions","description":"Screening history for this stablecoin's issuers.","operationId":"stablecoin_sanctions_api_stablecoins__symbol__sanctions_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/enforcement/summary":{"get":{"summary":"Enforcement Summary","description":"Summary of enforcement record collection.","operationId":"enforcement_summary_api_enforcement_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/enforcement/records":{"get":{"summary":"Enforcement Records List","description":"List enforcement records with optional filters.","operationId":"enforcement_records_list_api_enforcement_records_get","parameters":[{"name":"entity_symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Symbol"}},{"name":"record_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Record Type"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"default":365,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stablecoins/{symbol}/enforcement":{"get":{"summary":"Stablecoin Enforcement","description":"All enforcement records for this stablecoin's issuer.","operationId":"stablecoin_enforcement_api_stablecoins__symbol__enforcement_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/parent-company/{symbol}/financials":{"get":{"summary":"Parent Company Financials","description":"Financial history for all parent companies of this stablecoin.","operationId":"parent_company_financials_api_parent_company__symbol__financials_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/parent-company/summary":{"get":{"summary":"Parent Company Summary","description":"List all tracked parent companies with latest period data.","operationId":"parent_company_summary_api_parent_company_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/proposals":{"get":{"summary":"Governance Proposals List","description":"List governance proposals across scored protocols.","operationId":"governance_proposals_list_api_governance_proposals_get","parameters":[{"name":"protocol_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protocol Slug"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"default":90,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/proposals/{proposal_id}":{"get":{"summary":"Governance Proposal Detail","description":"Full governance proposal including body text.","operationId":"governance_proposal_detail_api_governance_proposals__proposal_id__get","parameters":[{"name":"proposal_id","in":"path","required":true,"schema":{"type":"string","title":"Proposal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocols/{slug}/governance/proposals":{"get":{"summary":"Protocol Governance Proposals","description":"All governance proposals for a specific protocol.","operationId":"protocol_governance_proposals_api_protocols__slug__governance_proposals_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/edits":{"get":{"summary":"Governance Edits","description":"Proposals where the body was edited after initial capture.","operationId":"governance_edits_api_governance_edits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/contract-dependencies/{entity_type}/{slug}":{"get":{"summary":"Contract Dependencies List","description":"Current active dependencies for an entity.","operationId":"contract_dependencies_list_api_contract_dependencies__entity_type___slug__get","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contract-dependencies/{entity_type}/{slug}/history":{"get":{"summary":"Contract Dependencies History","description":"Daily dependency graph snapshots over time.","operationId":"contract_dependencies_history_api_contract_dependencies__entity_type___slug__history_get","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contract-dependencies/reverse/{address}":{"get":{"summary":"Contract Dependencies Reverse","description":"All entities that depend on a given contract address (exploit propagation query).","operationId":"contract_dependencies_reverse_api_contract_dependencies_reverse__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contract-dependencies/changes":{"get":{"summary":"Contract Dependencies Changes","description":"New and removed dependencies in the last 30 days.","operationId":"contract_dependencies_changes_api_contract_dependencies_changes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/parameters/{slug}/history":{"get":{"summary":"Parameter Change History","description":"Parameter changes for a protocol with concurrent score context.","operationId":"parameter_change_history_api_parameters__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"asset_symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Symbol"}},{"name":"parameter_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Name"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"default":90,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/parameters/{slug}/current":{"get":{"summary":"Parameter Current Values","description":"Current parameter values for all watched parameters.","operationId":"parameter_current_values_api_parameters__slug__current_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/parameters/{slug}/snapshots":{"get":{"summary":"Parameter Snapshots","description":"Daily parameter snapshots over time.","operationId":"parameter_snapshots_api_parameters__slug__snapshots_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/parameters/changes":{"get":{"summary":"Parameter Changes All","description":"Recent parameter changes across all protocols.","operationId":"parameter_changes_all_api_parameters_changes_get","parameters":[{"name":"change_context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Context"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/parameters/{slug}/context":{"get":{"summary":"Parameter Context Analysis","description":"Change context analysis: reactive vs proactive ratio over time.","operationId":"parameter_context_analysis_api_parameters__slug__context_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/concentration/{symbol}/latest":{"get":{"summary":"Concentration Latest","description":"Most recent concentration snapshot with top clusters.","operationId":"concentration_latest_api_concentration__symbol__latest_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/concentration/{symbol}/history":{"get":{"summary":"Concentration History","description":"Concentration snapshots over time with nominal and clustered metrics.","operationId":"concentration_history_api_concentration__symbol__history_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3650,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/concentration/{symbol}/clusters/{snapshot_date}":{"get":{"summary":"Concentration Clusters","description":"All clusters for a stablecoin on a specific date.","operationId":"concentration_clusters_api_concentration__symbol__clusters__snapshot_date__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"snapshot_date","in":"path","required":true,"schema":{"type":"string","title":"Snapshot Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/concentration/divergence":{"get":{"summary":"Concentration Divergence","description":"All stablecoins sorted by divergence_score for most recent snapshot.","operationId":"concentration_divergence_api_concentration_divergence_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/concentration/changes":{"get":{"summary":"Concentration Changes","description":"Stablecoins where clustered_gini changed >0.02 in the last 7 days.","operationId":"concentration_changes_api_concentration_changes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/oracle/readings":{"get":{"summary":"Oracle Readings Latest","description":"Most recent reading per oracle.","operationId":"oracle_readings_latest_api_oracle_readings_get","parameters":[{"name":"asset_symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Symbol"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/oracle/readings/{oracle_address}/history":{"get":{"summary":"Oracle Reading History","description":"Reading history for a specific oracle.","operationId":"oracle_reading_history_api_oracle_readings__oracle_address__history_get","parameters":[{"name":"oracle_address","in":"path","required":true,"schema":{"type":"string","title":"Oracle Address"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"default":24,"title":"Hours"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oracle/stress-events":{"get":{"summary":"Oracle Stress Events List","description":"All stress events, with optional filters.","operationId":"oracle_stress_events_list_api_oracle_stress_events_get","parameters":[{"name":"asset_symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Symbol"}},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"}},{"name":"open_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Open Only"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oracle/stress-events/active":{"get":{"summary":"Oracle Stress Events Active","description":"All currently open stress events.","operationId":"oracle_stress_events_active_api_oracle_stress_events_active_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/oracle/stress-events/{event_id}/triptych":{"get":{"summary":"Oracle Stress Event Triptych","description":"Before / during / after readings for a single stress event.\n\n- pre_stress: readings tagged with this event_id by the pre-stress\n  tagger at event-open time (up to pre_stress_window_hours of context).\n- during: readings flagged is_stress_event between event_start and\n  event_end (or NOW() if still open).\n- post_stress: readings in the 72 hours after event_end. Empty if the\n  event is still open.","operationId":"oracle_stress_event_triptych_api_oracle_stress_events__event_id__triptych_get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oracle/{asset_symbol}/deviation-history":{"get":{"summary":"Oracle Deviation History","description":"Deviation time series for an asset across all its oracles.","operationId":"oracle_deviation_history_api_oracle__asset_symbol__deviation_history_get","parameters":[{"name":"asset_symbol","in":"path","required":true,"schema":{"type":"string","title":"Asset Symbol"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"default":168,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/oracle/divergence":{"get":{"summary":"Oracle Divergence","description":"Current deviation between oracle and CEX for all active oracles, sorted by abs deviation.","operationId":"oracle_divergence_api_oracle_divergence_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/stats":{"get":{"summary":"Gov Stats","description":"Governance intelligence overview.","operationId":"gov_stats_api_governance_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/debates":{"get":{"summary":"Gov Debates","description":"Hot governance debates involving stablecoins.","operationId":"gov_debates_api_governance_debates_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/sentiment":{"get":{"summary":"Gov Sentiment","description":"Stablecoin sentiment trends from governance forums.","operationId":"gov_sentiment_api_governance_sentiment_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":14,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/metrics":{"get":{"summary":"Gov Metrics","description":"What risk metrics are governance contributors discussing?","operationId":"gov_metrics_api_governance_metrics_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallets/top":{"get":{"summary":"Wallets Top","description":"Top wallets by current holdings value (computed from latest_holdings).","operationId":"wallets_top_api_wallets_top_get","parameters":[{"name":"size_tier","in":"query","required":false,"schema":{"type":"string","description":"Filter by size_tier: whale, institutional, retail","title":"Size Tier"},"description":"Filter by size_tier: whale, institutional, retail"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/wallets/riskiest":{"get":{"summary":"Wallets Riskiest","description":"Wallets with lowest risk scores that currently hold stablecoins.\n\nServed from app/indexer/riskiest_cache.py — the underlying query\ntook 12-20s cold, past the MCP tool timeout.","operationId":"wallets_riskiest_api_wallets_riskiest_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/wallets/debug":{"get":{"summary":"Wallets Debug","description":"Debug: check wallet_graph schema visibility from this server instance.","operationId":"wallets_debug_api_wallets_debug_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wallets/stats":{"get":{"summary":"Wallets Stats","description":"Aggregate stats for the wallet risk graph.","operationId":"wallets_stats_api_wallets_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wallets/coverage":{"get":{"summary":"Wallets Coverage","description":"Coverage diagnostic: breakdown of wallets by holdings vs scoring status.\nIdentifies silent failure paths (wallets with holdings but no risk score).","operationId":"wallets_coverage_api_wallets_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wallets/{address}":{"get":{"summary":"Wallet Profile","description":"Full wallet profile: risk score, holdings, concentration, coverage.","operationId":"wallet_profile_api_wallets__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"methodology_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Methodology Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallets/{address}/history":{"get":{"summary":"Wallet History","description":"Daily risk score history for a wallet.","operationId":"wallet_history_api_wallets__address__history_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallets/{address}/connections":{"get":{"summary":"Wallet Connections","description":"Top counterparties for a wallet sorted by edge weight. Optional ?chain= filter.","operationId":"wallet_connections_api_wallets__address__connections_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallets/{address}/contagion":{"get":{"summary":"Wallet Contagion","description":"Recursive contagion traversal: if this wallet's holdings depeg, who's exposed?\nUses recursive CTE to follow edges up to `depth` hops (max 3).\nOptional ?chain= filter (ethereum, base, arbitrum). Default: all chains.","operationId":"wallet_contagion_api_wallets__address__contagion_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":1,"default":2,"title":"Depth"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallets/{address}/profile":{"get":{"summary":"Wallet Profile Full","description":"Full wallet risk profile — reputation primitive with behavioral signals.","operationId":"wallet_profile_full_api_wallets__address__profile_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallets/{address}/profile/hash":{"get":{"summary":"Wallet Profile Hash","description":"Just the profile hash and timestamp — lightweight verification.","operationId":"wallet_profile_hash_api_wallets__address__profile_hash_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/backlog":{"get":{"summary":"Backlog List","description":"Unscored asset backlog, sorted by priority (total_value_held DESC).","operationId":"backlog_list_api_backlog_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/backlog/{token_address}":{"get":{"summary":"Backlog Detail","description":"Detail for one unscored asset: which wallets hold it, how much.","operationId":"backlog_detail_api_backlog__token_address__get","parameters":[{"name":"token_address","in":"path","required":true,"schema":{"type":"string","title":"Token Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/graph/stats":{"get":{"summary":"Graph Stats","description":"Edge graph statistics, build progress, and coverage metrics.","operationId":"graph_stats_api_graph_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wallets/{address}/actor":{"get":{"summary":"Wallet Actor","description":"Actor classification for a single wallet.","operationId":"wallet_actor_api_wallets__address__actor_get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actor/stats":{"get":{"summary":"Actor Stats","description":"Aggregate actor classification statistics.","operationId":"actor_stats_api_actor_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/actor/stats/{symbol}":{"get":{"summary":"Actor Stats By Symbol","description":"Actor composition for a stablecoin's holder base.","operationId":"actor_stats_by_symbol_api_actor_stats__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/actor/population/{symbol}":{"get":{"summary":"Actor Population","description":"Time series of actor composition for a stablecoin (compounding dataset).","operationId":"actor_population_api_actor_population__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assessments":{"get":{"summary":"Get Assessments","description":"Recent assessment events, paginated.","operationId":"get_assessments_api_assessments_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"trigger_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assessments/{assessment_id}":{"get":{"summary":"Get Assessment","description":"Specific assessment event by UUID.","operationId":"get_assessment_api_assessments__assessment_id__get","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","title":"Assessment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/assessments/wallet/{address}":{"get":{"summary":"Get Wallet Assessments","description":"Assessment history for a specific wallet.","operationId":"get_wallet_assessments_api_assessments_wallet__address__get","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","title":"Address"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"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"}}}}}}},"/api/pulse/{pulse_date}":{"get":{"summary":"Get Pulse","description":"Daily pulse summary for a specific date (YYYY-MM-DD).","operationId":"get_pulse_api_pulse__pulse_date__get","parameters":[{"name":"pulse_date","in":"path","required":true,"schema":{"type":"string","title":"Pulse Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/exposure/lookthrough/{instrument}":{"get":{"tags":["exposure"],"summary":"Exposure Lookthrough","description":"Holders of an instrument, and their holders, position-weighted; every edge cites its source.","operationId":"exposure_lookthrough_api_exposure_lookthrough__instrument__get","parameters":[{"name":"instrument","in":"path","required":true,"schema":{"type":"string","title":"Instrument"}},{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"ethereum","title":"Chain"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","maximum":4,"minimum":1,"default":2,"title":"Depth"}},{"name":"fanout","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Fanout"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/incident/{slug}":{"get":{"summary":"Get Incident","operationId":"get_incident_api_incident__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/coverage/{identifier}":{"get":{"summary":"Get Coverage","description":"Return Basis's coverage of an entity across all indexes.","operationId":"get_coverage_api_engine_coverage__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_related","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Related"}},{"name":"date_range_start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Range Start"}},{"name":"date_range_end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Range End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/analyze":{"post":{"summary":"Analyze","operationId":"analyze_api_engine_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/analyses/{analysis_id}":{"get":{"summary":"Get One","operationId":"get_one_api_engine_analyses__analysis_id__get","parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Analysis Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Analysis"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete One","operationId":"delete_one_api_engine_analyses__analysis_id__delete","parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Analysis Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/analyses":{"get":{"summary":"List All","operationId":"list_all_api_engine_analyses_get","parameters":[{"name":"entity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnalysisSummary"},"title":"Response List All Api Engine Analyses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/budget":{"get":{"summary":"Get Budget","description":"Return current LLM budget state — daily call count vs ceiling and\nmonthly token spend vs cap. Read directly from\nengine_interpretation_cache (no separate counters table).","operationId":"get_budget_api_engine_budget_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Budget Api Engine Budget Get"}}}}}}},"/api/engine/render":{"post":{"summary":"Render","operationId":"render_api_engine_render_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/artifacts/{artifact_id}":{"get":{"summary":"Get One Artifact","operationId":"get_one_artifact_api_engine_artifacts__artifact_id__get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArtifactResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/analyses/{analysis_id}/artifacts":{"get":{"summary":"List Artifacts For Analysis","operationId":"list_artifacts_for_analysis_api_engine_analyses__analysis_id__artifacts_get","parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Analysis Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ArtifactResponse"},"title":"Response List Artifacts For Analysis Api Engine Analyses  Analysis Id  Artifacts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/events":{"post":{"summary":"Post Event","operationId":"post_event_api_engine_events_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualEventRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Events","operationId":"list_events_api_engine_events_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"entity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Since"}},{"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":{"type":"array","items":{"$ref":"#/components/schemas/EventRow"},"title":"Response List Events Api Engine Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/events/{event_id}":{"get":{"summary":"Get Event","operationId":"get_event_api_engine_events__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventRow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Dismiss Event","operationId":"dismiss_event_api_engine_events__event_id__delete","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/watchlist":{"post":{"summary":"Add Watchlist","operationId":"add_watchlist_api_engine_watchlist_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistAddRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List Watchlist","operationId":"list_watchlist_api_engine_watchlist_get","parameters":[{"name":"entity_slug","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Slug"}},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistRow"},"title":"Response List Watchlist Api Engine Watchlist Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/watchlist/{watchlist_id}":{"delete":{"summary":"Deactivate Watchlist","operationId":"deactivate_watchlist_api_engine_watchlist__watchlist_id__delete","parameters":[{"name":"watchlist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Watchlist Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/scheduler":{"get":{"summary":"Get Scheduler State","description":"Diagnostic. Returns whether the in-process scheduler is running\nand the next-run time of each registered job. Useful to confirm\nmulti-worker hygiene (the scheduler should be running in exactly\none worker; if you see this report differently across requests,\nyour worker count is wrong).","operationId":"get_scheduler_state_api_engine_scheduler_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Scheduler State Api Engine Scheduler Get"}}}}}}},"/api/engine/artifacts/{artifact_id}/approve":{"post":{"summary":"Approve","operationId":"approve_api_engine_artifacts__artifact_id__approve_post","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Artifact Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ReviewRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Approve Api Engine Artifacts  Artifact Id  Approve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/engine/artifacts/{artifact_id}/reject":{"post":{"summary":"Reject","operationId":"reject_api_engine_artifacts__artifact_id__reject_post","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Artifact Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ReviewRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reject Api Engine Artifacts  Artifact Id  Reject Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/pairwise":{"get":{"tags":["contagion"],"summary":"Pairwise","description":"Return the calibrated pairwise co-stress matrix for ``peg_type``.\n\nTrustworthy (``sample_floor_met``) pairs are ordered first, then by lift\ndesc. The envelope carries the provenance of the latest calibration run; the\nmatrix is read from the frozen ``pairwise_costress`` table, never recomputed\nhere. Pre-calibration (no rows / no run) returns an empty set with a null\nenvelope — an honest \"not yet calibrated\", not a synthesized value.","operationId":"pairwise_api_contagion_pairwise_get","parameters":[{"name":"peg_type","in":"query","required":false,"schema":{"type":"string","default":"usd_1","title":"Peg Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pairwise Api Contagion Pairwise Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/tail-dependence":{"get":{"tags":["contagion"],"summary":"Tail Dependence","description":"Return the calibrated lower-tail-dependence λ_L matrix for ``peg_type``.\n\nThe first parametric layer over the empirical co-stress counts: per pair, λ_L =\nn_joint_tail / min(n_a_tail, n_b_tail) with a Wilson finite-sample band. Reads\nthe latest run's frozen ``tail_dependence`` rows (written by the slow-cycle\ncalibration pass), tier1_estimable pairs first then by λ_L desc, wrapped in the\nsame provenance envelope as ``/pairwise`` (calibration_window /\nqualified_entity_count / formula_version from the latest calibration run) plus\nthe §6 λ_L disclaimer. Pairs below the #355 support floor carry\nsupport_tier='tier2_flagged' with a wide band — reported, never presented as\ntrustworthy. Pre-calibration (no run / no rows) returns an empty set with a\nnull envelope.","operationId":"tail_dependence_api_contagion_tail_dependence_get","parameters":[{"name":"peg_type","in":"query","required":false,"schema":{"type":"string","default":"usd_1","title":"Peg Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Tail Dependence Api Contagion Tail Dependence Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/copula":{"get":{"tags":["contagion"],"summary":"Copula","description":"Return the calibrated 2-parameter t-copula fits for ``peg_type``.\n\nThe parametric successor to λ_L: per DENSE pair (n_joint_tail >= 50) a t-copula\nfit recovering correlation ρ and tail-fatness ν, with the fitted log-likelihood\nas an honest goodness-of-fit. Reads the latest run's frozen ``pair_copula`` rows\n(written by the slow-cycle calibration pass), FITTED pairs first then by ρ desc,\nwrapped in the same provenance envelope as ``/pairwise`` (calibration_window /\nqualified_entity_count / formula_version from the latest calibration run) plus\nthe §6 copula disclaimer. Pairs below the dense-core floor carry\nfit_status='not_fitted' / support_tier='insufficient_support' with ρ/ν null —\nreported, never fit; a met-the-floor-but-untrustworthy fit carries\nfit_status='fit_failed'. ``fit_source`` discloses WHICH substrate produced an\nattempted fit — 'continuous' (the real joint-tail series, ν meaningful) or\n'binary_fallback' (count-derived indicators, ν only coarsely identified);\nnull when no fit was attempted. Pre-calibration (no run / no rows) returns an\nempty set with a null envelope.\n\nSTEP 2 (estimator pinned + stability gate): ``provisional`` is now a PER-ROW,\nearned status. A row is promoted (provisional=false, estimator_version=\n'copula_t_v1', attested under the 'pair_copula_v1' domain) only when its ν\npassed the bootstrap stability gate (``stability_gate_passed`` — the fit\nsample met the synthetic-harness-validated floor AND the bootstrap ν CI is\nnarrow enough that ν is identified for THIS pair). Rows that fail stay\nprovisional/v0 and are never attested. The envelope's top-level\n``provisional`` is true iff ANY returned row is provisional (mixed states\nare honest: some pairs trusted, some not) — and true on an empty set\n(nothing has earned trust yet).\n\nCERTIFICATION (migration 287): rows are served from ``pair_copula_certified``\nand carry ``certification_defect`` / ``is_certified``. Four historical rows\npassed the stability gate while ν was pinned at the estimator bound with a\ncollapsed CI — a non-identification signature, not a stable fit. They are\nflagged rather than dropped (a dropped row is invisible; a flagged row is a\ndisclosure), and ``is_certified`` is the promoted-AND-sound subset.\n``stability_gate_reason`` names why a fit was refused promotion.","operationId":"copula_api_contagion_copula_get","parameters":[{"name":"peg_type","in":"query","required":false,"schema":{"type":"string","default":"usd_1","title":"Peg Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Copula Api Contagion Copula Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/directionality":{"get":{"tags":["contagion"],"summary":"Directionality","description":"Return the per-pair directionality labels for ``peg_type``.\n\nProductizes the asymmetric conditionals the empirical estimator emits: per\npair, ``asymmetry`` = conditional_ab − conditional_ba and a first-class\n``direction`` label (a_drives_b / b_drives_a / symmetric). Reads the latest\nrun's frozen ``pair_directionality`` rows (written by the slow-cycle\ncalibration pass), strongest directional claims first (directed pairs by\nconfidence desc), wrapped in the same provenance envelope as ``/pairwise``\nplus the §6 directionality disclaimer. Sub-floor pairs carry\ndirection='insufficient_support' — reported, never asserted. Pre-calibration\n(no run / no rows) returns an empty set with a null envelope.","operationId":"directionality_api_contagion_directionality_get","parameters":[{"name":"peg_type","in":"query","required":false,"schema":{"type":"string","default":"usd_1","title":"Peg Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Directionality Api Contagion Directionality Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/centrality":{"get":{"tags":["contagion"],"summary":"Centrality","description":"Return the base-rate-normalized entity centrality for ``peg_type``.\n\nThe MIM-trap fix: a per-entity bridge score that controls for how often the\nentity is INDIVIDUALLY in its own tail, separating structural bridging from\nchronic individual stress. Reads the latest run's frozen ``entity_centrality``\nrows (written by the slow-cycle calibration pass), entities ordered by\n``normalized_centrality`` desc (the base-rate-corrected measure), wrapped in\nthe same provenance envelope as ``/pairwise`` plus the §6 centrality\ndisclaimer. ``n_partners`` reports each entity's trustworthy-edge support.\nPre-calibration (no run / no rows) returns an empty set with a null envelope.","operationId":"centrality_api_contagion_centrality_get","parameters":[{"name":"peg_type","in":"query","required":false,"schema":{"type":"string","default":"usd_1","title":"Peg Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Centrality Api Contagion Centrality Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/betweenness":{"get":{"tags":["contagion"],"summary":"Betweenness","description":"Return betweenness centrality over the well-supported co-stress graph.\n\nPhase 2.4 / B3 — which entities are systemic BRIDGES connecting otherwise-\nseparate stress clusters: shortest-path betweenness on the directed co-stress\ngraph, computed by the pure module ``app.contagion.betweenness`` and persisted\nby the slow-cycle calibration pass.\n\nSELF-GATING: betweenness is computed ONLY when the well-supported subgraph\n(sample_floor_met AND n_joint_tail>=50) clears 120 edges / 35 nodes. When it\ndoes NOT (true today, ~54 edges / 20 nodes), this returns a 200 with an explicit\n``status='insufficient_graph_density'`` carrying the observed and required\ncounts — the honest \"not yet\", NOT an empty 200 that would read as zero\ncentrality. When it IS computed, returns nodes by betweenness desc + the\nprovenance envelope + the §6 disclaimer. Pre-calibration (no run / no B3 record)\nreturns ``status='not_calibrated'`` with a null envelope.","operationId":"betweenness_api_contagion_betweenness_get","parameters":[{"name":"peg_type","in":"query","required":false,"schema":{"type":"string","default":"usd_1","title":"Peg Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Betweenness Api Contagion Betweenness Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contagion/portfolio-jointtail":{"post":{"tags":["contagion"],"summary":"Portfolio Jointtail","description":"Aggregate the pairwise lift matrix for a weighted basket.\n\nReturns basket_costress_score, dominant_pairs, weakest_link and coverage per\nContract 3. ``coverage`` < 1 means part of the basket is carried by thin\npairs the empirical layer cannot trustworthily speak to (honest, not hidden).","operationId":"portfolio_jointtail_api_contagion_portfolio_jointtail_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Portfolio Jointtail Api Contagion Portfolio Jointtail Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reconciliation":{"get":{"tags":["reconciliation"],"summary":"Reconciliation Api","description":"Machine-readable reconciliation ledger — same grid as /reconciliation.","operationId":"reconciliation_api_api_reconciliation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/reconciliation/attestations/{attestation_id}":{"get":{"tags":["reconciliation"],"summary":"Reconciliation Attestation","description":"The Basis state attestation (receipt) covering an extraction.","operationId":"reconciliation_attestation_api_reconciliation_attestations__attestation_id__get","parameters":[{"name":"attestation_id","in":"path","required":true,"schema":{"type":"string","title":"Attestation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/premortem":{"get":{"tags":["premortem"],"summary":"Premortem Index Api","description":"Machine-readable pre-mortem library index — same set as /premortem.","operationId":"premortem_index_api_api_premortem_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/premortem/attestations/{attestation_id}":{"get":{"tags":["premortem"],"summary":"Premortem Attestation","description":"The Basis state attestation (receipt) covering a pre-mortem page.","operationId":"premortem_attestation_api_premortem_attestations__attestation_id__get","parameters":[{"name":"attestation_id","in":"path","required":true,"schema":{"type":"string","title":"Attestation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/premortem/{symbol}":{"get":{"tags":["premortem"],"summary":"Premortem Asset Api","description":"Machine-readable per-asset pre-mortem payload — same data as the page.","operationId":"premortem_asset_api_api_premortem__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/answer":{"post":{"tags":["agent"],"summary":"Post Agent Answer","description":"Answer a query from attested state, or refuse (ratified envelope).\n\nAnonymous callers are subject to the public spend guard\n(app/agent/public_limits.py); hitting a limit returns a normal\nrefused-shaped envelope, never an error status. ``?include=receipt``\nadds the public receipt fields (never the salt or caller_hash).","operationId":"post_agent_answer_api_agent_answer_post","parameters":[{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Include"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/receipts/{receipt_uuid}/publish":{"post":{"tags":["agent"],"summary":"Publish Own Receipt","description":"Let the asker publish their own receipt via the existing publish\nflow. Ownership: the receipt's attested caller_hash must equal the\nrequesting caller's hash (same identity the answer was read under).","operationId":"publish_own_receipt_api_agent_receipts__receipt_uuid__publish_post","parameters":[{"name":"receipt_uuid","in":"path","required":true,"schema":{"type":"string","title":"Receipt Uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishReceiptRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/citations/{citation_hash}":{"get":{"tags":["agent"],"summary":"Get Citation Resolution","description":"Resolve a citation hash by equality against its attestation table.\n\nThe canonical verifier boundary for the ratified citation format:\ninput may be bare or 0x-prefixed (any case); the lookup matches both\nstored forms so a bare envelope citation resolves the 0x-prefixed\n``report_attestations`` rows history holds. ``?source=`` optionally\nrestricts to ``state_attestations`` or ``report_attestations``.","operationId":"get_citation_resolution_api_agent_citations__citation_hash__get","parameters":[{"name":"citation_hash","in":"path","required":true,"schema":{"type":"string","title":"Citation Hash"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pins":{"get":{"tags":["pins"],"summary":"List Pins","description":"Pins from the current set, filtered by kind and/or pin_key prefix.","operationId":"list_pins_api_pins_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"one of table, column, module, callable, init, env","title":"Kind"},"description":"one of table, column, module, callable, init, env"},{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"pin_key prefix, e.g. 'wallet_graph.unscored_assets.'","title":"Prefix"},"description":"pin_key prefix, e.g. 'wallet_graph.unscored_assets.'"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":500,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pins/kinds":{"get":{"tags":["pins"],"summary":"Pin Kinds","description":"Per-kind counts for the current set — the cheap freshness/shape probe.","operationId":"pin_kinds_api_pins_kinds_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/issuers/{ticker}/tokenization":{"get":{"tags":["issuers"],"summary":"Issuer Tokenization","operationId":"issuer_tokenization_api_issuers__ticker__tokenization_get","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/backing/{entity_id}":{"get":{"tags":["backing"],"summary":"Backing Graph","operationId":"backing_graph_api_backing__entity_id__get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}},{"name":"entity_type","in":"query","required":false,"schema":{"type":"string","default":"stablecoin","title":"Entity Type"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","default":"dependents","title":"Direction"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","maximum":6,"minimum":1,"default":3,"title":"Depth"}},{"name":"deployments","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Deployments"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/kya/lineage/{chain}/{address}":{"get":{"tags":["kya"],"summary":"Lineage","operationId":"lineage_api_kya_lineage__chain___address__get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","maxLength":32,"title":"Chain"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","maxLength":128,"title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/{chain}/{address}/acted-on":{"get":{"tags":["agents"],"summary":"Acted On","operationId":"acted_on_api_agents__chain___address__acted_on_get","parameters":[{"name":"chain","in":"path","required":true,"schema":{"type":"string","maxLength":32,"title":"Chain"}},{"name":"address","in":"path","required":true,"schema":{"type":"string","maxLength":128,"title":"Address"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Analysis":{"properties":{"analysis_version":{"type":"string","title":"Analysis Version","default":"v0.1"},"entity":{"type":"string","title":"Entity"},"event_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Event Date"},"peer_set":{"items":{"type":"string"},"type":"array","title":"Peer Set","description":"REQUIRED per Step 0 doc §2. Empty list is permitted; it triggers a methodology observation flagging the missing peer set and bumps Interpretation.confidence down one level."},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"coverage":{"$ref":"#/components/schemas/CoverageResponse"},"signal":{"$ref":"#/components/schemas/Signal"},"interpretation":{"$ref":"#/components/schemas/Interpretation"},"methodology_observations":{"items":{"$ref":"#/components/schemas/MethodologyObservation"},"type":"array","title":"Methodology Observations"},"follow_ups":{"items":{"$ref":"#/components/schemas/FollowUp"},"type":"array","title":"Follow Ups"},"artifact_recommendation":{"$ref":"#/components/schemas/ArtifactRecommendation"},"inputs_hash":{"type":"string","title":"Inputs Hash"},"previous_analysis_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Previous Analysis Id"},"supersedes_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supersedes Reason"},"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"status":{"type":"string","enum":["pending","draft","approved","archived","dismissed"],"title":"Status"},"superseded_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Superseded By Id"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"human_reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Reviewer"},"review_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Notes"}},"type":"object","required":["entity","peer_set","coverage","signal","interpretation","methodology_observations","follow_ups","artifact_recommendation","inputs_hash","id","created_at","status"],"title":"Analysis","description":"Persisted Analysis. id, created_at, status, and revision fields are\nalways populated."},"AnalysisSummary":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"entity":{"type":"string","title":"Entity"},"event_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Event Date"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"status":{"type":"string","enum":["pending","draft","approved","archived","dismissed"],"title":"Status"},"recommended_artifact_type":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"],"title":"Recommended Artifact Type"},"confidence":{"type":"string","enum":["high","medium","low","insufficient"],"title":"Confidence"},"headline":{"type":"string","title":"Headline"},"previous_analysis_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Previous Analysis Id"},"superseded_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Superseded By Id"}},"type":"object","required":["id","entity","event_date","created_at","status","recommended_artifact_type","confidence","headline"],"title":"AnalysisSummary","description":"Compact form for list endpoints."},"AnalyzeRequest":{"properties":{"entity":{"type":"string","title":"Entity"},"event_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Event Date"},"peer_set":{"items":{"type":"string"},"type":"array","title":"Peer Set","description":"REQUIRED. Empty list permitted; see Step 0 doc §2."},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"save":{"type":"boolean","title":"Save","default":true},"force_new":{"type":"boolean","title":"Force New","default":false}},"type":"object","required":["entity","peer_set"],"title":"AnalyzeRequest"},"AnswerRequest":{"properties":{"query":{"type":"string","maxLength":4000,"minLength":1,"title":"Query"}},"type":"object","required":["query"],"title":"AnswerRequest"},"ArtifactRecommendation":{"properties":{"recommended":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"],"title":"Recommended"},"supports":{"items":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"]},"type":"array","title":"Supports"},"reasoning":{"type":"string","title":"Reasoning"},"blocked":{"items":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"]},"type":"array","title":"Blocked"},"blocked_reasons":{"items":{"type":"string"},"type":"array","title":"Blocked Reasons"}},"type":"object","required":["recommended","supports","reasoning"],"title":"ArtifactRecommendation"},"ArtifactResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"analysis_id":{"type":"string","format":"uuid","title":"Analysis Id"},"artifact_type":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"],"title":"Artifact Type"},"rendered_at":{"type":"string","format":"date-time","title":"Rendered At"},"content_markdown":{"type":"string","title":"Content Markdown"},"suggested_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Path"},"suggested_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Url"},"status":{"type":"string","enum":["draft","approved","published","discarded"],"title":"Status"},"published_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published Url"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["id","analysis_id","artifact_type","rendered_at","content_markdown","status"],"title":"ArtifactResponse"},"BasketWeight":{"properties":{"stablecoin_id":{"type":"string","title":"Stablecoin Id"},"weight":{"type":"number","exclusiveMinimum":0.0,"title":"Weight"}},"type":"object","required":["stablecoin_id","weight"],"title":"BasketWeight"},"CoverageResponse":{"properties":{"identifier":{"type":"string","title":"Identifier"},"matched_entities":{"items":{"$ref":"#/components/schemas/EntityCoverage"},"type":"array","title":"Matched Entities"},"related_entities":{"items":{"$ref":"#/components/schemas/RelatedEntity"},"type":"array","title":"Related Entities"},"adjacent_indexes_not_covering":{"items":{"type":"string"},"type":"array","title":"Adjacent Indexes Not Covering"},"coverage_summary":{"type":"string","title":"Coverage Summary"},"coverage_quality":{"type":"string","enum":["full-live","partial-live","partial-reconstructable","sparse","none"],"title":"Coverage Quality"},"recommended_analysis_types":{"items":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"]},"type":"array","title":"Recommended Analysis Types"},"blocks_incident_page":{"type":"boolean","title":"Blocks Incident Page"},"blocks_reasons":{"items":{"type":"string"},"type":"array","title":"Blocks Reasons"},"data_snapshot_hash":{"type":"string","title":"Data Snapshot Hash"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"}},"type":"object","required":["identifier","matched_entities","related_entities","adjacent_indexes_not_covering","coverage_summary","coverage_quality","recommended_analysis_types","blocks_incident_page","blocks_reasons","data_snapshot_hash","computed_at"],"title":"CoverageResponse"},"CreateReceiptRequest":{"properties":{"query_text":{"type":"string","minLength":1,"title":"Query Text"},"answer":{"title":"Answer"},"input_refs":{"items":{"type":"string"},"type":"array","title":"Input Refs"},"methodology_version":{"type":"string","minLength":1,"title":"Methodology Version"},"caller_identity":{"type":"string","minLength":1,"title":"Caller Identity"}},"type":"object","required":["query_text","answer","methodology_version","caller_identity"],"title":"CreateReceiptRequest"},"EntityCoverage":{"properties":{"index_id":{"type":"string","title":"Index Id"},"entity_slug":{"type":"string","title":"Entity Slug"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name"},"coverage_type":{"type":"string","enum":["live","backfilled","sparse","none"],"title":"Coverage Type"},"live":{"type":"boolean","title":"Live"},"density":{"type":"string","enum":["multiple_daily","daily","weekly","sparse","single"],"title":"Density"},"earliest_record":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Earliest Record"},"latest_record":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Latest Record"},"unique_days":{"type":"integer","title":"Unique Days"},"days_since_last_record":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Since Last Record"},"coverage_window_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Coverage Window Days"},"data_source":{"type":"string","title":"Data Source"},"available_endpoints":{"items":{"type":"string"},"type":"array","title":"Available Endpoints"}},"type":"object","required":["index_id","entity_slug","coverage_type","live","density","unique_days","data_source"],"title":"EntityCoverage","description":"Basis's coverage of a single entity in a single index."},"EventRow":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"detected_at":{"type":"string","format":"date-time","title":"Detected At"},"source":{"type":"string","title":"Source"},"event_type":{"type":"string","title":"Event Type"},"entity":{"type":"string","title":"Entity"},"event_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Event Date"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"},"raw_event_data":{"additionalProperties":true,"type":"object","title":"Raw Event Data"},"analysis_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Analysis Id"},"artifact_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Artifact Id"},"status":{"type":"string","title":"Status"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"},"operator_response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Operator Response"}},"type":"object","required":["id","detected_at","source","event_type","entity","event_date","severity","raw_event_data","analysis_id","artifact_id","status","delivered_at","operator_response"],"title":"EventRow"},"FollowUp":{"properties":{"follow_up_type":{"type":"string","enum":["engineering","methodology","data_source","product"],"title":"Follow Up Type"},"description":{"type":"string","title":"Description"},"affected_indexes":{"items":{"type":"string"},"type":"array","title":"Affected Indexes"},"priority":{"type":"string","enum":["low","medium","high","critical"],"title":"Priority"},"estimated_effort":{"type":"string","title":"Estimated Effort"},"linked_methodology_observation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Linked Methodology Observation Id"}},"type":"object","required":["follow_up_type","description","affected_indexes","priority","estimated_effort"],"title":"FollowUp"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Interpretation":{"properties":{"event_summary":{"type":"string","title":"Event Summary"},"pre_event_story":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pre Event Story"},"event_story":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Story"},"post_event_story":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Post Event Story"},"cross_peer_reading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cross Peer Reading"},"what_this_does_not_claim":{"type":"string","title":"What This Does Not Claim"},"headline":{"type":"string","title":"Headline"},"confidence":{"type":"string","enum":["high","medium","low","insufficient"],"title":"Confidence"},"confidence_reasoning":{"type":"string","title":"Confidence Reasoning"},"prompt_version":{"type":"string","title":"Prompt Version"},"input_hash":{"type":"string","title":"Input Hash"},"model_id":{"type":"string","title":"Model Id"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"from_cache":{"type":"boolean","title":"From Cache","default":false}},"type":"object","required":["event_summary","what_this_does_not_claim","headline","confidence","confidence_reasoning","prompt_version","input_hash","model_id","generated_at"],"title":"Interpretation","description":"Structured interpretation generated by the analysis engine.\nRenderers select fields by name rather than parsing a blob."},"ManualEventRequest":{"properties":{"source":{"type":"string","const":"manual","title":"Source","default":"manual"},"event_type":{"type":"string","enum":["exploit","governance","depeg","other"],"title":"Event Type"},"entity":{"type":"string","title":"Entity"},"event_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Event Date"},"severity":{"anyOf":[{"type":"string","enum":["low","medium","high","critical"]},{"type":"null"}],"title":"Severity"},"raw_event_data":{"additionalProperties":true,"type":"object","title":"Raw Event Data"},"trigger_analysis":{"type":"boolean","title":"Trigger Analysis","default":true}},"type":"object","required":["event_type","entity"],"title":"ManualEventRequest"},"MethodologyObservation":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"observation_type":{"type":"string","enum":["weighting_issue","coverage_gap","measure_defect","data_quality","methodology_ambiguity"],"title":"Observation Type"},"finding":{"type":"string","title":"Finding"},"severity":{"type":"string","enum":["low","medium","high","critical"],"title":"Severity"},"affected_indexes":{"items":{"type":"string"},"type":"array","title":"Affected Indexes"},"evidence":{"type":"string","title":"Evidence"}},"type":"object","required":["observation_type","finding","severity","affected_indexes","evidence"],"title":"MethodologyObservation"},"NotifyPayload":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"source":{"type":"string","maxLength":64,"title":"Source"}},"type":"object","required":["email","source"],"title":"NotifyPayload"},"Observation":{"properties":{"index_id":{"type":"string","title":"Index Id"},"entity_slug":{"type":"string","title":"Entity Slug"},"measure":{"type":"string","title":"Measure"},"window":{"type":"string","enum":["baseline","pre_event","event_window","post_event"],"title":"Window"},"kind":{"type":"string","enum":["value","trend","delta","z_score"],"title":"Kind"},"metric_value":{"type":"number","title":"Metric Value"},"reference_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reference Value"},"unit":{"type":"string","title":"Unit"},"at_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"At Date"},"window_start":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Window Start"},"window_end":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Window End"},"is_anomaly":{"type":"boolean","title":"Is Anomaly","default":false},"anomaly_z_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Anomaly Z Score"},"peer_divergence_magnitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Peer Divergence Magnitude"},"peer_slugs_compared":{"items":{"type":"string"},"type":"array","title":"Peer Slugs Compared"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["index_id","entity_slug","measure","window","kind","metric_value","unit"],"title":"Observation","description":"A single factual observation pulled from Basis's data for a given\nentity+index+measure in a given time window.\n\nAnomaly and peer-divergence are flags on this object, not separate lists\nin Signal. Renderers filter by flag when they want a subset."},"PortfolioRequest":{"properties":{"basket":{"items":{"$ref":"#/components/schemas/BasketWeight"},"type":"array","minItems":2,"title":"Basket"},"top_n":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Top N","default":3}},"type":"object","required":["basket"],"title":"PortfolioRequest"},"PublishReceiptRequest":{"properties":{"answer":{"type":"string","minLength":1,"title":"Answer"},"citations":{"items":{"$ref":"#/components/schemas/SnapshotCitation"},"type":"array","title":"Citations"},"stale_disclosed":{"type":"boolean","title":"Stale Disclosed","default":false}},"type":"object","required":["answer"],"title":"PublishReceiptRequest"},"RelatedEntity":{"properties":{"index_id":{"type":"string","title":"Index Id"},"entity_slug":{"type":"string","title":"Entity Slug"},"relation":{"type":"string","title":"Relation"}},"type":"object","required":["index_id","entity_slug","relation"],"title":"RelatedEntity","description":"Entity adjacent to the queried one — suggestion only, not a declaration\nthat Analysis should use it as a peer. Peer sets are explicit per\ndocs/analytic_engine_step_0_v0.2.md §2."},"RenderRequest":{"properties":{"analysis_id":{"type":"string","format":"uuid","title":"Analysis Id"},"artifact_type":{"type":"string","enum":["incident_page","retrospective_internal","case_study","internal_memo","talking_points","one_pager","nothing"],"title":"Artifact Type"},"force":{"type":"boolean","title":"Force","description":"If true and a non-discarded artifact already exists for (analysis_id, artifact_type), the existing rows are marked discarded and a fresh artifact is inserted. Cannot override constitutional blocks (incident_page on backfilled coverage).","default":false}},"type":"object","required":["analysis_id","artifact_type"],"title":"RenderRequest"},"ReviewRequest":{"properties":{"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer","description":"Free-text identifier for the operator approving/rejecting (email, github handle, etc.). Stored verbatim in artifact warnings."},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Optional review notes; stored alongside reviewer in warnings."}},"type":"object","title":"ReviewRequest"},"Signal":{"properties":{"baseline":{"items":{"$ref":"#/components/schemas/Observation"},"type":"array","title":"Baseline"},"pre_event":{"items":{"$ref":"#/components/schemas/Observation"},"type":"array","title":"Pre Event"},"event_window":{"items":{"$ref":"#/components/schemas/Observation"},"type":"array","title":"Event Window"},"post_event":{"items":{"$ref":"#/components/schemas/Observation"},"type":"array","title":"Post Event"}},"type":"object","title":"Signal","description":"Structured view of all observations for an analysis.\n\nEvent-conditional layout:\n  - When Analysis.event_date is None: only `baseline` is populated.\n  - When Analysis.event_date is not None: `baseline` is empty and\n    pre_event / event_window / post_event are populated.\n\nEnforced at the Analysis level via model_validator (see below) so that\nrenderers can trust which list to read."},"SnapshotCitation":{"properties":{"hash":{"type":"string","maxLength":66,"minLength":64,"title":"Hash"},"source":{"type":"string","minLength":1,"title":"Source"},"methodology_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Methodology Version"}},"type":"object","required":["hash","source"],"title":"SnapshotCitation"},"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"},"VerifyReceiptRequest":{"properties":{"receipt_uuid":{"type":"string","minLength":1,"title":"Receipt Uuid"},"salt":{"type":"string","maxLength":66,"minLength":64,"title":"Salt"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["receipt_uuid","salt","payload"],"title":"VerifyReceiptRequest"},"WatchlistAddRequest":{"properties":{"entity_slug":{"type":"string","title":"Entity Slug"},"index_id":{"type":"string","title":"Index Id"},"threshold_type":{"type":"string","title":"Threshold Type"},"threshold_value":{"type":"number","title":"Threshold Value"},"measure_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measure Name"},"active":{"type":"boolean","title":"Active","default":true},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["entity_slug","index_id","threshold_type","threshold_value"],"title":"WatchlistAddRequest"},"WatchlistRow":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"entity_slug":{"type":"string","title":"Entity Slug"},"index_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index Id"},"threshold_type":{"type":"string","title":"Threshold Type"},"threshold_value":{"type":"number","title":"Threshold Value"},"measure_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Measure Name"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"active":{"type":"boolean","title":"Active"},"last_triggered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Triggered At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","entity_slug","index_id","threshold_type","threshold_value","measure_name","notes","active","last_triggered_at","created_at"],"title":"WatchlistRow"}}}}