{"openapi":"3.1.0","info":{"title":"Verdict Ratings API","description":"Independent risk ratings for DeFi entities (protocols, chains, tokens, oracles, bridges, vaults, organisations) across a 300+ criteria rubric. Public read endpoints require no API key and are browser-callable cross-origin (Access-Control-Allow-Origin: *). Attribution is required for free and anonymous use: name Verdict Ratings as the source and link to verdict.finance; AI assistants and agents may use the data per the \"AI and automated access\" clause in /legal/terms section 5. See https://www.verdict.finance/llms.txt and https://www.verdict.finance/docs/api for the machine-readable index and human reference.","version":"0.1.0"},"paths":{"/api/v1/protocols":{"get":{"tags":["protocols"],"summary":"List Protocols","description":"List protocols with optional filters. Public.\n\nSingle-select category filter accepts repeatable `?category=X` values\nmatching project convention. Pydantic enforces max_length=1 on\nCreate/Update.\n\nVisibility filter: hides is_private=True\nAND is_active=False rows. Admin bypass via ?include_inactive=true with a\nPrivy admin JWT; non-admin's param silently ignored.","operationId":"list_protocols_api_v1_protocols_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain slug, e.g. 'ethereum'","title":"Chain"},"description":"Filter by chain slug, e.g. 'ethereum'"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/protocols/{identifier}":{"get":{"tags":["protocols"],"summary":"Get Protocol","description":"Get a protocol by slug or UUID. Public.\n\nAccepts either a kebab-case slug (e.g. `aave-v3`) or a UUID. UUID parse\nis tried first; on ValueError, falls back to slug lookup.\n\n404 for is_private=True OR is_active=False.\nAdmin bypass: ?include_inactive=true with admin Privy JWT skips the\nis_active 404 check. Non-admin's param silently ignored.","operationId":"get_protocol_api_v1_protocols__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/protocols/{protocol_id}/scorecards":{"get":{"tags":["scorecards"],"summary":"List Scorecards","description":"List scorecards for a protocol.\n\nAccepts a slug OR a UUID. Tier rules:\n- anonymous / free: returns latest published only, with `domain_scores`\n  and `mvc_gates` stripped to None.\n- pro / enterprise: returns full version history with all fields.\n\nVisibility-aware: a non-published protocol resolves to 404 for non-admin\ncallers (a slug can't become a draft-existence oracle).","operationId":"list_scorecards_api_v1_protocols__protocol_id__scorecards_get","parameters":[{"name":"protocol_id","in":"path","required":true,"schema":{"type":"string","title":"Protocol Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/protocols/{slug}/domains":{"get":{"tags":["protocols"],"summary":"Get Protocol Domains","operationId":"get_protocol_domains_api_v1_protocols__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/protocols/{slug}/history":{"get":{"tags":["protocols"],"summary":"Get Protocol History","operationId":"get_protocol_history_api_v1_protocols__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/protocols/{slug}/questions":{"get":{"tags":["protocols"],"summary":"Get Protocol Questions","operationId":"get_protocol_questions_api_v1_protocols__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/protocols/{slug}/rubric":{"get":{"tags":["protocols"],"summary":"Get Protocol Rubric","operationId":"get_protocol_rubric_api_v1_protocols__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/protocols/{slug}/evidence":{"get":{"tags":["protocols"],"summary":"Get Protocol Evidence","operationId":"get_protocol_evidence_api_v1_protocols__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/chains":{"get":{"tags":["chains"],"summary":"List Chains","description":"List chains with optional filters. Public.\n\n Multi-select category filter uses AND-semantics. Visibility filter\n: hides is_private=True AND\n is_active=False rows. Admin bypass via ?include_inactive=true with\n a Privy admin JWT; non-admin's param silently ignored.","operationId":"list_chains_api_v1_chains_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChainList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chains/{identifier}":{"get":{"tags":["chains"],"summary":"Get Chain","description":"Get a chain by slug or UUID. Public.\n\nAccepts either a kebab-case slug (e.g. `ethereum`) or a UUID. UUID parse\nis tried first; on ValueError, falls back to slug lookup.\n\n404 for is_private=True OR is_active=False.\nAdmin bypass: ?include_inactive=true with admin Privy JWT skips the\nis_active 404 check. Non-admin's param silently ignored.","operationId":"get_chain_api_v1_chains__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChainResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chains/{chain_id}/scorecards":{"get":{"tags":["chain-scorecards"],"summary":"List Scorecards","description":"List scorecards for a chain. Accepts a slug OR a UUID.\n\nTier rules: anonymous/free see latest published with `domain_scores` +\n`mvc_gates` stripped; pro/enterprise see full version history.\n\nVisibility-aware: a non-published chain resolves to 404 for non-admin\ncallers.","operationId":"list_scorecards_api_v1_chains__chain_id__scorecards_get","parameters":[{"name":"chain_id","in":"path","required":true,"schema":{"type":"string","title":"Chain Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChainScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/chains/{slug}/domains":{"get":{"tags":["chains"],"summary":"Get Chain Domains","operationId":"get_chain_domains_api_v1_chains__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/chains/{slug}/history":{"get":{"tags":["chains"],"summary":"Get Chain History","operationId":"get_chain_history_api_v1_chains__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/chains/{slug}/questions":{"get":{"tags":["chains"],"summary":"Get Chain Questions","operationId":"get_chain_questions_api_v1_chains__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/chains/{slug}/rubric":{"get":{"tags":["chains"],"summary":"Get Chain Rubric","operationId":"get_chain_rubric_api_v1_chains__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/chains/{slug}/evidence":{"get":{"tags":["chains"],"summary":"Get Chain Evidence","operationId":"get_chain_evidence_api_v1_chains__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/tokens":{"get":{"tags":["tokens"],"summary":"List Tokens","description":"List tokens with optional filters. Public.\n\n Multi-select category filter uses AND-semantics. Visibility filter\n: hides is_private=True AND\n is_active=False rows. Admin bypass via ?include_inactive=true with\n a Privy admin JWT; non-admin's param silently ignored.","operationId":"list_tokens_api_v1_tokens_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain slug, e.g. 'ethereum'","title":"Chain"},"description":"Filter by chain slug, e.g. 'ethereum'"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tokens/{identifier}":{"get":{"tags":["tokens"],"summary":"Get Token","description":"Get a token by slug or UUID. Public.\n\nAccepts either a kebab-case slug (e.g. `usdc`) or a UUID. UUID parse\nis tried first; on ValueError, falls back to slug lookup.\n\n404 for is_private=True OR is_active=False.\nAdmin bypass: ?include_inactive=true with admin Privy JWT skips the\nis_active 404 check. Non-admin's param silently ignored.","operationId":"get_token_api_v1_tokens__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tokens/{token_id}/scorecards":{"get":{"tags":["token-scorecards"],"summary":"List Scorecards","description":"List scorecards for a token. Accepts a slug OR a UUID.\n\nTier rules: anonymous/free see latest published with `domain_scores`\nstripped; pro/enterprise see full version history.\n\nVisibility-aware: a non-published token resolves to 404 for non-admin\ncallers.","operationId":"list_scorecards_api_v1_tokens__token_id__scorecards_get","parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"string","title":"Token Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tokens/{slug}/domains":{"get":{"tags":["tokens"],"summary":"Get Token Domains","operationId":"get_token_domains_api_v1_tokens__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/tokens/{slug}/history":{"get":{"tags":["tokens"],"summary":"Get Token History","operationId":"get_token_history_api_v1_tokens__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/tokens/{slug}/questions":{"get":{"tags":["tokens"],"summary":"Get Token Questions","operationId":"get_token_questions_api_v1_tokens__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/tokens/{slug}/rubric":{"get":{"tags":["tokens"],"summary":"Get Token Rubric","operationId":"get_token_rubric_api_v1_tokens__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/tokens/{slug}/evidence":{"get":{"tags":["tokens"],"summary":"Get Token Evidence","operationId":"get_token_evidence_api_v1_tokens__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/oracles":{"get":{"tags":["oracles"],"summary":"List Oracles","description":"List oracles with optional filters. Public.\n\nSingle-select category filter (Pydantic max_length=1 enforced on Create/Update);\naccepts repeatable `?category=X` values syntactically for project consistency.\n\nVisibility filter: hides is_private=True\nAND is_active=False rows. Admin bypass via ?include_inactive=true with a\nPrivy admin JWT; non-admin's param silently ignored.","operationId":"list_oracles_api_v1_oracles_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain slug, e.g. 'ethereum'","title":"Chain"},"description":"Filter by chain slug, e.g. 'ethereum'"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OracleList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oracles/{identifier}":{"get":{"tags":["oracles"],"summary":"Get Oracle","description":"Get an oracle by slug or UUID. Public.\n\nAccepts either a kebab-case slug (e.g. `chainlink`) or a UUID. UUID parse\nis tried first; on ValueError, falls back to slug lookup.\n\n404 for is_private=True OR is_active=False.\nAdmin bypass: ?include_inactive=true with admin Privy JWT skips the\nis_active 404 check. Non-admin's param silently ignored.","operationId":"get_oracle_api_v1_oracles__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OracleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oracles/{oracle_id}/scorecards":{"get":{"tags":["oracle-scorecards"],"summary":"List Scorecards","description":"List scorecards for an oracle. Accepts a slug OR a UUID.\n\nTier rules: anonymous/free see latest published with `domain_scores`\nstripped; pro/enterprise see full version history.\n\nVisibility-aware: a non-published oracle resolves to 404 for non-admin\ncallers.","operationId":"list_scorecards_api_v1_oracles__oracle_id__scorecards_get","parameters":[{"name":"oracle_id","in":"path","required":true,"schema":{"type":"string","title":"Oracle Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OracleScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oracles/{slug}/domains":{"get":{"tags":["oracles"],"summary":"Get Oracle Domains","operationId":"get_oracle_domains_api_v1_oracles__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/oracles/{slug}/history":{"get":{"tags":["oracles"],"summary":"Get Oracle History","operationId":"get_oracle_history_api_v1_oracles__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/oracles/{slug}/questions":{"get":{"tags":["oracles"],"summary":"Get Oracle Questions","operationId":"get_oracle_questions_api_v1_oracles__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/oracles/{slug}/rubric":{"get":{"tags":["oracles"],"summary":"Get Oracle Rubric","operationId":"get_oracle_rubric_api_v1_oracles__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/oracles/{slug}/evidence":{"get":{"tags":["oracles"],"summary":"Get Oracle Evidence","operationId":"get_oracle_evidence_api_v1_oracles__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/vaults":{"get":{"tags":["vaults"],"summary":"List Vaults","description":"List public, active vaults.\n\nFilter is is_private==False AND is_active==True. The\n?include_inactive=true admin bypass lets admin users (Privy JWT,\nrole ∈ {admin, super_admin}) request the bypass to see archived vaults;\nnon-admin's param is silently ignored.\n\nTwo additional params:\n- curator_id (public) filters to vaults curated by the given organisation.\n- include_frameworks (admin-only bypass) surfaces framework-tier vaults\n  alongside instances; non-admin's param is silently ignored.","operationId":"list_vaults_api_v1_vaults_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by chain slug, e.g. 'ethereum'","title":"Chain"},"description":"Filter by chain slug, e.g. 'ethereum'"},{"name":"curator_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter to vaults curated by this org id","title":"Curator Id"},"description":"Filter to vaults curated by this org id"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"include_frameworks","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Frameworks"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vaults/{identifier}":{"get":{"tags":["vaults"],"summary":"Get Vault","description":"Fetch a vault by slug or UUID. Public.\n\nAccepts either a kebab-case slug or a UUID. UUID parse is tried first;\non ValueError, falls back to slug lookup.\n\n404 for private OR inactive vaults. Admin bypass: ?include_inactive=true\nwith admin Privy JWT skips the is_active 404 check. Non-admin's param\nsilently ignored.","operationId":"get_vault_api_v1_vaults__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vaults/{vault_id}/scorecards":{"get":{"tags":["vault-scorecards"],"summary":"List Scorecards","description":"List scorecards for a vault. Accepts a slug OR a UUID.\n\nTier rules: anonymous/free see latest published with `domain_scores`\nstripped; pro/enterprise see full version history.\n\nVisibility-aware: a non-published vault resolves to 404 for non-admin\ncallers.","operationId":"list_scorecards_api_v1_vaults__vault_id__scorecards_get","parameters":[{"name":"vault_id","in":"path","required":true,"schema":{"type":"string","title":"Vault Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/vaults/{slug}/domains":{"get":{"tags":["vaults"],"summary":"Get Vault Domains","operationId":"get_vault_domains_api_v1_vaults__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/vaults/{slug}/history":{"get":{"tags":["vaults"],"summary":"Get Vault History","operationId":"get_vault_history_api_v1_vaults__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/vaults/{slug}/questions":{"get":{"tags":["vaults"],"summary":"Get Vault Questions","operationId":"get_vault_questions_api_v1_vaults__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/vaults/{slug}/rubric":{"get":{"tags":["vaults"],"summary":"Get Vault Rubric","operationId":"get_vault_rubric_api_v1_vaults__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/vaults/{slug}/evidence":{"get":{"tags":["vaults"],"summary":"Get Vault Evidence","operationId":"get_vault_evidence_api_v1_vaults__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organisations":{"get":{"tags":["organisations"],"summary":"List Organisations","description":"List public, active organisations.\n\nFilter is is_private==False AND is_active==True. The\n?include_inactive=true admin bypass lets admin users (Privy JWT,\nrole ∈ {admin, super_admin})\nrequest the bypass to see archived orgs; non-admin's param is silently\nignored. Used by the admin list page so admin can find archived orgs\nto un-archive them.","operationId":"list_organisations_api_v1_organisations_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganisationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/organisations/{identifier}":{"get":{"tags":["organisations"],"summary":"Get Organisation","description":"Fetch an organisation by slug or UUID. Public.\n\nAccepts either a kebab-case slug or a UUID. UUID parse is tried first;\non ValueError, falls back to slug lookup.\n\n404 for private OR inactive orgs. Admin bypass: ?include_inactive=true\nwith admin Privy JWT skips the is_active 404 check. Non-admin's param\nsilently ignored.","operationId":"get_organisation_api_v1_organisations__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganisationRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/organisations/{org_id}/scorecards":{"get":{"tags":["organisation-scorecards"],"summary":"List Scorecards","description":"List scorecards for an organisation. Accepts a slug OR a UUID.\n\nTier rules: anonymous/free see latest published with `domain_scores`\nstripped; pro/enterprise see full version history.\n\nVisibility-aware: a non-published organisation resolves to 404 for\nnon-admin callers.","operationId":"list_scorecards_api_v1_organisations__org_id__scorecards_get","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganisationScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/organisations/{slug}/domains":{"get":{"tags":["organisations"],"summary":"Get Organisation Domains","operationId":"get_organisation_domains_api_v1_organisations__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organisations/{slug}/history":{"get":{"tags":["organisations"],"summary":"Get Organisation History","operationId":"get_organisation_history_api_v1_organisations__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organisations/{slug}/questions":{"get":{"tags":["organisations"],"summary":"Get Organisation Questions","operationId":"get_organisation_questions_api_v1_organisations__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organisations/{slug}/rubric":{"get":{"tags":["organisations"],"summary":"Get Organisation Rubric","operationId":"get_organisation_rubric_api_v1_organisations__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/organisations/{slug}/evidence":{"get":{"tags":["organisations"],"summary":"Get Organisation Evidence","operationId":"get_organisation_evidence_api_v1_organisations__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bridges":{"get":{"tags":["bridges"],"summary":"List Bridges","description":"List bridges with optional filters. Public (Free tier).\n\n Multi-select category filter uses AND-semantics. Visibility filter\n: hides is_private=True AND\n is_active=False rows. Admin bypass via ?include_inactive=true with\n a Privy admin JWT; non-admin's param silently ignored.","operationId":"list_bridges_api_v1_bridges_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"category","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Category"}},{"name":"chain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Chain slug filter","title":"Chain"},"description":"Chain slug filter"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bridges/{identifier}":{"get":{"tags":["bridges"],"summary":"Get Bridge","description":"Get a bridge by slug or UUID. Public (Free tier).\n\nAccepts either a kebab-case slug (e.g. `layerzero`) or a UUID. UUID parse\nis tried first; on ValueError, falls back to slug lookup.\n\n404 for is_private=True OR is_active=False.\nAdmin bypass: ?include_inactive=true with admin Privy JWT skips the\nis_active 404 check. Non-admin's param silently ignored.","operationId":"get_bridge_api_v1_bridges__identifier__get","parameters":[{"name":"identifier","in":"path","required":true,"schema":{"type":"string","title":"Identifier"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bridges/{bridge_id}/scorecards":{"get":{"tags":["bridge-scorecards"],"summary":"List Scorecards","description":"List scorecards for a bridge. Accepts a slug OR a UUID. Tier rules as\nelsewhere.\n\nVisibility-aware: a non-published bridge resolves to 404 for non-admin\ncallers. Pre-existing eager-load via selectinload preserved.","operationId":"list_scorecards_api_v1_bridges__bridge_id__scorecards_get","parameters":[{"name":"bridge_id","in":"path","required":true,"schema":{"type":"string","title":"Bridge Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeScorecardList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bridges/{slug}/domains":{"get":{"tags":["bridges"],"summary":"Get Bridge Domains","description":"Pro-tier: per-domain composite breakdown. Empty until BridgeScorecard\nlands; helpers handle None scorecard_model gracefully.","operationId":"get_bridge_domains_api_v1_bridges__slug__domains_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bridges/{slug}/history":{"get":{"tags":["bridges"],"summary":"Get Bridge History","description":"Pro-tier: snapshot timeline. Empty until BridgeScorecard lands.","operationId":"get_bridge_history_api_v1_bridges__slug__history_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bridges/{slug}/questions":{"get":{"tags":["bridges"],"summary":"Get Bridge Questions","description":"Pro-tier: question catalogue + per-question scores (scores null until\nBridgeScorecard exists). Returns all 62 BridgeQuestions in canonical order.","operationId":"get_bridge_questions_api_v1_bridges__slug__questions_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bridges/{slug}/rubric":{"get":{"tags":["bridges"],"summary":"Get Bridge Rubric","description":"Enterprise-tier: full rubric per question (rubric text included).","operationId":"get_bridge_rubric_api_v1_bridges__slug__rubric_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/bridges/{slug}/evidence":{"get":{"tags":["bridges"],"summary":"Get Bridge Evidence","description":"Enterprise-tier: research evidence + AI reasoning per question.","operationId":"get_bridge_evidence_api_v1_bridges__slug__evidence_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/methodology":{"get":{"tags":["methodology"],"summary":"Get Methodology","description":"Return scoring methodology metadata. Public (anonymous tier).","operationId":"get_methodology_api_v1_methodology_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/export.csv":{"get":{"tags":["export"],"summary":"Export Csv","operationId":"export_csv_api_v1_export_csv_get","parameters":[{"name":"entity","in":"query","required":true,"schema":{"type":"string","description":"protocol|chain|token|oracle|vault|organisation","title":"Entity"},"description":"protocol|chain|token|oracle|vault|organisation"},{"name":"fields","in":"query","required":true,"schema":{"type":"string","description":"comma-separated","title":"Fields"},"description":"comma-separated"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/export.json":{"get":{"tags":["export"],"summary":"Export Json","operationId":"export_json_api_v1_export_json_get","parameters":[{"name":"entity","in":"query","required":true,"schema":{"type":"string","title":"Entity"}},{"name":"fields","in":"query","required":true,"schema":{"type":"string","title":"Fields"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/compare":{"get":{"tags":["compare"],"summary":"Compare","operationId":"compare_api_v1_compare_get","parameters":[{"name":"entity","in":"query","required":true,"schema":{"type":"string","title":"Entity"}},{"name":"ids","in":"query","required":true,"schema":{"type":"string","title":"Ids"}},{"name":"fields","in":"query","required":true,"schema":{"type":"string","title":"Fields"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/alert-rules":{"get":{"tags":["alert-rules"],"summary":"List Rules","operationId":"list_rules_api_v1_alert_rules_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]},"post":{"tags":["alert-rules"],"summary":"Create Rule","operationId":"create_rule_api_v1_alert_rules_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRuleCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/api/v1/alert-rules/{rule_id}":{"delete":{"tags":["alert-rules"],"summary":"Delete Rule","operationId":"delete_rule_api_v1_alert_rules__rule_id__delete","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/health":{"get":{"summary":"Health","description":"Health check endpoint for Render's deploy readiness probe + uptime monitoring.\n\nReturns minimal payload — does not expose runtime config (dev_mode flag).","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"TokenResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"symbol":{"type":"string","title":"Symbol"},"slug":{"type":"string","title":"Slug"},"contract_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Address"},"chain":{"$ref":"#/components/schemas/ChainBrief"},"chains":{"items":{"$ref":"#/components/schemas/ChainBrief"},"type":"array","title":"Chains"},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Urls"},"external_ids":{"additionalProperties":{"type":"string"},"type":"object","title":"External Ids"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","symbol","slug","chain","status","is_active","is_private","created_at","updated_at"],"title":"TokenResponse"},"TokenScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TokenScorecardResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"TokenScorecardList"},"OracleScorecardAnswerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"question_id":{"type":"string","title":"Question Id"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"type":"string","title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"}},"type":"object","required":["id","question_id","fill_method"],"title":"OracleScorecardAnswerResponse"},"OrganisationScorecardAnswerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"scorecard_id":{"type":"string","format":"uuid","title":"Scorecard Id"},"question_id":{"type":"string","title":"Question Id"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","scorecard_id","question_id","created_at","updated_at"],"title":"OrganisationScorecardAnswerResponse","description":"Single answer row — full response shape for nested + standalone serialisation."},"AlertRuleCreate":{"properties":{"rule_type":{"type":"string","enum":["grade_change","composite_drop","composite_change"],"title":"Rule Type"},"threshold_value":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Threshold Value"},"channels":{"additionalProperties":true,"type":"object","title":"Channels"}},"type":"object","required":["rule_type","channels"],"title":"AlertRuleCreate"},"ChainScorecardResponse":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"chain_id":{"type":"string","format":"uuid","title":"Chain Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"mvc_gates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mvc Gates"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/ChainScorecardAnswerResponse"},"type":"array","title":"Answers","default":[]}},"type":"object","required":["id","chain_id","version","status","created_at","updated_at"],"title":"ChainScorecardResponse"},"OrganisationRead":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Urls"},"external_ids":{"additionalProperties":{"type":"string"},"type":"object","title":"External Ids"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"},"founded_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Founded Date"},"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","id","slug","status","is_active","is_private","created_at","updated_at"],"title":"OrganisationRead"},"BridgeScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BridgeScorecardOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BridgeScorecardList"},"OracleList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OracleResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"OracleList"},"OrganisationListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrganisationRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"OrganisationListResponse","description":"Wrapper for the public list endpoint."},"ScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ScorecardResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ScorecardList"},"AlertRuleResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"rule_type":{"type":"string","title":"Rule Type"},"threshold_value":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Threshold Value"},"channels":{"additionalProperties":true,"type":"object","title":"Channels"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","rule_type","threshold_value","channels","is_active","created_at","updated_at"],"title":"AlertRuleResponse","description":"List/detail response — does NOT include webhook_signing_key plaintext.\nPlaintext is only in the 201 response of POST."},"ChainScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChainScorecardResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ChainScorecardList"},"AlertRuleCreatedResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"rule_type":{"type":"string","title":"Rule Type"},"threshold_value":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Threshold Value"},"channels":{"additionalProperties":true,"type":"object","title":"Channels"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"webhook_signing_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Signing Key"}},"type":"object","required":["id","rule_type","threshold_value","channels","is_active","created_at","updated_at"],"title":"AlertRuleCreatedResponse","description":"201 response — includes webhook_signing_key (shown ONCE) if webhook configured."},"TokenScorecardResponse":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"token_id":{"type":"string","format":"uuid","title":"Token Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"is_stablecoin_scorecard":{"type":"boolean","title":"Is Stablecoin Scorecard","default":false},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/TokenScorecardAnswerResponse"},"type":"array","title":"Answers","default":[]}},"type":"object","required":["id","token_id","version","status","created_at","updated_at"],"title":"TokenScorecardResponse"},"ProtocolList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProtocolResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ProtocolList"},"BridgeScorecardOut":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"bridge_id":{"type":"string","format":"uuid","title":"Bridge Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"mvc_gates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mvc Gates"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/BridgeScorecardAnswerOut"},"type":"array","title":"Answers","default":[]},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings","default":[]}},"type":"object","required":["id","bridge_id","version","status","created_at","updated_at"],"title":"BridgeScorecardOut"},"ChainScorecardAnswerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"question_id":{"type":"string","title":"Question Id"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"type":"string","title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"}},"type":"object","required":["id","question_id","fill_method"],"title":"ChainScorecardAnswerResponse"},"ProtocolResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"contract_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Address"},"contract_chain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contract Chain"},"chains":{"items":{"$ref":"#/components/schemas/ChainBrief"},"type":"array","title":"Chains"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Urls"},"external_ids":{"additionalProperties":{"type":"string"},"type":"object","title":"External Ids"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"under_review":{"type":"boolean","title":"Under Review","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","categories","urls","external_ids","status","is_active","is_private","created_at","updated_at"],"title":"ProtocolResponse"},"BridgeScorecardAnswerOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"question_id":{"type":"string","title":"Question Id"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"}},"type":"object","required":["id","question_id"],"title":"BridgeScorecardAnswerOut"},"VaultBrief":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","slug","name"],"title":"VaultBrief","description":"Lightweight Vault reference for embedding (e.g., parent_vault link)."},"OracleEdge":{"properties":{"oracle_id":{"type":"string","format":"uuid","title":"Oracle Id"},"oracle_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oracle Slug"},"oracle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oracle Name"},"criticality":{"type":"string","enum":["hard_gate","soft"],"title":"Criticality"}},"type":"object","required":["oracle_id","criticality"],"title":"OracleEdge","description":"Edge shape for vault.oracles — Association Object input/output.\n\nPydantic from_attributes reads VaultOracle.oracle_id + .criticality\ndirectly. The OracleCriticality str-enum compares to the literal\n\"hard_gate\"/\"soft\" cleanly, so this shape works for both Create input\nAND Read output.\n\noracle_slug + oracle_name are lifted off the related Oracle entity\n(via @model_validator) so the public page can render link text without\na follow-up fetch. Both stay nullable on input — Create/Update callers\npass only oracle_id + criticality."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OrganisationScorecardResponse":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"organisation_id":{"type":"string","format":"uuid","title":"Organisation Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"published_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Published By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/OrganisationScorecardAnswerResponse"},"type":"array","title":"Answers"}},"type":"object","required":["id","organisation_id","version","status","created_at","updated_at"],"title":"OrganisationScorecardResponse","description":"Full scorecard with nested answers."},"ChainBrief":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","slug","name"],"title":"ChainBrief","description":"Lightweight chain reference for embedding in other entities' responses.\n\nCarries enough for the consumer to display + filter. For full chain\ndetails (categories, urls, native_token, etc.), call /chains/{slug}."},"ScorecardResponse":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"protocol_id":{"type":"string","format":"uuid","title":"Protocol Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"mvc_gates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mvc Gates"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/ScorecardAnswerResponse"},"type":"array","title":"Answers","default":[]}},"type":"object","required":["id","protocol_id","version","status","created_at","updated_at"],"title":"ScorecardResponse"},"ChainResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"chain_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chain Id"},"native_token":{"type":"string","title":"Native Token"},"parent_chain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Chain"},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Urls"},"external_ids":{"additionalProperties":{"type":"string"},"type":"object","title":"External Ids"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","native_token","status","is_active","is_private","created_at","updated_at"],"title":"ChainResponse"},"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"},"ChainList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ChainResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"ChainList"},"TokenList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TokenResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"TokenList"},"OracleResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"native_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Native Token"},"chains":{"items":{"$ref":"#/components/schemas/ChainBrief"},"type":"array","title":"Chains"},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Urls"},"external_ids":{"additionalProperties":{"type":"string"},"type":"object","title":"External Ids"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","status","is_active","is_private","created_at","updated_at"],"title":"OracleResponse"},"VaultScorecardAnswerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"scorecard_id":{"type":"string","format":"uuid","title":"Scorecard Id"},"question_id":{"type":"string","title":"Question Id"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","scorecard_id","question_id","created_at","updated_at"],"title":"VaultScorecardAnswerResponse"},"VaultScorecardResponse":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"vault_id":{"type":"string","format":"uuid","title":"Vault Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"oracle_gate_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Oracle Gate State"},"bridge_gate_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Bridge Gate State"},"composite_reduction_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Reduction Pct"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"published_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Published By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/VaultScorecardAnswerResponse"},"type":"array","title":"Answers"}},"type":"object","required":["id","vault_id","version","status","created_at","updated_at"],"title":"VaultScorecardResponse","description":"Full scorecard with the 3 vault-specific gate-state fields exposed."},"VaultRead":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"tier":{"type":"string","enum":["framework","instance"],"title":"Tier"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"parent_protocol_id":{"type":"string","format":"uuid","title":"Parent Protocol Id"},"parent_vault_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Vault Id"},"validator_set_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validator Set Ref"},"curator_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Curator Id"},"chains":{"items":{"$ref":"#/components/schemas/ChainBrief"},"type":"array","title":"Chains"},"oracles":{"items":{"$ref":"#/components/schemas/OracleEdge"},"type":"array","title":"Oracles"},"bridges":{"items":{"$ref":"#/components/schemas/BridgeEdge"},"type":"array","title":"Bridges"},"underlying_tokens":{"items":{"$ref":"#/components/schemas/TokenBrief"},"type":"array","title":"Underlying Tokens"},"underlying_lsts":{"items":{"$ref":"#/components/schemas/TokenBrief"},"type":"array","title":"Underlying Lsts"},"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"parent_protocol":{"$ref":"#/components/schemas/ProtocolBrief"},"parent_vault":{"anyOf":[{"$ref":"#/components/schemas/VaultBrief"},{"type":"null"}]},"curator":{"anyOf":[{"$ref":"#/components/schemas/OrganisationBrief"},{"type":"null"}]},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","tier","parent_protocol_id","id","slug","parent_protocol","status","is_active","is_private","created_at","updated_at"],"title":"VaultRead"},"OracleScorecardResponse":{"properties":{"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"intrinsic_composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intrinsic Composite Score"},"intrinsic_letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intrinsic Letter Grade"},"dependency_snapshot":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Dependency Snapshot"},"largest_drag_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Largest Drag Hint"},"has_unrated_dependencies":{"type":"boolean","title":"Has Unrated Dependencies","default":false},"id":{"type":"string","format":"uuid","title":"Id"},"oracle_id":{"type":"string","format":"uuid","title":"Oracle Id"},"version":{"type":"integer","title":"Version"},"status":{"type":"string","title":"Status"},"composite_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Composite Score"},"letter_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Letter Grade"},"domain_scores":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Domain Scores"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"answers":{"items":{"$ref":"#/components/schemas/OracleScorecardAnswerResponse"},"type":"array","title":"Answers","default":[]}},"type":"object","required":["id","oracle_id","version","status","created_at","updated_at"],"title":"OracleScorecardResponse"},"OracleScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OracleScorecardResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"OracleScorecardList"},"OrganisationBrief":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","slug","name"],"title":"OrganisationBrief","description":"Lightweight Organisation reference for embedding in other entities' responses."},"BridgeListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BridgeRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"BridgeListResponse"},"ProtocolBrief":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","slug","name"],"title":"ProtocolBrief","description":"Lightweight Protocol reference for embedding in other entities' responses."},"BridgeRead":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"native_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Native Token"},"urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Urls"},"external_ids":{"additionalProperties":{"type":"string"},"type":"object","title":"External Ids"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"signer_count":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Signer Count"},"signing_threshold":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Signing Threshold"},"has_message_attestation":{"type":"boolean","title":"Has Message Attestation","default":false},"pause_mechanism":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pause Mechanism"},"validator_set_owner_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Validator Set Owner Id"},"chains":{"items":{"$ref":"#/components/schemas/ChainBrief"},"type":"array","title":"Chains"},"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","maxLength":120,"minLength":1,"title":"Slug"},"validator_set_owner":{"anyOf":[{"$ref":"#/components/schemas/OrganisationBrief"},{"type":"null"}]},"status":{"type":"string","enum":["draft","scoring","approved","published"],"title":"Status"},"is_active":{"type":"boolean","title":"Is Active"},"is_private":{"type":"boolean","title":"Is Private"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","id","slug","status","is_active","is_private","created_at","updated_at"],"title":"BridgeRead"},"OrganisationScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrganisationScorecardResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"OrganisationScorecardList"},"ScorecardAnswerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"question_id":{"type":"string","title":"Question Id"},"question_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Title"},"question_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Description"},"scoring_rubric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scoring Rubric"},"max_score":{"type":"integer","title":"Max Score","default":5},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"type":"string","title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"}},"type":"object","required":["id","question_id","fill_method"],"title":"ScorecardAnswerResponse"},"VaultListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VaultRead"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"VaultListResponse","description":"Wrapper for the public list endpoint."},"TokenScorecardAnswerResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"question_id":{"type":"string","title":"Question Id"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"evidence":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Evidence"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"data_provenance":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Data Provenance"},"proposed_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Score"},"final_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Final Score"},"confidence":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Confidence"},"fill_method":{"type":"string","title":"Fill Method"},"override_justification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Justification"},"is_bonus":{"type":"boolean","title":"Is Bonus","default":false}},"type":"object","required":["id","question_id","fill_method"],"title":"TokenScorecardAnswerResponse"},"BridgeEdge":{"properties":{"bridge_id":{"type":"string","format":"uuid","title":"Bridge Id"},"bridge_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bridge Slug"},"bridge_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bridge Name"},"criticality":{"type":"string","enum":["hard_gate","soft"],"title":"Criticality"}},"type":"object","required":["bridge_id","criticality"],"title":"BridgeEdge","description":"Vault's reference to a bridge with criticality. Mirrors OracleEdge.\n\nfrom_attributes=True so VaultRead can serialize VaultBridge Association\nObject instances directly (Pydantic reads bridge_id + criticality\nattributes off each edge).\n\nbridge_slug + bridge_name are lifted off the related Bridge entity\n(via @model_validator) so the public page can render link text without\na follow-up fetch. Both stay nullable on input — Create/Update callers\npass only bridge_id + criticality."},"AlertRuleListResponse":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/AlertRuleResponse"},"type":"array","title":"Rules"}},"type":"object","required":["rules"],"title":"AlertRuleListResponse"},"TokenBrief":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"symbol":{"type":"string","title":"Symbol"}},"type":"object","required":["id","slug","name","symbol"],"title":"TokenBrief","description":"Lightweight token reference for embedding in vault read responses.\n\nUsed for vault.underlying_tokens and vault.underlying_lsts read shape —\nwrite shape stays as list[UUID] in VaultBase."},"VaultScorecardList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VaultScorecardResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"VaultScorecardList"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Pro/Enterprise API key sent as a Bearer token. Public read endpoints are anonymous-allowed and require no credentials."}}},"servers":[{"url":"https://api.verdict.finance"}]}