{"openapi":"3.1.0","info":{"title":"National OS Japan API","description":"Dashboard API for 1,741 Japanese municipalities","version":"0.8.1"},"paths":{"/api/v1/about":{"get":{"tags":["system","system"],"summary":"About","description":"National OS Japan APIの概要、データソース、更新状況を返す。","operationId":"about_api_v1_about_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health":{"get":{"tags":["system","system"],"summary":"Health Check","description":"APIとDBの稼働状態を確認する。","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/v1/admin/coverage":{"get":{"tags":["system","admin"],"summary":"Get Data Coverage","description":"データカバレッジ管理画面用API。全テーブルの充填状況を返す。","operationId":"get_data_coverage_api_v1_admin_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/prefectures":{"get":{"tags":["master","master"],"summary":"List Prefectures","description":"47都道府県の一覧を返す。地域区分・表示順を含む。","operationId":"list_prefectures_api_v1_prefectures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PrefectureResponse"},"type":"array","title":"Response List Prefectures Api V1 Prefectures Get"}}}}}}},"/api/v1/municipalities":{"get":{"tags":["master","master"],"summary":"List Municipalities","description":"自治体一覧を返す。都道府県・種別・名前でフィルタ可能。exclude_wards=trueで政令市区を除外。","operationId":"list_municipalities_api_v1_municipalities_get","parameters":[{"name":"pref","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"都道府県コード（2桁）","title":"Pref"},"description":"都道府県コード（2桁）"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"自治体種別: 市/町/村/特別区/政令市区","title":"Type"},"description":"自治体種別: 市/町/村/特別区/政令市区"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"自治体名で部分一致検索","title":"Q"},"description":"自治体名で部分一致検索"},{"name":"exclude_wards","in":"query","required":false,"schema":{"type":"boolean","description":"trueで政令市区（171件）を除外し公式1,741件に近い結果を返す","default":false,"title":"Exclude Wards"},"description":"trueで政令市区（171件）を除外し公式1,741件に近い結果を返す"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MunicipalityResponse"},"title":"Response List Municipalities Api V1 Municipalities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/municipalities/{jis_code}":{"get":{"tags":["master","master"],"summary":"Get Municipality","description":"JISコード指定で自治体の詳細情報を返す。境界データの有無も含む。","operationId":"get_municipality_api_v1_municipalities__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MunicipalityDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/municipalities-summary":{"get":{"tags":["master","master"],"summary":"Municipalities Summary","description":"都道府県内の市区町村別財政サマリーを返す。muni choropleth 用。","operationId":"municipalities_summary_api_v1_municipalities_summary_get","parameters":[{"name":"pref","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{2}$","description":"都道府県コード（2桁）","title":"Pref"},"description":"都道府県コード（2桁）"},{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2024,"minimum":2010,"description":"会計年度","title":"Year"},"description":"会計年度"},{"name":"exclude_wards","in":"query","required":false,"schema":{"type":"boolean","description":"政令市区を除外","default":false,"title":"Exclude Wards"},"description":"政令市区を除外"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MunicipalitiesSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/geo/muni/{pref_code}.geojson":{"get":{"tags":["master","master"],"summary":"Muni Geojson","description":"都道府県内の市区町村境界 GeoJSON (FeatureCollection)。choropleth 用。","operationId":"muni_geojson_api_v1_geo_muni__pref_code__geojson_get","parameters":[{"name":"pref_code","in":"path","required":true,"schema":{"type":"string","title":"Pref Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/profile/{jis_code}":{"get":{"tags":["master","profile"],"summary":"Get Profile","description":"自治体の統合プロファイル。最新の人口・財政・スコアを1レスポンスで返す。","operationId":"get_profile_api_v1_profile__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MunicipalityProfile"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiscal/ranking":{"get":{"tags":["fiscal","fiscal"],"summary":"Fiscal Ranking","description":"財政指標によるランキングを返す。年度・ソート項目・昇降順を指定可能。","operationId":"fiscal_ranking_api_v1_fiscal_ranking_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"対象年度（省略時は最新年度）","title":"Year"},"description":"対象年度（省略時は最新年度）"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","description":"ソート項目: revenue_total/expenditure_total/balance_real","default":"revenue_total","title":"Sort"},"description":"ソート項目: revenue_total/expenditure_total/balance_real"},{"name":"order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","description":"並び順: asc/desc","default":"desc","title":"Order"},"description":"並び順: asc/desc"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FiscalRankingItem"},"title":"Response Fiscal Ranking Api V1 Fiscal Ranking Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiscal/{jis_code}":{"get":{"tags":["fiscal","fiscal"],"summary":"Get Fiscal History","description":"指定自治体の全年度の財政データを返す。データソース: e-Stat 地方財政状況調査。","operationId":"get_fiscal_history_api_v1_fiscal__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FiscalSummaryResponse"},"title":"Response Get Fiscal History Api V1 Fiscal  Jis Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fiscal/{jis_code}/{year}":{"get":{"tags":["fiscal","fiscal"],"summary":"Get Fiscal Year","description":"指定自治体の指定年度の財政データを返す。","operationId":"get_fiscal_year_api_v1_fiscal__jis_code___year__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiscalSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/population/{jis_code}":{"get":{"tags":["population","population"],"summary":"Get Population History","description":"指定自治体の全年度の人口データを返す。データソース: e-Stat 国勢調査+人口動態統計。","operationId":"get_population_history_api_v1_population__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PopulationResponse"},"title":"Response Get Population History Api V1 Population  Jis Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/population/{jis_code}/{year}":{"get":{"tags":["population","population"],"summary":"Get Population Year","description":"指定自治体の指定年度の人口データを返す。","operationId":"get_population_year_api_v1_population__jis_code___year__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PopulationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax-receipt/{jis_code}":{"get":{"tags":["tax","tax"],"summary":"Get Tax Receipt","description":"指定自治体の最新年度の歳入内訳を返す。","operationId":"get_tax_receipt_api_v1_tax_receipt__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/geo/prefectures/{pref_code}":{"get":{"tags":["geo","geo"],"summary":"Get Prefecture Geojson","description":"都道府県内の全自治体境界をGeoJSON FeatureCollectionで返す。","operationId":"get_prefecture_geojson_api_v1_geo_prefectures__pref_code__get","parameters":[{"name":"pref_code","in":"path","required":true,"schema":{"type":"string","title":"Pref Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stats/connection-test":{"get":{"tags":["e-stat","e-stat"],"summary":"Stats Connection Test","operationId":"stats_connection_test_api_v1_stats_connection_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/stats/meta/{stats_code}":{"get":{"tags":["e-stat","e-stat"],"summary":"Get Stats Metadata","operationId":"get_stats_metadata_api_v1_stats_meta__stats_code__get","parameters":[{"name":"stats_code","in":"path","required":true,"schema":{"type":"string","title":"Stats Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stats/list":{"get":{"tags":["e-stat","e-stat"],"summary":"List Stats","operationId":"list_stats_api_v1_stats_list_get","parameters":[{"name":"keyword","in":"query","required":false,"schema":{"type":"string","title":"Keyword"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow/{jis_code}":{"get":{"tags":["money-flow"],"summary":"Money Flow","description":"歳出の財源別内訳（Sankey用データ）\n\n国庫/県/自主の財源がどの費目に流れているかを返す。","operationId":"money_flow_api_v1_flow__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1989,"default":2024,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow/summary/{jis_code}":{"get":{"tags":["money-flow"],"summary":"Money Flow Summary","description":"歳入構成+歳出構成（fiscal_summaryベース）\n\nexpenditure_sourceがない年度（2019+）のフォールバック。\nSankey用のクロスリンクはないが、歳入と歳出の構成比を返す。","operationId":"money_flow_summary_api_v1_flow_summary__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1980,"default":2024,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/furusato/ranking":{"get":{"tags":["money-flow"],"summary":"Furusato Ranking","description":"ふるさと納税ランキング","operationId":"furusato_ranking_api_v1_furusato_ranking_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2008,"default":2024,"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/furusato/{jis_code}":{"get":{"tags":["money-flow"],"summary":"Furusato Detail","description":"ふるさと納税の推移","operationId":"furusato_detail_api_v1_furusato__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/node-labels":{"get":{"tags":["flow-map"],"summary":"Flow Map Node Labels","description":"flow_map_edges の node id を表示ラベル (実名) に一括解決する (M4 / ADR-7374)。\n\nV1 (ADR-7374) は corporate tier の `corporate:<法人番号13桁>` を corp_master\n(NTA001 = 国税庁 法人番号公表サイト) の商号に解決。V2 (ADR-7509) で法人番号\n未収録の名寄せ md5 キー (`corporate:<32hex>`) を flow_corporate_md5_names\n(mig 4590 = procurement_contracts.counterparty_name_raw の逆引き matview) の\n調達ポータル記載名に解決する。出所は `label_sources` (id → corp_master |\nprocurement_name_raw) で区別し、他 tier・両表不在キーは `unresolved` に列挙\n(偽ラベルを作らない、N1)。ADR-7304 が予定した node-labels/resolve の実装。","operationId":"flow_map_node_labels_api_v1_flow_map_node_labels_get","parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string","description":"カンマ区切りの node id (例 corporate:8011101028104)。最大 50 個。","title":"Ids"},"description":"カンマ区切りの node id (例 corporate:8011101028104)。最大 50 個。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/national/{fiscal_year}":{"get":{"tags":["flow-map"],"summary":"Flow Map National","description":"公金ルートナビ A 軸フロー (flow_map_edges mview をそのまま提供)。\n\n- `stages`: 段ごとの edge 数 / 金額 summary (常に全段)。\n- `status_summary`: A 軸 5 状態の件数 (status を持つ段のみ)。\n- `edges`: long 形式 edge (`stage` / `from_id` / `to_id` で絞り込み可、\n  `include_edges=false` で省略。`to_id` は in-edge = 上流遡上 drill、BE T6)。\n- pagination: `offset` (edges) / `node_offset` (node_list) で truncated の続きを取る。\n  offset=0 は従来挙動と同値 (v1 後方互換)。\n- tier 順は `tiers`、状態語彙は `status_states` で明示。","operationId":"flow_map_national_api_v1_flow_map_national__fiscal_year__get","parameters":[{"name":"fiscal_year","in":"path","required":true,"schema":{"type":"integer","title":"Fiscal Year"}},{"name":"stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"段で絞り込む (例 'main_expense->item')。未指定は全段。","title":"Stage"},"description":"段で絞り込む (例 'main_expense->item')。未指定は全段。"},{"name":"from_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"始点ノード id で edge を絞る (drill-down 用)。","title":"From Id"},"description":"始点ノード id で edge を絞る (drill-down 用)。"},{"name":"to_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"終点ノード id で edge を絞る (in-edge = ノードから上流へ遡る drill 用、BE T6)。","title":"To Id"},"description":"終点ノード id で edge を絞る (in-edge = ノードから上流へ遡る drill 用、BE T6)。"},{"name":"include_edges","in":"query","required":false,"schema":{"type":"boolean","description":"edge 配列を返すか。false で summary のみ。","default":true,"title":"Include Edges"},"description":"edge 配列を返すか。false で summary のみ。"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200000,"minimum":1,"description":"edge / node 返却上限。","default":50000,"title":"Limit"},"description":"edge / node 返却上限。"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"edge の読み飛ばし件数 (truncated の続きを取る pagination、BE T6)。","default":0,"title":"Offset"},"description":"edge の読み飛ばし件数 (truncated の続きを取る pagination、BE T6)。"},{"name":"node_tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"指定 tier の個別ノード id を展開する (例 'item')。未指定は tier 別集約のみ。","title":"Node Tier"},"description":"指定 tier の個別ノード id を展開する (例 'item')。未指定は tier 別集約のみ。"},{"name":"node_offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"node_list の読み飛ばし件数 (node_truncated の続きを取る、BE T6)。","default":0,"title":"Node Offset"},"description":"node_list の読み飛ばし件数 (node_truncated の続きを取る、BE T6)。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/bridges/{fiscal_year}":{"get":{"tags":["flow-map"],"summary":"Flow Map Bridges","description":"公金ルートナビ A→B 橋 (flow_map_bridges view をそのまま提供)。\n\n- `bridge_state_counts`: 4 値の件数 (structural は lineage_status 由来で実値化, ADR-5204)。\n- `bridge_amount_yen` / `confirmed_amount_yen` / `reach_amount_pct`: 金額被覆。\n  金額の単位は **円** (view 側で national_budget.amount の千円を ×1000、ADR-8631)。\n- `bridges`: 事項ごと 1 行 (`state` 絞り込み可、`include_bridges=false` で省略)。\n- 状態語彙は `bridge_states` で明示。","operationId":"flow_map_bridges_api_v1_flow_map_bridges__fiscal_year__get","parameters":[{"name":"fiscal_year","in":"path","required":true,"schema":{"type":"integer","title":"Fiscal Year"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"bridge_state で絞り込む (confirmed/estimated/unrecorded/structural)。未指定は全件。","title":"State"},"description":"bridge_state で絞り込む (confirmed/estimated/unrecorded/structural)。未指定は全件。"},{"name":"include_bridges","in":"query","required":false,"schema":{"type":"boolean","description":"bridge 配列を返すか。false で summary のみ。","default":true,"title":"Include Bridges"},"description":"bridge 配列を返すか。false で summary のみ。"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200000,"minimum":1,"description":"bridge 返却上限。","default":5000,"title":"Limit"},"description":"bridge 返却上限。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/burden/{jis_code}":{"get":{"tags":["resident-burden"],"summary":"Resident Burden","description":"住民負担指標 + 同県内・同規模市との比較","operationId":"resident_burden_api_v1_burden__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1989,"default":2022,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/burden/ranking/{metric}":{"get":{"tags":["resident-burden"],"summary":"Burden Ranking","description":"住民負担指標ランキング","operationId":"burden_ranking_api_v1_burden_ranking__metric__get","parameters":[{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1989,"default":2022,"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trace/{jis_code}":{"get":{"tags":["money-trace"],"summary":"Money Trace","description":"国→県→市の金の流れ完全トレース\n\n3階層を結合:\n1. 県の歳入構造（国庫支出金の内訳含む）\n2. 市の歳出の財源内訳（国庫/県/自主）\n3. 市の財政サマリー","operationId":"money_trace_api_v1_trace__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1989,"description":"年度（県データは2023まで、市Sankeyは2018まで）","default":2023,"title":"Year"},"description":"年度（県データは2023まで、市Sankeyは2018まで）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prefectures-overview":{"get":{"tags":["money-trace"],"summary":"Prefectures Overview","description":"全47都道府県の歳入構成を一括取得","operationId":"prefectures_overview_api_v1_prefectures_overview_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2023,"minimum":1989,"description":"年度","default":2023,"title":"Year"},"description":"年度"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prefecture-municipalities/{pref_code}":{"get":{"tags":["money-trace"],"summary":"Prefecture Municipalities","description":"県内全市区町村の歳出規模+財源内訳","operationId":"prefecture_municipalities_api_v1_prefecture_municipalities__pref_code__get","parameters":[{"name":"pref_code","in":"path","required":true,"schema":{"type":"string","title":"Pref Code"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1989,"description":"年度","default":2024,"title":"Year"},"description":"年度"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prefectures-summary":{"get":{"tags":["money-trace"],"summary":"Prefectures Summary","description":"fiscal_summaryを県別に集計 — 2024年度まで対応","operationId":"prefectures_summary_api_v1_prefectures_summary_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1980,"description":"年度","default":2024,"title":"Year"},"description":"年度"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/national-budget-categories":{"get":{"tags":["money-trace"],"summary":"National Budget Categories","description":"国の一般会計歳出を主要経費別に返す（財務省予算書ベース）\n\nfiscal_summaryの全自治体の交付税・国庫支出金合計から\n「地方への配分」を計算し、国の歳出総額と対比する。","operationId":"national_budget_categories_api_v1_national_budget_categories_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2024,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trace/catalog/{fy}":{"get":{"tags":["money-trace"],"summary":"Trace Catalog","description":"/app 公金フロー検証ブラウザ v3 の接続カタログ (P1 T-11・ADR-7419)。\n\nbudget_trace_catalog + modifiers + hops + related_official_sources を費目単位に\n組み立てて返す (正本 = mig 4550)。P0 の FE 静的正本 trace-catalog.ts を T-12 で\n本 endpoint へ置換する (表示同一・二重正本の解消)。\n\n- primary_status は WorkbenchState 6 値 (traceable/continues/mixed/terminal/\n  undisclosed/unconfirmed) の文字列 (mig 4550 D-1)。\n- related_sources.group は relation_type から導出 (official_statistic→statistic /\n  それ以外→account。FE の 2 欄表示 (会計系/統計系) 用)。\n- forbidden_claims は global な UI lint 正本 (費目に依らず全件)。\n- 未収録年度は catalog 空配列 (無言で別年度を出さない)。","operationId":"trace_catalog_api_v1_trace_catalog__fy__get","parameters":[{"name":"fy","in":"path","required":true,"schema":{"type":"integer","title":"Fy"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trace/flow-route/{fy}":{"get":{"tags":["money-trace"],"summary":"Trace Flow Route","description":"/app/flow Flow Route Canvas の事業型チェーン素材 (P0・ADR-7424 / ADR-8456)。\n\nreview_projects + review_project_payees (RSシステム・mig 1030) から\n「事業 → 支出先(実名法人)」の単一段を返す。設計正本 =\nnos-app-flow-kawakudari-design.html v4 §5.2 (P0デモ②)。\n\n- scope=ministry (既定): 指定府省 (ministry) の finalized_amount 上位 limit 件。挙動不変。\n- scope=confirmed (ADR-8456): rs_settlement_bridges(当該FY・bridge_state=confirmed)に\n  src_pid=rs_project_id::text で属す事業を全府省横断で返す (層B 全件 drill 化)。\n  ministry フィルタ無し・上限 _CONFIRMED_SCOPE_CAP。各事業に ministry を付す\n  (府省横断ゆえレスポンス直下 ministry は表示ラベルに使わない)。\n- SAR001 (admin_review_expenditures) は取込破損 (全体572行・flow_block W-Z のみ・\n  2026-07-10 実測) のため不採用。collector 修理は P1。\n- suspect ガード: amount>0 ∧ amount<=finalized_amount ∧ 法人番号 非NULL・非ダミー\n  (同一数字13桁)。ガード落ちの事業は返さない (誤った到達%を出さない)。\n- coverage_pct は「事業→支出先」の**単一段のみ** (R-A: 段またぎ%掛け算禁止)。\n  収録が payee_rank=1 のみのため「上位1者で確認できた割合」であり、\n  事業全体の実支出先分布ではない (payee_scope_note で明示)。\n- 未収録年度・未該当は projects 空配列 (無言で別年度を出さない)。\n- fields=keys (ADR-8681): projects の各要素を project_key + rs_project_id のみに絞る。\n  **行数・行集合・並び順は不変**で、落とした項目は omitted_fields に現れる (N1)。\n  クエリは 1 本のまま (列を削っても同じ heap を読むため DB 側は 18ms しか変わらない=実測。\n  効くのは serialize + 転送で、FY2024 実測 849,116 B → 126,913 B)。\n- select_key / select_name (ADR-8681): 1 事業の詳細を selected として全項目で返す。\n  解決順は select_key 完全一致 → select_name 完全一致 → 並び順の先頭。\n  **追加クエリ 0 本** (同じ rowset から選ぶ) ゆえ fields=keys と併用して\n  「対応表 + 1 事業の詳細」を 1 往復で取れる。\n- include_projects=false (ADR-8681): projects=null にして selected 1 件だけを\n  1 事業ぶんのクエリ (EXISTS 半結合・FY2024 実測 45ms) で解決する。全事業を\n  materialize しない (125ms → 45ms)。select_key / select_name のどちらも一致しない\n  ときだけ、並び順の先頭を得るために全スコープのクエリへ落ちる (稀・selected_source で明示)。\n- payee_kind=nongov / top_payee_amount=N (ADR-8705): projects の**行集合**を\n  「支出先が実名法人」に絞り、支出先記録額の降順で上位 N 件だけ返す。層A\n  (?view=overview の実例枠・ADR-8611) が 1,549 事業を全項目で取っていたのを\n  3 事業に絞るためのもの。**列でなく行を減らす**ので omitted_fields ではなく\n  projects_matched (切る前に条件を満たした総数) で開示する (N1)。\n  判定規則の正本は v_expense_rs_reach (mig 4830) で、FE には持たせない。","operationId":"trace_flow_route_api_v1_trace_flow_route__fy__get","parameters":[{"name":"fy","in":"path","required":true,"schema":{"type":"integer","title":"Fy"}},{"name":"ministry","in":"query","required":false,"schema":{"type":"string","description":"府省名（review_projects.ministry_name 完全一致）","default":"厚生労働省","title":"Ministry"},"description":"府省名（review_projects.ministry_name 完全一致）"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":8,"title":"Limit"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string","description":"ministry=府省フィルタ+limit上位 (既定) / confirmed=決算費目接続済(全府省・ADR-8456)","default":"ministry","title":"Scope"},"description":"ministry=府省フィルタ+limit上位 (既定) / confirmed=決算費目接続済(全府省・ADR-8456)"},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"'keys' で projects の各要素を project_key + rs_project_id のみに絞る (ADR-8681)。行数は不変で、落とした項目は omitted_fields で明示。未指定は全項目。","title":"Fields"},"description":"'keys' で projects の各要素を project_key + rs_project_id のみに絞る (ADR-8681)。行数は不変で、落とした項目は omitted_fields で明示。未指定は全項目。"},{"name":"select_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"project_key 完全一致の 1 事業を selected として全項目で返す (ADR-8681)。fields=keys と併用すると『対応表 + 1 事業の詳細』が 1 往復で揃う。","title":"Select Key"},"description":"project_key 完全一致の 1 事業を selected として全項目で返す (ADR-8681)。fields=keys と併用すると『対応表 + 1 事業の詳細』が 1 往復で揃う。"},{"name":"select_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"select_key が一致しないときに name 完全一致で selected を決める (ADR-8681)。どちらも一致しなければ並び順の先頭 (= projects[0]) を selected にする。","title":"Select Name"},"description":"select_key が一致しないときに name 完全一致で selected を決める (ADR-8681)。どちらも一致しなければ並び順の先頭 (= projects[0]) を selected にする。"},{"name":"include_projects","in":"query","required":false,"schema":{"type":"boolean","description":"projects を返すか (ADR-8681)。false で projects=null になり、selected 1 件だけを 1 事業ぶんのクエリで解決する (全事業を materialize しない)。対応表が要らない呼び出し側 (層C = 個別ルート図) 用。","default":true,"title":"Include Projects"},"description":"projects を返すか (ADR-8681)。false で projects=null になり、selected 1 件だけを 1 事業ぶんのクエリで解決する (全事業を materialize しない)。対応表が要らない呼び出し側 (層C = 個別ルート図) 用。"},{"name":"payee_kind","in":"query","required":false,"schema":{"enum":["any","nongov"],"type":"string","description":"projects の行集合を支出先の種別で絞る (ADR-8705)。nongov=支出先が実名法人 (法人番号が 13 桁の数字で、2-7 桁が 省庁 000012 / 自治体 000020 のいずれでもない)。規則の正本は v_expense_rs_reach (mig 4830)。既定 any は挙動不変。","default":"any","title":"Payee Kind"},"description":"projects の行集合を支出先の種別で絞る (ADR-8705)。nongov=支出先が実名法人 (法人番号が 13 桁の数字で、2-7 桁が 省庁 000012 / 自治体 000020 のいずれでもない)。規則の正本は v_expense_rs_reach (mig 4830)。既定 any は挙動不変。"},{"name":"top_payee_amount","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":50,"minimum":1},{"type":"null"}],"description":"支出先記録額の降順で上位 N 件だけ返す (ADR-8705)。並び順も payee.amount_yen 降順 → name → project_id に変わる。切る前に条件を満たした総数は projects_matched で開示する (silent cap を作らない・N1)。","title":"Top Payee Amount"},"description":"支出先記録額の降順で上位 N 件だけ返す (ADR-8705)。並び順も payee.amount_yen 降順 → name → project_id に変わる。切る前に条件を満たした総数は projects_matched で開示する (silent cap を作らない・N1)。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/trace/procurement-chain/{fy}":{"get":{"tags":["money-trace"],"summary":"Trace Procurement Chain","description":"/app/flow 調達型チェーンの代表 1 経路 (P3・ADR は PR で採番)。\n\nflow_map_edges mview (mig 4417) の 5 段\n(treasury→main_expense→item→procurement→corporate) を id 連結で辿り、\n費目 → 上位事項 → その契約の上位 1 者 (実名法人) の代表経路を返す。\n設計正本 = app-uxui-declarative-toast.md P3。\n\n実データ検証 (2026-07-10・FY2023/2024):\n- 契約→実名法人まで id 連結で到達する主要経費は **その他の事項経費のみ**\n  (FY2024=42法人 / FY2023=856法人)。他の調達費目 (公共事業・文教・中小企業・防衛\n  ・エネルギー・食料・経済協力) は事項 (item) どまりで契約・法人へ未連結。\n- よって法人到達不能な費目は reaches='item' で正直停止し、代表事項までを返す\n  (存在しない契約・法人ノードを作らない・N1)。\n- suspect ガード: 法人番号 = 13桁 ∧ 非ダミー ∧ corp_master で実名解決可の\n  上位1者のみ採用 (誤った実名末端を出さない)。\n- coverage_pct は「事項→契約(上位1者)」の**単一段のみ** (R-A)。","operationId":"trace_procurement_chain_api_v1_trace_procurement_chain__fy__get","parameters":[{"name":"fy","in":"path","required":true,"schema":{"type":"integer","title":"Fy"}},{"name":"expense","in":"query","required":true,"schema":{"type":"string","description":"主要経費名 (cross_pivot_contract.main_expense_name 完全一致)","title":"Expense"},"description":"主要経費名 (cross_pivot_contract.main_expense_name 完全一致)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data-coverage":{"get":{"tags":["admin"],"summary":"Data Coverage","description":"全テーブルのデータカバレッジをJSON返却","operationId":"data_coverage_api_v1_admin_data_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/data-sources":{"get":{"tags":["admin"],"summary":"Data Sources","description":"全データソースの出典レジストリ","operationId":"data_sources_api_v1_admin_data_sources_get","parameters":[{"name":"table","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/collection-calendar":{"get":{"tags":["admin"],"summary":"Collection Calendar","description":"データ収集カレンダー — 全ソースの公開時期・次回チェック日・最新年度","operationId":"collection_calendar_api_v1_admin_collection_calendar_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/db-overview":{"get":{"tags":["admin"],"summary":"Db Overview","description":"DB全テーブルの行数と最終更新を一覧","operationId":"db_overview_api_v1_admin_db_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/table/{table_name}":{"get":{"tags":["admin"],"summary":"Browse Table","description":"テーブルの中身を直接ブラウズ","operationId":"browse_table_api_v1_admin_table__table_name__get","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"jis_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/coverage-by-year":{"get":{"tags":["admin"],"summary":"Coverage By Year","description":"年度別カバレッジ — fiscal_summaryを基準に各テーブルの充填率を比較","operationId":"coverage_by_year_api_v1_admin_coverage_by_year_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/source-coverage":{"get":{"tags":["admin"],"summary":"Source Coverage","description":"全データテーブルの primary_source_id / null_reason 充填率","operationId":"source_coverage_api_v1_admin_source_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/reconciliation":{"get":{"tags":["admin"],"summary":"Reconciliation","description":"reconciliation_rules 一覧 + 最新違反","operationId":"reconciliation_api_v1_admin_reconciliation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/merkle-anchors":{"get":{"tags":["admin"],"summary":"Merkle Anchors List","description":"週次 Merkle アンカー一覧","operationId":"merkle_anchors_list_api_v1_admin_merkle_anchors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/news-candidates":{"get":{"tags":["admin"],"summary":"News Candidates","description":"記者向けフィード: reconciliation の違反 + 会計検査院の不当事項.\n\n2 系統を 1 本の `candidates` に載せる。 どちらかは `record_type` で判別する。\n\n1. `record_type='reconciliation'` — `news_candidate=true` かつ未解決の違反。\n   **deprecated な rule の violation は載せない** (ADR-8834 / D128)。\n   比較として成立しないと判断して廃止した rule の乖離率を記者に渡さないため。\n2. `record_type='audit_finding'` — `audit_findings` の不当事項を**直読み**。\n\n旧実装は 2 を **R-18 の violation record 経由**で渡していた\n(`news_category='audit_finding'` は resolution を無視して常に表示する特例)。\nしかし R-18 は「不当と指摘された額」と「省庁が使った総額」を比べており\n(ADR-8794)、記者に届いていたのは **「乖離 99.99996%」という意味のない数字**で、\n**何が不当と指摘されたのかは 1 文字も含まれていなかった**。さらに\n1,190 件の個別指摘が省庁×年度の 211 件に畳まれてから渡っていた。\n\n不当事項は violation ではないので `value_b` / `deviation_pct` / `threshold` は\nNone になる (比べる相手が無いことが本 ADR の結論そのもの)。 代わりに\n`value_a` に指摘額、`narrative` に指摘そのものの見出しが入る。\n`summary` 列は全 NULL なので使わない (2026-07-29 実測)。","operationId":"news_candidates_api_v1_admin_news_candidates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/ui":{"get":{"tags":["admin"],"summary":"Admin Ui","description":"管理画面HTML（/dashboard/admin.html でも直接アクセス可能）","operationId":"admin_ui_api_v1_admin_ui_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/v1/water/{jis_code}":{"get":{"tags":["infrastructure"],"summary":"Water Utility","description":"水道・下水道の経営データ（経営比較分析表ベース）","operationId":"water_utility_api_v1_water__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/insurance/{jis_code}":{"get":{"tags":["infrastructure"],"summary":"Insurance Burden","description":"国民健康保険・介護保険の保険料データ","operationId":"insurance_burden_api_v1_insurance__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/municipality/{jis_code}/expenditure/tree":{"get":{"tags":["municipal-expenditure-tree"],"summary":"Municipal Expenditure Tree","description":"接続先主体 (自治体) の会計規模 4 カードと性質別歳出内訳を返す。\n\n要求 FY に fiscal_summary が無い場合は、その自治体の最新収録 FY へ明示\nフォールバックし `fiscal_year_requested` と `fiscal_year` の両方で開示する\n(無言で別年度を出さない)。収録が 1 行も無い自治体は全カード not_recorded。","operationId":"municipal_expenditure_tree_api_v1_municipality__jis_code__expenditure_tree_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1960},{"type":"null"}],"description":"会計年度（省略時・当該年度未収録時はその自治体の最新収録年度）","title":"Fy"},"description":"会計年度（省略時・当該年度未収録時はその自治体の最新収録年度）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/municipality/{jis_code}/contracts":{"get":{"tags":["municipal-contracts"],"summary":"Municipal Contracts","description":"接続先主体 (自治体) の契約リスト (落札額の大きい順・上位のみ + 全件数) を返す。\n\n段 D「契約まで見える」カードの内訳。dantai_code = JIS 前方 5 桁の決定的一致のみ実値\n(他県体系は未収録の正直表示)。契約が無い / 一致体系でない自治体は空リスト + note。","operationId":"municipal_contracts_api_v1_municipality__jis_code__contracts_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1960},{"type":"null"}],"description":"会計年度（省略時・未収録時はその自治体の最新収録年度）","title":"Fy"},"description":"会計年度（省略時・未収録時はその自治体の最新収録年度）"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"上位表示件数（落札額降順）","default":10,"title":"Limit"},"description":"上位表示件数（落札額降順）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/municipal-tax/{jis_code}":{"get":{"tags":["municipal-tax"],"summary":"Get Municipal Tax","description":"市町村税課税状況データを返す。","operationId":"get_municipal_tax_api_v1_municipal_tax__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"},{"name":"table_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"補表コード: 2/11/21","title":"Table Code"},"description":"補表コード: 2/11/21"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/municipal-tax/{jis_code}/years":{"get":{"tags":["municipal-tax"],"summary":"Get Municipal Tax Years","description":"利用可能な年度一覧を返す。","operationId":"get_municipal_tax_years_api_v1_municipal_tax__jis_code__years_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprise-finance/overview":{"get":{"tags":["enterprise-finance"],"summary":"Enterprise Overview","description":"水道・下水道の全国概況サマリ（public_enterprise テーブル）。","operationId":"enterprise_overview_api_v1_enterprise_finance_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/enterprise-finance/types":{"get":{"tags":["enterprise-finance"],"summary":"Enterprise Types","description":"利用可能な事業種別と件数を返す。","operationId":"enterprise_types_api_v1_enterprise_finance_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/enterprise-finance/entities":{"get":{"tags":["enterprise-finance"],"summary":"List Enterprise Entities","description":"entity_code + entity_name の一覧を返す（distinct）。","operationId":"list_enterprise_entities_api_v1_enterprise_finance_entities_get","parameters":[{"name":"enterprise_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"事業種別フィルタ","title":"Enterprise Type"},"description":"事業種別フィルタ"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/enterprise-finance/{entity_code}":{"get":{"tags":["enterprise-finance"],"summary":"Get Enterprise Finance","description":"エンティティ（自治体/都道府県）の公営企業財務データを返す。","operationId":"get_enterprise_finance_api_v1_enterprise_finance__entity_code__get","parameters":[{"name":"entity_code","in":"path","required":true,"schema":{"type":"string","title":"Entity Code"}},{"name":"enterprise_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"事業種別フィルタ","title":"Enterprise Type"},"description":"事業種別フィルタ"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ltc/{jis_code}":{"get":{"tags":["ltc"],"summary":"Get Ltc Insurance","description":"自治体の介護保険事業状況データを返す。","operationId":"get_ltc_insurance_api_v1_ltc__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ltc/{jis_code}/trend":{"get":{"tags":["ltc"],"summary":"Get Ltc Trend","description":"介護保険データの年度推移を返す。","operationId":"get_ltc_trend_api_v1_ltc__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/national-budget":{"get":{"tags":["national-budget"],"summary":"Get National Budget","description":"国の予算・決算データを返す。","operationId":"get_national_budget_api_v1_national_budget_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"},{"name":"account_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"general / special","title":"Account Type"},"description":"general / special"},{"name":"flow_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"expenditure / revenue","title":"Flow Type"},"description":"expenditure / revenue"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NationalBudgetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/national-budget/years":{"get":{"tags":["national-budget"],"summary":"Get National Budget Years","description":"利用可能な年度一覧を返す。","operationId":"get_national_budget_years_api_v1_national_budget_years_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NationalBudgetYearsResponse"}}}}}}},"/api/v1/national-budget/trend":{"get":{"tags":["national-budget"],"summary":"Get National Budget Trend","description":"特定項目の年度推移を返す。","operationId":"get_national_budget_trend_api_v1_national_budget_trend_get","parameters":[{"name":"item_name","in":"query","required":true,"schema":{"type":"string","description":"項目名（部分一致）","title":"Item Name"},"description":"項目名（部分一致）"},{"name":"account_type","in":"query","required":false,"schema":{"enum":["general","special","seifukankei"],"type":"string","description":"general / special / seifukankei (政府関係機関)","default":"general","title":"Account Type"},"description":"general / special / seifukankei (政府関係機関)"},{"name":"flow_type","in":"query","required":false,"schema":{"type":"string","description":"expenditure / revenue","default":"expenditure","title":"Flow Type"},"description":"expenditure / revenue"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NationalBudgetTrendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/social-indicators/available/indicators":{"get":{"tags":["social-indicators"],"summary":"List Available Indicators","description":"利用可能な指標一覧を返す。","operationId":"list_available_indicators_api_v1_social_indicators_available_indicators_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/social-indicators/{jis_code}":{"get":{"tags":["social-indicators"],"summary":"Get Social Indicators","description":"自治体の社会指標データを返す。","operationId":"get_social_indicators_api_v1_social_indicators__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"},{"name":"indicator_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"指標コードフィルタ","title":"Indicator Code"},"description":"指標コードフィルタ"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/social-indicators/{jis_code}/trend":{"get":{"tags":["social-indicators"],"summary":"Get Social Indicator Trend","description":"特定指標の年度推移を返す。","operationId":"get_social_indicator_trend_api_v1_social_indicators__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"indicator_code","in":"query","required":true,"schema":{"type":"string","description":"指標コード","title":"Indicator Code"},"description":"指標コード"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/summary":{"get":{"tags":["audit"],"summary":"Audit Summary","description":"年度別・カテゴリ別の指摘件数と金額合計を返す。","operationId":"audit_summary_api_v1_audit_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/audit/findings":{"get":{"tags":["audit"],"summary":"List Findings","description":"指摘事項一覧を返す。","operationId":"list_findings_api_v1_audit_findings_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度フィルタ","title":"Year"},"description":"年度フィルタ"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"掲記区分フィルタ","title":"Category"},"description":"掲記区分フィルタ"},{"name":"ministry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"所管省庁フィルタ","title":"Ministry"},"description":"所管省庁フィルタ"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/findings/{finding_id}":{"get":{"tags":["audit"],"summary":"Get Finding","description":"指摘事項の詳細を返す。","operationId":"get_finding_api_v1_audit_findings__finding_id__get","parameters":[{"name":"finding_id","in":"path","required":true,"schema":{"type":"integer","title":"Finding Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/ministries":{"get":{"tags":["audit"],"summary":"Audit By Ministry","description":"省庁別の指摘件数と金額合計を返す。","operationId":"audit_by_ministry_api_v1_audit_ministries_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度フィルタ","title":"Year"},"description":"年度フィルタ"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/years":{"get":{"tags":["audit"],"summary":"Audit Years","description":"利用可能な年度一覧を返す。","operationId":"audit_years_api_v1_audit_years_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/audit/top-findings":{"get":{"tags":["audit"],"summary":"Top Findings","description":"金額降順で指摘事業 TOP N を返す。","operationId":"top_findings_api_v1_audit_top_findings_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度フィルタ、未指定なら全年度","title":"Year"},"description":"年度フィルタ、未指定なら全年度"},{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"掲記区分","default":"不当事項","title":"Category"},"description":"掲記区分"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/qa-board":{"get":{"tags":["audit"],"summary":"Qa Board","description":"整合性確認ダッシュボード (reconciliation_rules の実整合状態、 ADR-5615)。\n\n旧実装は捏造ハードコード (架空 A社 / example.com / range(3,45)) を返すモックだった\n(ADR-5590 で非公開化)。 本実装は reconciliation_rules (active 44 + skeleton) と最新の\n未解決 reconciliation_violations を実 DB から読み、 ok/watch/pause の整合状態・A/B 値・\n乖離率・出典 (data_sources) を返す。 status 集計は固定値で書かず都度算出する。","operationId":"qa_board_api_v1_audit_qa_board_get","parameters":[{"name":"show","in":"query","required":false,"schema":{"type":"string","description":"featured=default / all (全 active+skeleton rule)","default":"default","title":"Show"},"description":"featured=default / all (全 active+skeleton rule)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/third-sector/summary":{"get":{"tags":["third-sector"],"summary":"Third Sector Summary","description":"法人種別・業務分類別の件数と経営状況を返す。","operationId":"third_sector_summary_api_v1_third_sector_summary_get","parameters":[{"name":"survey_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"調査年度（省略時は最新）","title":"Survey Year"},"description":"調査年度（省略時は最新）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/third-sector/entities":{"get":{"tags":["third-sector"],"summary":"List Entities","description":"第三セクター法人一覧を返す。","operationId":"list_entities_api_v1_third_sector_entities_get","parameters":[{"name":"survey_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"調査年度","title":"Survey Year"},"description":"調査年度"},{"name":"entity_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"法人分類","title":"Entity Type"},"description":"法人分類"},{"name":"location_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"所在地コード（前方一致）","title":"Location Code"},"description":"所在地コード（前方一致）"},{"name":"loss_only","in":"query","required":false,"schema":{"type":"boolean","description":"赤字法人のみ","default":false,"title":"Loss Only"},"description":"赤字法人のみ"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/third-sector/by-location/{location_code}":{"get":{"tags":["third-sector"],"summary":"Entities By Location","description":"特定自治体管内の第三セクター一覧を返す。","operationId":"entities_by_location_api_v1_third_sector_by_location__location_code__get","parameters":[{"name":"location_code","in":"path","required":true,"schema":{"type":"string","title":"Location Code"}},{"name":"survey_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Survey Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/third-sector/survey-years":{"get":{"tags":["third-sector"],"summary":"Survey Years","description":"利用可能な調査年度一覧を返す。","operationId":"survey_years_api_v1_third_sector_survey_years_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/land-price/{jis_code}":{"get":{"tags":["land-price"],"summary":"Get Land Price","description":"自治体の地価公示データを返す。","operationId":"get_land_price_api_v1_land_price__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"},{"name":"land_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"住宅地(residential)/商業地(commercial)/工業地(industrial)","title":"Land Type"},"description":"住宅地(residential)/商業地(commercial)/工業地(industrial)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/land-price/{jis_code}/trend":{"get":{"tags":["land-price"],"summary":"Get Land Price Trend","description":"地価の年度推移を返す。","operationId":"get_land_price_trend_api_v1_land_price__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"land_type","in":"query","required":false,"schema":{"type":"string","description":"用途区分","default":"residential","title":"Land Type"},"description":"用途区分"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/land-price/ranking/expensive":{"get":{"tags":["land-price"],"summary":"Land Price Ranking","description":"地価ランキング（高い順）を返す。","operationId":"land_price_ranking_api_v1_land_price_ranking_expensive_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"},{"name":"land_type","in":"query","required":false,"schema":{"type":"string","description":"用途区分","default":"residential","title":"Land Type"},"description":"用途区分"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/safety/{jis_code}":{"get":{"tags":["safety-labor"],"summary":"Get Safety","description":"自治体の犯罪・交通事故データ（全年度）を返す。","operationId":"get_safety_api_v1_safety__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/labor/{jis_code}":{"get":{"tags":["safety-labor"],"summary":"Get Labor","description":"自治体の労働・雇用データを返す。","operationId":"get_labor_api_v1_labor__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/education/{jis_code}":{"get":{"tags":["social-stats"],"summary":"Get Education","description":"教育統計（学校数・児童生徒数・待機児童数等）。","operationId":"get_education_api_v1_education__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/medical/{jis_code}":{"get":{"tags":["social-stats"],"summary":"Get Medical","description":"医療・介護統計（病院数・病床数・医師数等）。","operationId":"get_medical_api_v1_medical__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/welfare/{jis_code}":{"get":{"tags":["social-stats"],"summary":"Get Welfare","description":"福祉統計（生活保護率等）。","operationId":"get_welfare_api_v1_welfare__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/economy/{jis_code}":{"get":{"tags":["social-stats"],"summary":"Get Economy","description":"産業・経済統計（事業所数・従業者数・製造品出荷額等）。","operationId":"get_economy_api_v1_economy__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/housing/{jis_code}":{"get":{"tags":["social-stats"],"summary":"Get Housing","description":"住宅・インフラ統計（空き家率・上下水道普及率等）。","operationId":"get_housing_api_v1_housing__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/education/{jis_code}/trend":{"get":{"tags":["social-stats"],"summary":"Education Trend","description":"教育統計の年度推移。","operationId":"education_trend_api_v1_education__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/medical/{jis_code}/trend":{"get":{"tags":["social-stats"],"summary":"Medical Trend","description":"医療統計の年度推移。","operationId":"medical_trend_api_v1_medical__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/economy/{jis_code}/trend":{"get":{"tags":["social-stats"],"summary":"Economy Trend","description":"経済統計の年度推移。","operationId":"economy_trend_api_v1_economy__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/housing/{jis_code}/trend":{"get":{"tags":["social-stats"],"summary":"Housing Trend","description":"住宅統計の年度推移。","operationId":"housing_trend_api_v1_housing__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/local-bonds/{jis_code}":{"get":{"tags":["fiscal-detail"],"summary":"Get Local Bonds","description":"地方債残高・発行・償還の債種別内訳。","operationId":"get_local_bonds_api_v1_local_bonds__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reserve-funds/{jis_code}":{"get":{"tags":["fiscal-detail"],"summary":"Get Reserve Funds","description":"積立金（基金）の種別内訳。","operationId":"get_reserve_funds_api_v1_reserve_funds__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/revenue-detail/{jis_code}":{"get":{"tags":["fiscal-detail"],"summary":"Get Revenue Detail","description":"歳入の科目別内訳。","operationId":"get_revenue_detail_api_v1_revenue_detail__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/local-bonds/{jis_code}/trend":{"get":{"tags":["fiscal-detail"],"summary":"Local Bonds Trend","description":"地方債残高の年度推移。\n\n系列は債種名で引く（コードは年度ごとに指す債種が変わるため・ADR-8697）。","operationId":"local_bonds_trend_api_v1_local_bonds__jis_code__trend_get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","title":"Jis Code"}},{"name":"bond_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"債種名（推奨。省略時は「合計」）","title":"Bond Category"},"description":"債種名（推奨。省略時は「合計」）"},{"name":"bond_category_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"債種コード（非推奨: 年度ごとに指す債種が変わる。指定時は最新年度の意味へ解決し、その債種名で系列を引く）","title":"Bond Category Code"},"description":"債種コード（非推奨: 年度ごとに指す債種が変わる。指定時は最新年度の意味へ解決し、その債種名で系列を引く）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/budget-tree":{"get":{"tags":["budget-tree"],"summary":"Budget Tree","description":"国の予算を階層ツリーで返す。\n\n歳出: major_expense → expense_sub / purpose → purpose_detail\n歳入: revenue_source → revenue_sub\naccount_type で 3 会計切替 (一般 / 特別 / 政府関係機関、 ADR-0173)。","operationId":"budget_tree_api_v1_budget_tree_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"},{"name":"flow_type","in":"query","required":false,"schema":{"type":"string","description":"expenditure / revenue","default":"expenditure","title":"Flow Type"},"description":"expenditure / revenue"},{"name":"view","in":"query","required":false,"schema":{"type":"string","description":"expense(主要経費別) / purpose(目的別) / revenue(歳入)","default":"expense","title":"View"},"description":"expense(主要経費別) / purpose(目的別) / revenue(歳入)"},{"name":"account_type","in":"query","required":false,"schema":{"type":"string","description":"general (一般会計) / special (特別会計) / seifukankei (政府関係機関、 ADR-0173)","default":"general","title":"Account Type"},"description":"general (一般会計) / special (特別会計) / seifukankei (政府関係機関、 ADR-0173)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/budget-tree/revenue":{"get":{"tags":["budget-tree"],"summary":"Budget Tree Revenue","description":"歳入の階層ツリー。/budget-tree?flow_type=revenue のショートカット。","operationId":"budget_tree_revenue_api_v1_budget_tree_revenue_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"年度（省略時は最新）","title":"Year"},"description":"年度（省略時は最新）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/budget-tree/evidence":{"get":{"tags":["budget-tree"],"summary":"Budget Tree Evidence","description":"`/api/v1/budget-tree` の出典 metadata を返す（PR β.4b、 ADR-0116 / ADR-5240）。\n\nBudgetMockup foot 表示の sha256 short + fetched_at + source_title を動的化する用途。\n`budget_tree()` の数値が由来する MOF source を flow_type 別に解決し\n(expenditure=SMF001 主要経費別歳出 / revenue=SMF003 歳入科目別)、\nその source の `evidence_snapshots` 最新 fetched_at 1 件を返す。\n旧実装は publisher LIKE '%財務省%' で解決していたが本番 publisher='MOF' に hit せず\n常に evidence=null だった (ADR-5240 で flow_type→source_id 直接解決へ修正)。\n\nresponse shape (常に 200、 source 不在 / snapshot 不在 case は fallback=true):\n    {\n        \"evidence\": {\n            \"source_id\": \"SMF001\",\n            \"source_title\": \"財務省 一般会計予算書\",\n            \"snapshot_id\": 152 | null,\n            \"sha256\": \"<64hex>\" | null,\n            \"fetched_at\": \"2026-04-30T08:00:00+09:00\" | null,\n        } | null,\n        \"fallback\": false | true,\n        \"fiscal_year\": int,\n        \"flow_type\": \"expenditure\" | \"revenue\",\n    }\n\nS3 axiom (Every number has Static Evidence) の物理化。 source 解決失敗時は b3\nprototype hardcode を front 側で fallback 表示する設計のため、 本 endpoint は 404 を\n返さず evidence=null + fallback=true で graceful degrade を許す。","operationId":"budget_tree_evidence_api_v1_budget_tree_evidence_get","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1980,"description":"会計年度","title":"Year"},"description":"会計年度"},{"name":"flow_type","in":"query","required":false,"schema":{"type":"string","description":"expenditure / revenue（flow_type 別に source 解決）","default":"expenditure","title":"Flow Type"},"description":"expenditure / revenue（flow_type 別に source 解決）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/budget-tree/bridge":{"get":{"tags":["budget-tree"],"summary":"Budget Tree Bridge","description":"国→地方の接続データ。交付税+国庫支出金が47県にどう配分されるか。\n\n国の歳出から地方への配分額を取得し、\nfiscal_summaryの県別集計で47県への配分を復算する。","operationId":"budget_tree_bridge_api_v1_budget_tree_bridge_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":1980,"description":"年度","default":2024,"title":"Year"},"description":"年度"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/major_expense_codes":{"get":{"tags":["reconciliation"],"summary":"Major Expense Codes","description":"主要経費34コード → 大分類/細分ラベル + 年度別集計.\n\nUI の selector で使う。DB に存在する (code, 年度) のみ返す。","operationId":"major_expense_codes_api_v1_reconciliation_major_expense_codes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reconciliation":{"get":{"tags":["reconciliation"],"summary":"Reconciliation","description":"全会計横断の公金フロー。","operationId":"reconciliation_api_v1_reconciliation_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2017,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/coverage":{"get":{"tags":["reconciliation"],"summary":"Reconciliation Coverage","description":"3軸分類の到達率サマリ。UIのヘッダ表示用。","operationId":"reconciliation_coverage_api_v1_reconciliation_coverage_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2007,"default":2017,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/timeline":{"get":{"tags":["reconciliation"],"summary":"Reconciliation Timeline","description":"予算カテゴリの経年変化。政策優先度の変遷を数字で示す。","operationId":"reconciliation_timeline_api_v1_reconciliation_timeline_get","parameters":[{"name":"classification","in":"query","required":false,"schema":{"type":"string","description":"分類軸: purpose_class(目的別), major_expense(主要経費別), use_type(使途別), major_expense_by_ministry(所管×主要経費, FY2020-2025)","default":"purpose_class","title":"Classification"},"description":"分類軸: purpose_class(目的別), major_expense(主要経費別), use_type(使途別), major_expense_by_ministry(所管×主要経費, FY2020-2025)"},{"name":"start","in":"query","required":false,"schema":{"type":"integer","maximum":2026,"minimum":1997,"default":2007,"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"type":"integer","maximum":2026,"minimum":1997,"default":2024,"title":"End"}},{"name":"filter_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"major_expense_by_ministry のみ有効。主要経費コード（例: '95'）で絞込","title":"Filter Code"},"description":"major_expense_by_ministry のみ有効。主要経費コード（例: '95'）で絞込"},{"name":"tax_parent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"tax_expenditure のみ有効。parent_item キー: corporate / income_applied / income_revenue_loss のいずれか。未指定で全系統合算。","title":"Tax Parent"},"description":"tax_expenditure のみ有効。parent_item キー: corporate / income_applied / income_revenue_loss のいずれか。未指定で全系統合算。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/special-account-net":{"get":{"tags":["reconciliation"],"summary":"Reconciliation Special Account Net","description":"Phase 7-L: 特別会計の純額 (重複除去後の外部流出) + 円環検知.\n\n見かけ合計 (217兆) と、inter_account_flows から導出した純額・円環を返す。\n設計: FULL_MONEY_TRACE_DESIGN.md §28","operationId":"reconciliation_special_account_net_api_v1_reconciliation_special_account_net_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2099,"minimum":2019,"default":2024,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/rules":{"get":{"tags":["reconciliation","reconciliation"],"summary":"List Reconciliation Rules","description":"reconciliation_rules を public (Basic Auth 配下) で listing.\n\nArgs:\n    status: 'active', 'skeleton', 'deprecated' で filter (None なら全件)","operationId":"list_reconciliation_rules_api_v1_reconciliation_rules_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/violations/open":{"get":{"tags":["reconciliation","reconciliation"],"summary":"List Open Violations","description":"未解消の reconciliation_violations を最新順で返す (LP feed snippet 用).","operationId":"list_open_violations_api_v1_reconciliation_violations_open_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/rs-settlement-bridges/{fiscal_year}":{"get":{"tags":["flow-map"],"summary":"Rs Settlement Bridges","description":"RS 予算事業↔決算費目 bridge (rs_settlement_bridges view をそのまま提供)。\n\n- `bridge_state_counts`: 4値の件数 (structural は一般会計限定ゆえ 0)。\n- `confirmed_projects` / `confirmed_amount_yen`: 実名法人まで到達した事業数・接続金額。\n- `confirmed_ministry_counts`: confirmed の府省別件数 (ADR-8676)。他の summary 値と同じく\n  **絞り込み前** ゆえ `state` / `ministry` / `pid` を付けても不変で、和は\n  `confirmed_projects` に一致する。件数だけが要る呼び出し側は\n  `include_bridges=false` で全行 (1.28 MB) を取らずに済む。府省名が空の事業は\n  `ministry: null` に寄せる (表示ラベルは呼び出し側が決める)。\n- `bridges`: 事業ごと1行 (`state` / `ministry` / `pid` 絞り込み可、\n  `include_bridges=false` で省略)。\n- `include_summary=false`: summary を返さず集計クエリを省く (ADR-8676)。\n  省略は `omitted_fields` に `\"summary\"` として現れる (N1)。\n- `bridges_matching` は **返した行数が limit 未満なら count クエリを撃たない**\n  (それ以上の一致は LIMIT が存在しないことを証明している)。上限に届いたときだけ数える。\n- `fields=compact`: 応答量の削減 (ADR-8621)。summary は不変・行数も不変で、\n  各行から `omitted_fields` の項目だけを落とす (件数を silent に減らさない・N1)。\n- **金額被覆率 (reach%) は返さない** (N1/R-C): unrecorded の大口移転は hop components で別追跡。","operationId":"rs_settlement_bridges_api_v1_flow_map_rs_settlement_bridges__fiscal_year__get","parameters":[{"name":"fiscal_year","in":"path","required":true,"schema":{"type":"integer","title":"Fiscal Year"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"bridge_state で絞り込む (confirmed/estimated/unrecorded)。未指定は全件。","title":"State"},"description":"bridge_state で絞り込む (confirmed/estimated/unrecorded)。未指定は全件。"},{"name":"ministry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"府省名 (ministry_name) で bridge を絞り込む (ADR-8676)。未指定は全府省。summary は絞り込み前のまま (府省別件数は summary.confirmed_ministry_counts)。","title":"Ministry"},"description":"府省名 (ministry_name) で bridge を絞り込む (ADR-8676)。未指定は全府省。summary は絞り込み前のまま (府省別件数は summary.confirmed_ministry_counts)。"},{"name":"pid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"src_pid (rs_project_id) で 1 事業に絞り込む (ADR-8676)。1 事業の橋だけが要る呼び出し側が全行を取らずに済ませるため。","title":"Pid"},"description":"src_pid (rs_project_id) で 1 事業に絞り込む (ADR-8676)。1 事業の橋だけが要る呼び出し側が全行を取らずに済ませるため。"},{"name":"include_bridges","in":"query","required":false,"schema":{"type":"boolean","description":"bridge 配列を返すか。false で summary のみ。","default":true,"title":"Include Bridges"},"description":"bridge 配列を返すか。false で summary のみ。"},{"name":"include_summary","in":"query","required":false,"schema":{"type":"boolean","description":"summary を返すか (ADR-8676)。false で summary=null になり、view 全体を materialize する集計クエリ 1 本を省く (省略は omitted_fields で明示)。行だけが要る呼び出し (1 府省 / 1 事業) 用。","default":true,"title":"Include Summary"},"description":"summary を返すか (ADR-8676)。false で summary=null になり、view 全体を materialize する集計クエリ 1 本を省く (省略は omitted_fields で明示)。行だけが要る呼び出し (1 府省 / 1 事業) 用。"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200000,"minimum":1,"description":"bridge 返却上限。","default":6000,"title":"Limit"},"description":"bridge 返却上限。"},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"'compact' で描画に使われないフィールド (evidence 等) を省いた bridge を返す。省いた項目は omitted_fields で明示。未指定は全フィールド。","title":"Fields"},"description":"'compact' で描画に使われないフィールド (evidence 等) を省いた bridge を返す。省いた項目は omitted_fields で明示。未指定は全フィールド。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/expense-reach/{fiscal_year}":{"get":{"tags":["flow-map"],"summary":"Expense Reach","description":"費目区分別 実名到達集計 (v_expense_rs_reach ⋈ budget_trace_catalog)。\n\n- `expenses`: 主要経費区分ごとの行 (実名到達額 named_nongov 降順)。各行に\n  `expense_amount_yen` (費目区分の決算確定額 Y)・`named_nongov_*` (実名到達 X)・\n  `confirmed_*` (決算科目一致+支出先記録あり) を持つ。\n- `top_payees`: 各費目行の末端 = 費目内 top 実名法人 (v_expense_top_payees / ADR-8466)。\n  exec_amount_yen (named_nongov と整合・上限値) 降順 top-6 + `total_payees` (全法人数)。\n- `allocations`: 自治体移転費目の末端 (ADR-8476 + ADR-8486)。`collected=true` = 地方交付税\n  交付金 (団体別配分実データあり・都道府県 top-N + 総額)、`collected=false` = 義務教育費\n  国庫負担金/地方特例交付金 (団体別データ未収集・費目総額 + 配分先種別のみ・N1 終端)。\n- `unattributed`: 主要経費コードを確定できなかった confirmed 事業 (別掲・R-C)。無ければ null。\n- `summary`: 件数のみ (金額の費目横断合算はしない・R-B)。\n- **費目金額被覆率 (reach%) は返さない** (N1/R-C): X と Y は別基準ゆえ比率化しない。","operationId":"expense_reach_api_v1_flow_map_expense_reach__fiscal_year__get","parameters":[{"name":"fiscal_year","in":"path","required":true,"schema":{"type":"integer","title":"Fiscal Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/expense-trend":{"get":{"tags":["flow-map"],"summary":"Expense Trend","description":"主要経費カテゴリ別 決算額の年度時系列 (national_budget / classification=major_expense)。\n\n- `fiscal_years`: 応答が含む年度の昇順リスト (在庫年のみ)。\n- `categories`: カテゴリごとの行 (最新年の決算額 降順)。各行は `series` (年度→円額)・\n  `latest_amount_yen` / `earliest_amount_yen`・`yoy_delta_ratio` (直近 2 年 Δ)・\n  `window_delta_ratio` (端点間 Δ)・`is_continuous` (全対象年に存在するか)・`present_years`。\n- `totals`: 年度→全カテゴリ合算 (一般会計歳出決算 総額。文脈用の 123兆 ライン)。\n- 実名 payee 到達は含めない (FY2024 単年ゆえ time-series 不可・N1)。被覆率も出さない。","operationId":"expense_trend_api_v1_flow_map_expense_trend_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"integer","maximum":2100,"minimum":1967,"default":2019,"title":"Since"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/flow-map/transfer-trend":{"get":{"tags":["flow-map"],"summary":"Transfer Trend","description":"地方交付税 配分区分別 決算額の年度時系列 (intergovernmental_transfer_allocations)。\n\n- `fiscal_years`: 応答が含む年度の昇順リスト (在庫年のみ)。\n- `segments`: 配分区分ごとの行 (最新年の配分額 降順)。各行は `series` (年度→円額)・\n  `latest_amount_yen` / `earliest_amount_yen`・`yoy_delta_ratio` (直近 2 年 Δ)・\n  `window_delta_ratio` (端点間 Δ)・`is_continuous`・`present_years`・`jurisdiction_type`・\n  `allocation_type`。\n- `totals`: 年度→全区分合算 (地方交付税決算 総額。R-50 で国側決算に parity)。\n- 団体別の内訳は出さない (都道府県計/市町村計まで・個別自治体は /app/region)。被覆率も出さない。","operationId":"transfer_trend_api_v1_flow_map_transfer_trend_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"integer","maximum":2100,"minimum":2000,"default":2019,"title":"Since"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data_sources/{source_id}":{"get":{"tags":["evidence"],"summary":"Get Data Source","description":"data_sources の単一行を返す. UI の出典バッジから呼ばれる.","operationId":"get_data_source_api_v1_data_sources__source_id__get","parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Data Source Api V1 Data Sources  Source Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/{snapshot_id}":{"get":{"tags":["evidence"],"summary":"Get Evidence Snapshot","description":"evidence_snapshots の単一行 + その source の概要を返す.","operationId":"get_evidence_snapshot_api_v1_evidence__snapshot_id__get","parameters":[{"name":"snapshot_id","in":"path","required":true,"schema":{"type":"integer","title":"Snapshot Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Evidence Snapshot Api V1 Evidence  Snapshot Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/data_sources":{"get":{"tags":["evidence","evidence"],"summary":"List Data Sources","description":"data_sources の全件 listing (公的出典の一覧). LP /sources/ から呼ばれる.","operationId":"list_data_sources_api_v1_data_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Data Sources Api V1 Data Sources Get"}}}}}}},"/api/v1/evidence/by-source/{source_id}":{"get":{"tags":["evidence"],"summary":"Evidence By Source","description":"任意ドメインの source_id から最新 snapshot の evidence を返す (汎用 S3、 ADR-4918)。\n\nbudget_tree_evidence (MOF 予算 LIKE 専用) を一般化し、 source_id 紐付けが明確な\n任意ページ (procurement=SCP001 / seifukankei=SMF017-020 等) が実 evidence を取得できる。\n\n- source_id 不在 → 404 (誤 id を黙殺しない)。\n- source 有・snapshot 不在 → evidence の snapshot field が null + fallback=true、 HTTP 200\n  (honest degrade、 frontend は popover 非表示)。","operationId":"evidence_by_source_api_v1_evidence_by_source__source_id__get","parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1980},{"type":"null"}],"description":"会計年度（source_label 用に echo するのみ。 evidence_snapshots に年度列が無く snapshot は常に最新）","title":"Year"},"description":"会計年度（source_label 用に echo するのみ。 evidence_snapshots に年度列が無く snapshot は常に最新）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Evidence By Source Api V1 Evidence By Source  Source Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/by-source":{"get":{"tags":["evidence"],"summary":"Evidence By Sources","description":"複数 source_id の最新 snapshot evidence を 1 回で返す (enterprise/seifukankei 等)。\n\n各 source: 不在は results[sid].not_found=true、 snapshot 不在は fallback=true。","operationId":"evidence_by_sources_api_v1_evidence_by_source_get","parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string","description":"カンマ区切り source_id (例: SSO009,SSO010)。 複数 source ページの N+1 回避","title":"Ids"},"description":"カンマ区切り source_id (例: SSO009,SSO010)。 複数 source ページの N+1 回避"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1980},{"type":"null"}],"description":"会計年度（echo のみ）","title":"Year"},"description":"会計年度（echo のみ）"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Evidence By Sources Api V1 Evidence By Source Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/evidence/attribution":{"get":{"tags":["evidence"],"summary":"Evidence Attribution","description":"`evidence_attribution` の (ref_table, ref_column, fy) primary 出典を返す (§8・ADR-8160).\n\n`evidence_attribution` は「どの数字がどの原資料 snapshot に裏付くか」の台帳\n(ADR-7481 系で populate、 粒度 = (ref_table, ref_column, fy)・行単位ではない)。\n本 endpoint は該当 1 行を `evidence_snapshots` と結合し sha256 + fetched_at を付けて返す。\n\n- 該当あり: `attribution` に source_label/snapshot_id/sha256/fetched_at、 `fallback=False`。\n- 該当なし: `attribution=None`、 `fallback=True` (呼び手は「証拠整備中」を正直表示・偽値を出さない)。","operationId":"evidence_attribution_api_v1_evidence_attribution_get","parameters":[{"name":"ref_table","in":"query","required":true,"schema":{"type":"string","description":"証拠を引く対象テーブル (例: national_budget / procurement_contracts)","title":"Ref Table"},"description":"証拠を引く対象テーブル (例: national_budget / procurement_contracts)"},{"name":"ref_column","in":"query","required":true,"schema":{"type":"string","description":"対象カラム (例: amount / contract_amount_yen)","title":"Ref Column"},"description":"対象カラム (例: amount / contract_amount_yen)"},{"name":"fy","in":"query","required":true,"schema":{"type":"integer","maximum":2100,"minimum":1900,"description":"会計年度 (西暦)","title":"Fy"},"description":"会計年度 (西暦)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Evidence Attribution Api V1 Evidence Attribution Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ranking/unified/{metric}":{"get":{"tags":["ranking"],"summary":"Unified Ranking","description":"統合ランキング — 15指標×全国/県絞り×昇降順×検索×range に対応。\n\n比較ビュー (Session 2以降) のデータソースでもある。","operationId":"unified_ranking_api_v1_ranking_unified__metric__get","parameters":[{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2023,"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Order"}},{"name":"prefecture_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"title":"Prefecture Code"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Search"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","pattern":"^(top|bottom|center|all)$","default":"top","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ranking/unified-metrics":{"get":{"tags":["ranking"],"summary":"List Unified Metrics","description":"利用可能な15指標の一覧。UI の select オプション構築に使う。","operationId":"list_unified_metrics_api_v1_ranking_unified_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/freshness":{"get":{"tags":["freshness"],"summary":"Get Freshness","description":"全 data source の collector 鮮度一覧を返す。","operationId":"get_freshness_api_v1_freshness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/freshness/{source_id}/runs":{"get":{"tags":["freshness"],"summary":"Get Source Runs","description":"指定 source の collection_logs 直近 N runs を返す (drill-down 用、 ADR-4310)。\n\nPath 検証: source_id は大文字英数 + アンダースコア 3-20 字 (= data_sources schema 準拠)。\n範囲外 = 400 Bad Request。 未登録 source = 404 Not Found。","operationId":"get_source_runs_api_v1_freshness__source_id__runs_get","parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ops/summary":{"get":{"tags":["ops"],"summary":"Ops Summary","description":"運用イベントの横断サマリ (1 call で全体把握)。\n\n各 section に evidence (= 参照した table 名) を付ける (S3 axiom を運用値にも適用)。","operationId":"ops_summary_api_v1_ops_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/ops/incidents":{"get":{"tags":["ops"],"summary":"Ops Incidents","description":"失敗系イベントの時系列 UNION (collection 失敗 + parse 失敗 + 突合違反)。\n\n共通 shape {ts, kind, source, severity, detail}。 read-time UNION のみで\n新テーブルは作らない (対象は高々数千行)。","operationId":"ops_incidents_api_v1_ops_incidents_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"遡及日数 (1-90)","default":7,"title":"Days"},"description":"遡及日数 (1-90)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"取得件数 (1-500)","default":100,"title":"Limit"},"description":"取得件数 (1-500)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ops/manifest":{"get":{"tags":["ops"],"summary":"Ops Manifest","description":"AI 単一入口 os_manifest.json をそのまま返す (正本 = docs/state/os_manifest.json)。","operationId":"ops_manifest_api_v1_ops_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/ops/api-usage":{"get":{"tags":["ops"],"summary":"Ops Api Usage","description":"API 利用量サマリ (直近 N 日、 default 7)。\n\nkey_id/tier/UTC 日別の件数 + 429 数、 上位 path、 全体 totals に加え、\npending 申請件数も併載する = 運用者が既存 ops 導線 1 本で\n「使われ方 + 承認待ち」の両方に気づける (ADR-6101)。","operationId":"ops_api_usage_api_v1_ops_api_usage_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"遡及日数 (1-90)","default":7,"title":"Days"},"description":"遡及日数 (1-90)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"key×日 行数上限 (1-500)","default":200,"title":"Limit"},"description":"key×日 行数上限 (1-500)"},{"name":"top","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"上位 path 件数 (1-50)","default":10,"title":"Top"},"description":"上位 path 件数 (1-50)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys/form-token":{"get":{"tags":["keys"],"summary":"Issue Form Token","description":"申請フォーム用の time-trap token を発行する (bot の即時送信対策)。\n\nFORM_TOKEN_SECRET 未設定時は unsigned token を返し、 申請側の検査も skip される\n(開発 default、 本番は設定必須)。","operationId":"issue_form_token_api_v1_keys_form_token_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/keys/applications":{"post":{"tags":["keys"],"summary":"Submit Key Application","description":"API キー発行申請を受け付ける。\n\n- general: 即時自動発行。 raw key は本レスポンスで 1 回だけ返る (以後取得不能)。\n- research: pending 保存 → 人間審査 (確認後、 記載メールアドレスへ連絡)。","operationId":"submit_key_application_api_v1_keys_applications_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyApplicationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ops/key-applications":{"get":{"tags":["keys","ops"],"summary":"List Key Applications","description":"申請一覧 (default = pending のみ)。 raw key は存在しないため返しようがない。","operationId":"list_key_applications_api_v1_ops_key_applications_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(pending|approved|rejected|all)$","default":"pending","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ops/key-applications/{application_id}/decide":{"post":{"tags":["keys","ops"],"summary":"Decide Key Application","description":"pending 申請の承認/却下。 approve は raw key を 1 回だけ返す。 承認/却下とも\n申請者へ結果メールを自動送信 (ADR-7255)。 メール失敗時は raw key がレスポンスに\n残るため ops が手動配送でき、 送信可否は `mail_sent` で示す。 二重 decide は 409。","operationId":"decide_key_application_api_v1_ops_key_applications__application_id__decide_post","parameters":[{"name":"application_id","in":"path","required":true,"schema":{"type":"integer","title":"Application Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys/me":{"get":{"tags":["keys","keys"],"summary":"Get Own Key","description":"自キーの tier/status/期限/直近30日利用量を返す (raw/hash は返さない)。","operationId":"get_own_key_api_v1_keys_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/keys/me/revoke":{"post":{"tags":["keys","keys"],"summary":"Revoke Own Key","description":"自キーを自分で失効する (self-service)。 監査のため行削除せず soft revoke。\n\nmiddleware のキー cache (60s TTL) があるため、 失効の完全反映まで最大 60 秒は\n旧キーで通ることがある (revoke_api_key.py と同じ既知の遅延)。","operationId":"revoke_own_key_api_v1_keys_me_revoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/keys/me/rotate":{"post":{"tags":["keys","keys"],"summary":"Rotate Own Key","description":"自キーを失効し、 同 tier の新キーを発行する。 新 raw key は本レスポンスで\n1 回だけ返る (以後取得不能)。 二重 rotate は FOR UPDATE + status 判定で防ぐ。","operationId":"rotate_own_key_api_v1_keys_me_rotate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/keys/manage/request-link":{"post":{"tags":["keys","keys"],"summary":"Request Manage Link","description":"email に紐づくキーが1本以上あれば管理リンクをメール送信する。\n\n存在有無に関わらず常に `{\"status\": \"sent\"}` を返す (enumeration 防止=未登録 email を\n問い合わせても差が出ない)。 送信失敗は Discord で ops へ通知するが、 email 自体は\nレスポンスにも Discord にも載せない。","operationId":"request_manage_link_api_v1_keys_manage_request_link_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManageLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys/manage":{"get":{"tags":["keys","keys"],"summary":"List Keys By Manage Token","description":"token が証明する email の全キーの metadata を返す (raw/hash は返さない)。","operationId":"list_keys_by_manage_token_api_v1_keys_manage_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","maxLength":1024,"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys/manage/revoke":{"post":{"tags":["keys","keys"],"summary":"Revoke Key By Manage Token","description":"token が証明する email の、 指定 key_prefix のキーを soft revoke する。\n\nkey_prefix は tier+先頭hex で衝突しうるため、 同 email 内の該当 prefix を全て失効し\n件数を返す (他人のキーには触れない=email scope)。 監査のため行削除せず soft revoke。","operationId":"revoke_key_by_manage_token_api_v1_keys_manage_revoke_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManageRevokeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/gap/timeline":{"get":{"tags":["reconciliation"],"summary":"Gap Timeline","description":"major_expense 全年度 gap 時系列.\n\nReturns:\n    timeline: [{fy, settlement, budget_current, gap, gap_pct}]\n    anomaly_markers: 異常年度の注釈","operationId":"gap_timeline_api_v1_reconciliation_gap_timeline_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/reconciliation/gap/breakdown":{"get":{"tags":["reconciliation"],"summary":"Gap Breakdown","description":"指定年度の主要経費別 gap 内訳.","operationId":"gap_breakdown_api_v1_reconciliation_gap_breakdown_get","parameters":[{"name":"fy","in":"query","required":true,"schema":{"type":"integer","maximum":2025,"minimum":1993,"title":"Fy"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reconciliation/gap/detail":{"get":{"tags":["reconciliation"],"summary":"Gap Detail","description":"その他事項経費内訳の不用/繰越分離 (FY2023-2024のみ).","operationId":"gap_detail_api_v1_reconciliation_gap_detail_get","parameters":[{"name":"fy","in":"query","required":true,"schema":{"type":"integer","maximum":2024,"minimum":2023,"title":"Fy"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gaps/unified/{fiscal_year}":{"get":{"tags":["gaps"],"summary":"Get Gap Unified","description":"fy 単位の gap 統合ビュー (4 体系 × gap_class)。\n\nReturns:\n    fiscal_year: 会計年度\n    rows: gap_unified view の行 (subsystem/category/unit/item_count/amount_yen/\n          gap_class/fillable/institutional/evidence_ref/structural_note)\n    totals_by_subsystem: 体系ごとの母数 (件数・金額)。silent gap 0% の検証用\n          (体系内で rows の合計 = この母数)。体系横断の合算はしない。\n    structural_definition: institutional の正確な意味 (ADR-5204、常時同梱)\n    note: 読み方の注意 (unit 非互換・稀薄年)\n    data_source: view 正本","operationId":"get_gap_unified_api_v1_gaps_unified__fiscal_year__get","parameters":[{"name":"fiscal_year","in":"path","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"description":"会計年度","title":"Fiscal Year"},"description":"会計年度"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Gap Unified Api V1 Gaps Unified  Fiscal Year  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gaps/disclosure-route/{fiscal_year}":{"get":{"tags":["gaps"],"summary":"Get Gap Disclosure Route","description":"gap 行 (restricted/end_unknown) の開示請求先解決 (ADR-5850, BE T5)。\n\ngap_disclosure_route view (mig 4459) をそのまま返す。請求先は\nsource_id 一致 > (status, reason) 一致 > status 既定 の最長一致で解決し、\n解決不能行も NULL 付きで返す (silent drop しない)。\n\n⚠ スコープ = 請求導線の可視化まで (市民投稿・補完受付は無い)。\nrequest_form_url 等は後埋め NULL があり得る (honest null)。","operationId":"get_gap_disclosure_route_api_v1_gaps_disclosure_route__fiscal_year__get","parameters":[{"name":"fiscal_year","in":"path","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"description":"会計年度","title":"Fiscal Year"},"description":"会計年度"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"lineage_status で絞り込む (restricted / end_unknown)。未指定は両方。","title":"Status"},"description":"lineage_status で絞り込む (restricted / end_unknown)。未指定は両方。"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"description":"返却上限。","default":500,"title":"Limit"},"description":"返却上限。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Gap Disclosure Route Api V1 Gaps Disclosure Route  Fiscal Year  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prefecture-compare/{pref_code}":{"get":{"tags":["compare"],"summary":"Prefecture Compare","description":"都道府県レベル 15 指標を返す (unified_ranking と同じキー)。","operationId":"prefecture_compare_api_v1_prefecture_compare__pref_code__get","parameters":[{"name":"pref_code","in":"path","required":true,"schema":{"type":"string","title":"Pref Code"}},{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2023,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/prefecture-compare/{pref_code}/timeline":{"get":{"tags":["compare"],"summary":"Prefecture Compare Timeline","description":"都道府県の 12 年推移を返す。metric で 4 種類を切替。","operationId":"prefecture_compare_timeline_api_v1_prefecture_compare__pref_code__timeline_get","parameters":[{"name":"pref_code","in":"path","required":true,"schema":{"type":"string","title":"Pref Code"}},{"name":"fy_from","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"description":"開始年度","default":2013,"title":"Fy From"},"description":"開始年度"},{"name":"fy_to","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"description":"終了年度","default":2024,"title":"Fy To"},"description":"終了年度"},{"name":"metric","in":"query","required":false,"schema":{"enum":["expenditure_total","revenue_total","aging_rate","grant_dependency"],"type":"string","description":"expenditure_total / revenue_total / aging_rate / grant_dependency","default":"expenditure_total","title":"Metric"},"description":"expenditure_total / revenue_total / aging_rate / grant_dependency"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrefTimelineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/national-compare":{"get":{"tags":["compare"],"summary":"National Compare","description":"国レベル 15 指標を返す (unified_ranking と同じキー)。","operationId":"national_compare_api_v1_national_compare_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2023,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/spark/{level}/{code}":{"get":{"tags":["compare"],"summary":"Spark","description":"指定レベル/コード/指標について start..end 年の値配列を返す。\n\n`metric` を指定すると単一指標、`metrics` (CSV) を指定すると複数指標を\n1 レスポンスで返す (bundle モード、N+1 回避用)。","operationId":"spark_api_v1_spark__level___code__get","parameters":[{"name":"level","in":"path","required":true,"schema":{"type":"string","title":"Level"}},{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"metric","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"description":"単一指標 (後方互換)","title":"Metric"},"description":"単一指標 (後方互換)"},{"name":"metrics","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"description":"カンマ区切り複数指標 (bundle モード)","title":"Metrics"},"description":"カンマ区切り複数指標 (bundle モード)"},{"name":"start","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2014,"title":"Start"}},{"name":"end","in":"query","required":false,"schema":{"type":"integer","maximum":2024,"minimum":2010,"default":2023,"title":"End"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payee-corp-ranking/summary":{"get":{"tags":["payee-corp-ranking"],"summary":"Summary","description":"ランキング全体の集計統計.\n\n返り値:\n  corp_count        : ランキング対象法人数 (法人番号でユニーク)\n  total_amount_yen  : 全法人受領総額 (suspect 除外後, 5年累計)\n  total_payee_lines : payee 明細総数 (suspect 除外後)\n  suspect_lines     : suspect 判定で除外された明細数 (透明性)\n  first_fiscal_year / last_fiscal_year : カバー会計年度\n  ks_lines / budget_lines : シート種別の明細内訳","operationId":"summary_api_v1_payee_corp_ranking_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/payee-corp-ranking/top":{"get":{"tags":["payee-corp-ranking"],"summary":"Top","description":"受領額 or 受領行数ランキング (降順).","operationId":"top_api_v1_payee_corp_ranking_top_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"取得件数 (1-500)","default":50,"title":"Limit"},"description":"取得件数 (1-500)"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"開始位置","default":0,"title":"Offset"},"description":"開始位置"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"法人名 部分一致 (大文字小文字区別なし)","title":"Q"},"description":"法人名 部分一致 (大文字小文字区別なし)"},{"name":"order","in":"query","required":false,"schema":{"type":"string","description":"集計基準 amount=受領総額 / count=受領行数 (既定 amount、 未知値は amount)","default":"amount","title":"Order"},"description":"集計基準 amount=受領総額 / count=受領行数 (既定 amount、 未知値は amount)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payee-corp-ranking/by-corp/{corporate_number}":{"get":{"tags":["payee-corp-ranking"],"summary":"By Corp","description":"法人番号 1 件の集計詳細.","operationId":"by_corp_api_v1_payee_corp_ranking_by_corp__corporate_number__get","parameters":[{"name":"corporate_number","in":"path","required":true,"schema":{"type":"string","title":"Corporate Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/local-bid-corp-ranking/summary":{"get":{"tags":["local-bid-corp-ranking"],"summary":"Summary","description":"ランキング全体の集計統計.\n\n返り値:\n  corp_count             : ランキング対象法人数 (法人番号でユニーク)\n  national_corp_count    : うち軸1 (国の歳出先) にも登場する法人数 (クロス軸)\n  total_award_amount_yen : 全法人落札総額 (suspect 除外後, 全期間累計)\n  total_contract_lines   : 落札契約明細総数 (suspect 除外後)\n  suspect_lines          : suspect 判定で除外された明細数 (透明性)\n  first_fiscal_year / last_fiscal_year : カバー会計年度","operationId":"summary_api_v1_local_bid_corp_ranking_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/local-bid-corp-ranking/top":{"get":{"tags":["local-bid-corp-ranking"],"summary":"Top","description":"落札額 or 契約数ランキング (降順).","operationId":"top_api_v1_local_bid_corp_ranking_top_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"取得件数 (1-500)","default":50,"title":"Limit"},"description":"取得件数 (1-500)"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"開始位置","default":0,"title":"Offset"},"description":"開始位置"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"法人名 部分一致 (大文字小文字区別なし)","title":"Q"},"description":"法人名 部分一致 (大文字小文字区別なし)"},{"name":"national_only","in":"query","required":false,"schema":{"type":"boolean","description":"軸1 (国の歳出先) にも登場する法人のみ","default":false,"title":"National Only"},"description":"軸1 (国の歳出先) にも登場する法人のみ"},{"name":"order","in":"query","required":false,"schema":{"type":"string","description":"集計基準 amount=落札総額 / count=契約数 (既定 amount、 未知値は amount)","default":"amount","title":"Order"},"description":"集計基準 amount=落札総額 / count=契約数 (既定 amount、 未知値は amount)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/local-bid-corp-ranking/by-corp/{corporate_number}":{"get":{"tags":["local-bid-corp-ranking"],"summary":"By Corp","description":"法人番号 1 件の集計詳細.","operationId":"by_corp_api_v1_local_bid_corp_ranking_by_corp__corporate_number__get","parameters":[{"name":"corporate_number","in":"path","required":true,"schema":{"type":"string","title":"Corporate Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/years":{"get":{"tags":["procurement"],"summary":"List Years","description":"取込済みの会計年度リスト.","operationId":"list_years_api_v1_procurement_years_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/procurement/summary":{"get":{"tags":["procurement"],"summary":"Summary","description":"府省別 契約件数・合計金額・随契比率.\n\nroll-up: procurement_ministries.parent_code で庁→本省に集約.","operationId":"summary_api_v1_procurement_summary_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"会計年度 (省略時は最新)","title":"Year"},"description":"会計年度 (省略時は最新)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/top-contractors":{"get":{"tags":["procurement"],"summary":"Top Contractors","description":"受注額 TOP N 事業者. contractor_id で一意化済.","operationId":"top_contractors_api_v1_procurement_top_contractors_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/method-ratio":{"get":{"tags":["procurement"],"summary":"Method Ratio","description":"入札方式カテゴリ別 (general/limited/discretionary) 比率.","operationId":"method_ratio_api_v1_procurement_method_ratio_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/sankey":{"get":{"tags":["procurement"],"summary":"Sankey","description":"府省 → 事業者 Sankey. ノード数を top で制限.","operationId":"sankey_api_v1_procurement_sankey_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"top","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":3,"description":"府省/事業者それぞれ上位 N","default":15,"title":"Top"},"description":"府省/事業者それぞれ上位 N"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/quality/by-origin-pid":{"get":{"tags":["procurement"],"summary":"Quality By Origin Pid","description":"origin_pid 単位の契約合計 vs 予算額比率.\n\nPhase 2 populate 誤配賦 + Phase 3 embedding 混入を admin UI で一覧化する\nための集計 EP. ratio DESC 順で ratio > 1 の原因事項を浮上させる.\n\n- `value_a` = national_budget (major_expense_detail, flow_type='expenditure')\n  の同 origin_pid 合計 (千円→円換算後)\n- `value_b` = procurement_contracts (match_method ∈ dictionary/embedding)\n  の同 origin_pid 契約合計\n- `ratio`   = value_b / value_a (value_a=0 の場合 NULL)","operationId":"quality_by_origin_pid_api_v1_procurement_quality_by_origin_pid_get","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":2013,"description":"対象会計年度","title":"Year"},"description":"対象会計年度"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"over_budget_only","in":"query","required":false,"schema":{"type":"boolean","description":"True で ratio (契約合計/予算) > 1 の origin_pid のみ返す","default":false,"title":"Over Budget Only"},"description":"True で ratio (契約合計/予算) > 1 の origin_pid のみ返す"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/contracts/by-origin-pid":{"get":{"tags":["procurement"],"summary":"Contracts By Origin Pid","description":"origin_pid に紐付く procurement_contracts の drill-down.\n\n`quality/by-origin-pid` の行クリックから呼び出される一覧. fiscal_year 指定で\n単年に絞り込める. contract_amount_yen DESC 順で返す (大きい契約を優先確認).","operationId":"contracts_by_origin_pid_api_v1_procurement_contracts_by_origin_pid_get","parameters":[{"name":"origin_pid","in":"query","required":true,"schema":{"type":"string","minLength":16,"maxLength":16,"pattern":"^[a-f0-9]{16}$","description":"origin_pid (小文字 16 桁 hex)","title":"Origin Pid"},"description":"origin_pid (小文字 16 桁 hex)"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/by-contractor/{corporate_number}":{"get":{"tags":["procurement"],"summary":"By Contractor","description":"法人番号 1 件が国から受けた全契約 (Recipient Profile).\n\nUSAspending の Recipient Profile 相当. procurement_contracts を法人番号で\n集約し, その企業が府省・年度を横断して受けた全契約を返す. fiscal_year\n指定で単年に絞れる. contract_amount_yen DESC 順 (大きい契約を優先確認).","operationId":"by_contractor_api_v1_procurement_by_contractor__corporate_number__get","parameters":[{"name":"corporate_number","in":"path","required":true,"schema":{"type":"string","title":"Corporate Number"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/contractor-search":{"get":{"tags":["procurement"],"summary":"Contractor Search","description":"法人名で受注企業を検索 (Recipient 検索).\n\nprocurement_contracts を法人番号で集約した候補を, 受注総額 DESC で返す.\n各候補は by-contractor/{corporate_number} で詳細プロフィールに繋ぐ.","operationId":"contractor_search_api_v1_procurement_contractor_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"法人名 部分一致 (大文字小文字区別なし)","title":"Q"},"description":"法人名 部分一致 (大文字小文字区別なし)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/award-search":{"get":{"tags":["procurement"],"summary":"Award Search","description":"調達契約の全件多軸検索 (Award Search).\n\n企業名・件名・府省・年度・金額帯・契約方式で procurement_contracts\n全件を横断検索し, 契約単位で契約金額 DESC に返す. 全条件 AND, 未指定軸は\n無視. total は同一条件のヒット総数 (ページング前).","operationId":"award_search_api_v1_procurement_award_search_get","parameters":[{"name":"contractor_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"事業者名 部分一致 (大文字小文字区別なし)","title":"Contractor Name"},"description":"事業者名 部分一致 (大文字小文字区別なし)"},{"name":"contract_title","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"契約件名 部分一致 (大文字小文字区別なし)","title":"Contract Title"},"description":"契約件名 部分一致 (大文字小文字区別なし)"},{"name":"ministry_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"府省コード (2桁)","title":"Ministry Code"},"description":"府省コード (2桁)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":2013},{"type":"null"}],"description":"会計年度","title":"Fiscal Year"},"description":"会計年度"},{"name":"amount_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"契約金額 下限 (円, 以上)","title":"Amount Min"},"description":"契約金額 下限 (円, 以上)"},{"name":"amount_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"契約金額 上限 (円, 以下)","title":"Amount Max"},"description":"契約金額 上限 (円, 以下)"},{"name":"bidding_method_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"契約方式 (general=一般競争 / limited=指名競争 / discretionary=随意契約)","title":"Bidding Method Category"},"description":"契約方式 (general=一般競争 / limited=指名競争 / discretionary=随意契約)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/procurement/ministries":{"get":{"tags":["procurement"],"summary":"List Ministries","description":"府省マスタ (procurement_ministries) 一覧 — Award Search の府省絞り込み用.","operationId":"list_ministries_api_v1_procurement_ministries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tax_reform/measures":{"get":{"tags":["tax_reform"],"summary":"List Measures","description":"改正項目別 増減収見込額を返す.\n\nArgs:\n    fiscal_year: 施行対象年度で絞る (例: 2024=令和6年度改正)\n    category_group: '個人所得課税' 等で絞る","operationId":"list_measures_api_v1_tax_reform_measures_get","parameters":[{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2018},{"type":"null"}],"title":"Fiscal Year"}},{"name":"category_group","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Category Group"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Measures Api V1 Tax Reform Measures Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax_reform/section_totals":{"get":{"tags":["tax_reform"],"summary":"List Section Totals","description":"セクション別 計 (大綱原文) を返す. R-032 の golden.","operationId":"list_section_totals_api_v1_tax_reform_section_totals_get","parameters":[{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2018},{"type":"null"}],"title":"Fiscal Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Section Totals Api V1 Tax Reform Section Totals Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax_reform/summary":{"get":{"tags":["tax_reform"],"summary":"Summary","description":"年度 × セクション 毎の項目数・平年度合計を返す (dashboard 用).","operationId":"summary_api_v1_tax_reform_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Summary Api V1 Tax Reform Summary Get"}}}}}}},"/api/v1/completeness/overview":{"get":{"tags":["completeness"],"summary":"Get Completeness Overview","description":"決算事項 leaf の tier 別金額カバレッジと rule 状態を返す.\n\n#1214 Phase 2a (ADR-4883): 金額カバレッジの正準軸を「決算明細事項 leaf」とする。\n旧実装 (全 classification の SUM) は予算/決算/全分類軸 (14+ 軸) を多重計上し\n4,882兆 (国家予算の約14倍) に膨張していた。 決算明細事項 leaf\n(settlement_detail_pdf_item 等) は leaf 粒度で出典別の tier 分布が出るため、\n一般会計決算 153兆 = 検証済 122.8兆 (80%) + 出典不明 30.2兆 (20%) を正しく集計できる。\n特別会計 (settlement_detail_pdf_sa_item) は national_budget 上は粗計 814兆のため除外\n(Phase 2b で v_special_account_net の純計 217兆 を統合する)。","operationId":"get_completeness_overview_api_v1_completeness_overview_get","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"description":"Fiscal year","title":"Year"},"description":"Fiscal year"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Completeness Overview Api V1 Completeness Overview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/completeness/tree/{classification}":{"get":{"tags":["completeness"],"summary":"Get Completeness Tree","description":"classification 内の parent_item 単位の tier 分布と検証 rule を返す.","operationId":"get_completeness_tree_api_v1_completeness_tree__classification__get","parameters":[{"name":"classification","in":"path","required":true,"schema":{"type":"string","title":"Classification"}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Completeness Tree Api V1 Completeness Tree  Classification  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/completeness/items/{classification}":{"get":{"tags":["completeness"],"summary":"Get Completeness Items","description":"classification 内の item_name 粒度の tier 集計を返す.\n\ntree EP は parent_item GROUP BY なので flat classification (major_expense /\npurpose_class / use_type / ministry 等, parent_item='' で格納) では\nclassification 全体が 1 node に collapse する. UI の per-card badge には\nitem_name 粒度が必要なためこの EP を別途提供する.","operationId":"get_completeness_items_api_v1_completeness_items__classification__get","parameters":[{"name":"classification","in":"path","required":true,"schema":{"type":"string","title":"Classification"}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Completeness Items Api V1 Completeness Items  Classification  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/completeness/by_classification":{"get":{"tags":["completeness"],"summary":"Get Completeness By Classification","description":"24 classification × 4 tier の金額・行数マトリクスを返す (Slice 3 ヒートマップ用).\n\nflow_type は expenditure に限定しない (revenue_source/tax_expenditure 等も含む).\nclassifications は v_row_completeness に実在するものだけを返す (空のものは除外).\n\nR1: dominant_tier は v_classification_completeness view 側で計算済.\nR5: exclude_totals=true で \"*_total\" 合計行を除外.","operationId":"get_completeness_by_classification_api_v1_completeness_by_classification_get","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"title":"Year"}},{"name":"exclude_totals","in":"query","required":false,"schema":{"type":"boolean","description":"True 時は ministry_total / special_account_total 等の \"_total\" で 終わる合計行 classification を除外. heatmap のノイズ除去用.","default":false,"title":"Exclude Totals"},"description":"True 時は ministry_total / special_account_total 等の \"_total\" で 終わる合計行 classification を除外. heatmap のノイズ除去用."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Completeness By Classification Api V1 Completeness By Classification Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/completeness/unknown_top":{"get":{"tags":["completeness"],"summary":"Get Completeness Unknown Top","description":"unknown tier の金額上位 N 行を返す.\n\nソース未紐付けで金額の大きい行を露出する政治的シグナル用.\n「税金のどこが、いちばんブラックボックスか」を直接可視化する.","operationId":"get_completeness_unknown_top_api_v1_completeness_unknown_top_get","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"title":"Year"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Completeness Unknown Top Api V1 Completeness Unknown Top Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/completeness/row/{row_id}":{"get":{"tags":["completeness"],"summary":"Get Completeness Row","description":"単一 national_budget 行の tier + source + snapshot + verified_by rules.\n\nrow_id は v_row_completeness 内で合成された MD5 hash (32 文字).\nnational_budget の複合 PK (fy, account_type, flow_type, classification,\nparent_item, item_name) から生成される.","operationId":"get_completeness_row_api_v1_completeness_row__row_id__get","parameters":[{"name":"row_id","in":"path","required":true,"schema":{"type":"string","title":"Row Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Completeness Row Api V1 Completeness Row  Row Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/seifukankei/outflow":{"get":{"tags":["seifukankei"],"summary":"List Outflow","description":"seifukankei_outflow 行を返す.\n\nArgs:\n    fiscal_year: FY2020-2024 等で絞る\n    kikan_name: 'JBIC' / 'JFC_国民生活事業' / 'JICA-HARO' / '沖縄公庫' 等\n    target_type: 'sector' / 'country' / 'region' / 'loan_type' / 'purpose' / 'aggregate'\n    flow_type: 'lending' / 'equity' / 'grant' / 'guarantee'\n    stat_type: 'approved' / 'executed' / 'outstanding'","operationId":"list_outflow_api_v1_seifukankei_outflow_get","parameters":[{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2015},{"type":"null"}],"title":"Fiscal Year"}},{"name":"kikan_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Kikan Name"}},{"name":"target_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Target Type"}},{"name":"flow_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Flow Type"}},{"name":"stat_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Stat Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Outflow Api V1 Seifukankei Outflow Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/seifukankei/outflow/summary":{"get":{"tags":["seifukankei"],"summary":"Outflow Summary","description":"機関別 × 年度別 outflow 合計と stat_type breakdown.\n\nprimary_source_id を GROUP BY に含め、機関ごとの出典 source を返す\n(機関→source は collector 単位で 1:1、混在時は行が分かれ誤帰属しない)。","operationId":"outflow_summary_api_v1_seifukankei_outflow_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Outflow Summary Api V1 Seifukankei Outflow Summary Get"}}}}}}},"/api/v1/seifukankei/coverage":{"get":{"tags":["seifukankei"],"summary":"Coverage","description":"(fiscal_year, kikan_canonical) カバレッジ状況.\n\nsettlement_seifukankei_expense に対して outflow 側がどれだけ投入済か.\nR-34 reconciliation rule と同じ正規化ロジック (JFC_国民生活事業 →\nJFC_国民一般向け業務 等) で集計.","operationId":"coverage_api_v1_seifukankei_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Coverage Api V1 Seifukankei Coverage Get"}}}}}}},"/api/v1/lineage/ntier/{origin_pid}":{"get":{"tags":["lineage"],"summary":"Ntier Lineage","description":"N-tier lineage traversal.\n\n返り値:\n  lineage: [{tier_depth, path, current_id, id_type, amount_yen,\n             flow_type, confidence, fiscal_year}, ...]\n  coverage: {max_populated_depth, rows_per_depth, note, populate_status}\n\n404: 指定 origin_pid が procurement_contracts に存在しない","operationId":"ntier_lineage_api_v1_lineage_ntier__origin_pid__get","parameters":[{"name":"origin_pid","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{16}$","description":"16-hex origin_pid (Phase 7-A)","title":"Origin Pid"},"description":"16-hex origin_pid (Phase 7-A)"},{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"description":"会計年度 (省略時は全年度)","title":"Fy"},"description":"会計年度 (省略時は全年度)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。","title":"Fiscal Year"},"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。"},{"name":"max_depth","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"description":"traversal 最大深さ (1..10)","default":5,"title":"Max Depth"},"description":"traversal 最大深さ (1..10)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lineage/ntier-coverage":{"get":{"tags":["lineage"],"summary":"Ntier Coverage","description":"Phase 7-K tier_depth 別 coverage 集計 (v_procurement_ntier_lineage_coverage).\n\n管理 UI / 監視用. FY2019-2024 × tier 0..5 の 36 行を返す.","operationId":"ntier_coverage_api_v1_lineage_ntier_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/lineage/tier-schema":{"get":{"tags":["lineage"],"summary":"Tier Schema","description":"Tax Trace UI 用の 9 tier 構造定義 + populate 状態.\n\nUI (`/dashboard/trace.html`) が `init()` 時に呼び、 tier ナビ描画と\nskeleton tier の判定に使う. populate 状態は `lineage_schema.TIER_SCHEMA[*].probe_query`\nを逐次実行して得る (read-only, 9 query / 数 ms).\n\n返り値:\n  schema: [{tier_no, label, description, source_table, color,\n            populated, status, waiting_for?}, ...]\n  summary: {total: 9, populated: N, skeleton: M}\n\nskeleton tier (現状 Tier 8 のみ) は waiting_for に「次に投入予定の source 名」を\n含めて返し、 UI が「データなし。 EDINET XBRL 投入後に自動表示」 と表示できる.","operationId":"tier_schema_api_v1_lineage_tier_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Tier Schema Api V1 Lineage Tier Schema Get"}}}}}}},"/api/v1/lineage/complete-flow":{"get":{"tags":["lineage"],"summary":"Complete Flow","description":"origin から Tier 0-8 まで一気通貫の flow を返す (B1b).\n\nUI (`/dashboard/trace.html`) が ECharts Sankey 描画に使う main API.\n\n現状の実装範囲 (B1b):\n  - 各 tier の top-N node を amount DESC で取得 (origin 非依存)\n  - skeleton tier (Tier 8) は waiting_for を含む placeholder\n  - SQL fail は honest に skeleton 扱いとして status='skeleton', error 付与\n\n今後の拡張 (B2/B3):\n  - origin_type/origin_id に応じた filter (例: classification='defense'\n    起点なら Tier 1 を defense のみに絞り、 Tier 6 を防衛省発注のみに絞る)\n  - parent_id / link 関係 の付与で Sankey link 描画\n\n返り値:\n  origin: {type, id, fy}\n  tiers: [{tier_no, label, color, status, nodes:[...], waiting_for?, error?}, ...]\n  summary: {total, complete, skeleton}","operationId":"complete_flow_api_v1_lineage_complete_flow_get","parameters":[{"name":"origin_type","in":"query","required":true,"schema":{"type":"string","description":"起点タイプ: classification / pid / jis_code / corp_number","title":"Origin Type"},"description":"起点タイプ: classification / pid / jis_code / corp_number"},{"name":"origin_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"起点 ID (B1b は記録のみ、 filter は B2 以降)","title":"Origin Id"},"description":"起点 ID (B1b は記録のみ、 filter は B2 以降)"},{"name":"fy","in":"query","required":false,"schema":{"type":"integer","maximum":2030,"minimum":2013,"description":"会計年度","default":2024,"title":"Fy"},"description":"会計年度"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。","title":"Fiscal Year"},"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。"},{"name":"max_nodes_per_tier","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":5,"description":"各 tier の上限 node 数","default":50,"title":"Max Nodes Per Tier"},"description":"各 tier の上限 node 数"},{"name":"populate_mode","in":"query","required":false,"schema":{"type":"string","description":"skeleton (default, 空 tier も placeholder で返す) / full (空 tier は除外)","default":"skeleton","title":"Populate Mode"},"description":"skeleton (default, 空 tier も placeholder で返す) / full (空 tier は除外)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Complete Flow Api V1 Lineage Complete Flow Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lineage/search":{"get":{"tags":["lineage"],"summary":"Search Origins","description":"origin 候補の autocomplete 検索 (B3).\n\nTax Trace UI の検索ボックスから呼び出される。 type に応じて適切な\ntable を search し、 id/name/amount の dict 配列を返す.\n\nclassification: national_budget から ILIKE 部分一致\njis_code: municipalities から名前 ILIKE / コード完全一致\ncorp_number: procurement_contractors から名前 ILIKE / 法人番号完全一致\npid: procurement_contracts から origin_pid 完全一致 (16-hex)\n\nSQL fail 時は B1 fix と同じく rollback して空 results を返す.","operationId":"search_origins_api_v1_lineage_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"検索 keyword (部分一致 / pid のみ完全一致)","title":"Q"},"description":"検索 keyword (部分一致 / pid のみ完全一致)"},{"name":"type","in":"query","required":true,"schema":{"type":"string","description":"origin_type: classification | jis_code | corp_number | pid","title":"Type"},"description":"origin_type: classification | jis_code | corp_number | pid"},{"name":"fy","in":"query","required":false,"schema":{"type":"integer","maximum":2030,"minimum":2013,"description":"会計年度 (classification 検索でのみ使用)","default":2024,"title":"Fy"},"description":"会計年度 (classification 検索でのみ使用)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。","title":"Fiscal Year"},"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"返却件数上限","default":20,"title":"Limit"},"description":"返却件数上限"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Origins Api V1 Lineage Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lineage_termination/by-origin-pid/{origin_pid}":{"get":{"tags":["lineage_termination"],"summary":"Get Lineage Termination By Origin Pid","description":"N1 axiom 物理 — 単一 origin_pid の lineage 終端分類。\n\n返り値:\n  origin_pid: P-ID (lowercase 正規化済)\n  fiscal_year: 会計年度\n  lineage_status: 6 status のいずれか or null (未投入時)\n  termination_reason: 8 reason のいずれか or null\n  amount_at_termination_yen: 終端 row の金額 (円)\n  evidence_source_id: data_sources.source_id\n  detected_at: populate 日時\n\n404: origin_pid が pid_lineage に存在しない\n422: origin_pid format 不正 (FastAPI Path validation、 16-hex 範囲外)\n200 + null fields: origin_pid 存在 + lineage_termination 未投入 (honest null)","operationId":"get_lineage_termination_by_origin_pid_api_v1_lineage_termination_by_origin_pid__origin_pid__get","parameters":[{"name":"origin_pid","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-fA-F]{16}$","description":"origin_pid (16-hex、 pid_lineage.origin_pid)","title":"Origin Pid"},"description":"origin_pid (16-hex、 pid_lineage.origin_pid)"},{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1959},{"type":"null"}],"description":"会計年度 (省略時は pid_lineage の最新 FY)","title":"Fy"},"description":"会計年度 (省略時は pid_lineage の最新 FY)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1959},{"type":"null"}],"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。","title":"Fiscal Year"},"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineageTerminationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lineage_termination/summary":{"get":{"tags":["lineage_termination"],"summary":"Get Lineage Termination Summary","description":"N1 axiom 物理 — per-FY 集計 (6 status + unclassified 比率)。\n\nsilent gap 0% を SQL レベルで物理保証:\n  - total_origin_pids = pid_lineage_fy_origin_count mview から該当 fy 1 row lookup\n  - classified count = lineage_termination_summary mview から該当 fy の\n    status × reason aggregate を status 単位に re-aggregate\n  - unclassified count = total - sum(classified) (= populate 待ち分)\n  - 6 status + unclassified の count 合計 = total_origin_pids\n\n返り値 (LineageTerminationSummaryResponse):\n  fiscal_year + total_origin_pids + 6 status (full/partial/.../public_managed)\n  + unclassified、 各 breakdown は count / amount_yen / pct。\n\npct は total_origin_pids が 0 のとき 0.0、 小数 2 桁。\n\nPR #20 ADR-0089: 2 mview 経由で従来 query 2 件 (pid_lineage 3.27M 行 COUNT(DISTINCT)\n+ lineage_termination GROUP BY) を 1 row lookup + 数 row aggregate に縮約、\nendpoint < 50ms。 mview は daily 03:00 JST REFRESH、 stale up to 23h 容認。","operationId":"get_lineage_termination_summary_api_v1_lineage_termination_summary_get","parameters":[{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1959},{"type":"null"}],"description":"会計年度 (per-FY 集計のため fy か fiscal_year のどちらか必須)","title":"Fy"},"description":"会計年度 (per-FY 集計のため fy か fiscal_year のどちらか必須)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1959},{"type":"null"}],"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。","title":"Fiscal Year"},"description":"fy の別名 (BE T10 命名エイリアス)。両方指定時は fiscal_year 優先。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineageTerminationSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/local-allocation/{prefecture_code}":{"get":{"tags":["local-allocation"],"summary":"Get Local Allocation Summary","description":"都道府県 (or 市区町村) の地方交付税基準額 (需要額/収入額) を category 集計.\n\ntarget_code = prefecture_code、 target_jurisdiction_type は code 桁数から判定:\n  - 2 桁 = prefecture\n  - 6 桁 = municipality\n\n返り値:\n  prefecture_code: 入力 code\n  fiscal_year:     使用された fy (省略時は最新)\n  jurisdiction:    'prefecture' または 'municipality'\n  needs:           [{group, name, amount}, ...]  basis_type='needs'\n  revenue:         [{group, name, amount}, ...]  basis_type='revenue'\n  totals:          {needs_total, revenue_total, gap}","operationId":"get_local_allocation_summary_api_v1_local_allocation__prefecture_code__get","parameters":[{"name":"prefecture_code","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]{2}([0-9]{4})?$","description":"都道府県 jis-code (例: 13 = 東京都) または市区町村 jis (6桁)","title":"Prefecture Code"},"description":"都道府県 jis-code (例: 13 = 東京都) または市区町村 jis (6桁)"},{"name":"fy","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":2013},{"type":"null"}],"description":"会計年度 (省略時は最新). target_jurisdiction_type は code から自動判定","title":"Fy"},"description":"会計年度 (省略時は最新). target_jurisdiction_type は code から自動判定"},{"name":"variant","in":"query","required":false,"schema":{"type":"string","description":"initial = 当初算定 / recalculated = 再算定","default":"initial","title":"Variant"},"description":"initial = 当初算定 / recalculated = 再算定"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Local Allocation Summary Api V1 Local Allocation  Prefecture Code  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/local-allocation/{prefecture_code}/years":{"get":{"tags":["local-allocation"],"summary":"Get Local Allocation Years","description":"指定 code で利用可能な会計年度一覧を返す.","operationId":"get_local_allocation_years_api_v1_local_allocation__prefecture_code__years_get","parameters":[{"name":"prefecture_code","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]{2}([0-9]{4})?$","title":"Prefecture Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Local Allocation Years Api V1 Local Allocation  Prefecture Code  Years Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/expenditure/cross_pivot":{"get":{"tags":["expenditure"],"summary":"Get Expenditure Cross Pivot","description":"主要経費 × lineage 6 status cross pivot per-FY (実データ).\n\nmview `expenditure_cross_pivot_summary` (mig 4377) を fy で filter し long→wide\npivot して返す。 当 FY に行があれば populated=True、 無ければ populated=False +\nrows=[] (honest pending、 national_budget 未取込 FY / minimal seed)。\n\n*_pct は件数% (pid_pct = status_pids / total_pids、 ADR-0126 凍結列)、\n*_amount_pct は金額% (amount_pct = status_amount_yen / total_amount_yen、\nADR-5039 で additive 拡張、 FE-6 が金額%既定/件数%トグルで使用)。 どちらも 6 status\n列に unclassified を含めず、 100% − Σ(6 pct) を残差 = 未分類比率として扱う\n(N1 axiom)。 mig 4387 (主要経費 rollup tier 終端分類) 適用 + REFRESH 後の FY2023\nでは主要経費 unclassified = 0。\n\nfy 範囲外は 422 (FastAPI Query ge/le)。 mview 不在環境 (mig 4377 未適用) は 500\nでなく populated=False を返す (pending state)。","operationId":"get_expenditure_cross_pivot_api_v1_expenditure_cross_pivot_get","parameters":[{"name":"fy","in":"query","required":true,"schema":{"type":"integer","maximum":2030,"minimum":1959,"description":"会計年度 (1959-2030)","title":"Fy"},"description":"会計年度 (1959-2030)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpenditureCrossPivotResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fund-trace/entity/{jis_code}":{"get":{"tags":["fund_trace"],"summary":"Get Entity Fund Mix","description":"会計主体の財源混合 context 帯 (ADR-8225 §採用案6 (B))。\n\ntop-level カテゴリのみ集計 (二重計上回避)。specific_ratio は生値、\nis_mixed は特定財源と一般財源の共存 (§5 fund_mixed の DB 源)。","operationId":"get_entity_fund_mix_api_v1_fund_trace_entity__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]{6}$","description":"会計主体の JIS コード (6 桁)","title":"Jis Code"},"description":"会計主体の JIS コード (6 桁)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1989},{"type":"null"}],"description":"会計年度 (省略時は最新収録 FY)。未収録 FY は最新へ fallback。","title":"Fiscal Year"},"description":"会計年度 (省略時は最新収録 FY)。未収録 FY は最新へ fallback。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundMixResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/fund-trace/expenditure/{jis_code}":{"get":{"tags":["fund_trace"],"summary":"Get Expenditure Fund Class","description":"歳出 line の財源追跡状態一覧 (ADR-8225 §採用案6 (C))。\n\n補助事業費=specific / 単独事業費=untraceable / 他=not_applicable。\n大半の歳出 (人件費・扶助費等) は財源紐付けが源データに無く not_applicable\n(「記録が無い」正直な帰結・N1)。","operationId":"get_expenditure_fund_class_api_v1_fund_trace_expenditure__jis_code__get","parameters":[{"name":"jis_code","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]{6}$","description":"会計主体の JIS コード (6 桁)","title":"Jis Code"},"description":"会計主体の JIS コード (6 桁)"},{"name":"fiscal_year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2030,"minimum":1960},{"type":"null"}],"description":"会計年度 (省略時は最新収録 FY)。未収録 FY は最新へ fallback。","title":"Fiscal Year"},"description":"会計年度 (省略時は最新収録 FY)。未収録 FY は最新へ fallback。"},{"name":"only_traced","in":"query","required":false,"schema":{"type":"boolean","description":"true (既定) = 財源追跡状態が付く行 (補助/単独) のみ返す。 false = not_applicable の大量行も含め全件返す。","default":true,"title":"Only Traced"},"description":"true (既定) = 財源追跡状態が付く行 (補助/単独) のみ返す。 false = not_applicable の大量行も含め全件返す。"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpenditureFundClassResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/task-tree/features":{"get":{"tags":["task-tree"],"summary":"List Features","description":"task-tree feature 一覧 + 各 feature の task / pr 件数。\n\n返り値:\n  features: [{id, parent_id, name, status, priority, phase_tag,\n              description, task_count, pr_count,\n              created_at, updated_at}, ...]\n  total: int","operationId":"list_features_api_v1_task_tree_features_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"status filter (例: active / done / deprecated)","title":"Status"},"description":"status filter (例: active / done / deprecated)"},{"name":"phase_tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"description":"phase_tag filter (例: Phase 6)","title":"Phase Tag"},"description":"phase_tag filter (例: Phase 6)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Features Api V1 Task Tree Features Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/task-tree/features/{feature_id}":{"get":{"tags":["task-tree"],"summary":"Get Feature Detail","description":"feature 1 件 + 直下 children + 紐付け task / pr / adr。\n\n階層 navigation は client 側 (= apps/web 側) で children を辿る再帰呼び出しで実現。\n本 endpoint は 1 階層のみ返し、 N+1 を避けるため tasks / pr_links / adr_links\nを 1 query ずつまとめて返す。\n\n404: feature_id 不存在","operationId":"get_feature_detail_api_v1_task_tree_features__feature_id__get","parameters":[{"name":"feature_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"description":"feature.id (1 以上の整数)","title":"Feature Id"},"description":"feature.id (1 以上の整数)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Feature Detail Api V1 Task Tree Features  Feature Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DecideRequest":{"properties":{"action":{"type":"string","title":"Action","description":"approve | reject"},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Notes"}},"type":"object","required":["action"],"title":"DecideRequest"},"EntityFundMixResponse":{"properties":{"jis_code":{"type":"string","title":"Jis Code","description":"会計主体の JIS コード (6 桁)"},"fiscal_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiscal Year","description":"実際に集計した会計年度 (fallback 後、収録ゼロ時は null)"},"fiscal_year_requested":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiscal Year Requested","description":"要求された会計年度 (fallback 時に fiscal_year と乖離・無言で別年度にしない)"},"has_data":{"type":"boolean","title":"Has Data","description":"revenue_detail に該当 (jis,fy) の top-level 行があるか (honest null 判定)"},"specific_amount":{"type":"integer","title":"Specific Amount","description":"特定財源 合計 (千円)","default":0},"general_amount":{"type":"integer","title":"General Amount","description":"一般財源 合計 (千円)","default":0},"unclassified_amount":{"type":"integer","title":"Unclassified Amount","description":"未分類財源 合計 (千円・ADR-8225 明示分類外を露出)","default":0},"total_amount":{"type":"integer","title":"Total Amount","description":"3 class 合計 (千円) = 歳入合計。unclassified 割合の分母開示に使う","default":0},"specific_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Specific Ratio","description":"特定財源比率 = specific / (specific + general)。分母 0 時は null (生値・閾値帯にしない)"},"is_mixed":{"type":"boolean","title":"Is Mixed","description":"特定財源と一般財源が共存 (§5 fund_mixed の DB 源)。混合 = 個別歳出は 1:1 追跡不能","default":false}},"type":"object","required":["jis_code","fiscal_year","has_data"],"title":"EntityFundMixResponse","description":"会計主体 (jis,fy) の財源混合 context 帯 (ADR-8225 §採用案6 (B))。\n\ntop-level カテゴリのみ集計 = 二重計上回避 (実測: top-level 合計 = 歳入合計)。\nspecific-heavy/general-heavy の閾値帯は ADR-8225 で amendment 委譲のため返さず、\nis_mixed (事実) と生の specific_ratio のみ返す。per-主体 context であって\nper-歳出 1:1 帰属ではない (§4「一般財源を 1:1 追跡したように見せない」を構造担保)。"},"ExpenditureCrossPivotResponse":{"properties":{"fiscal_year":{"type":"integer","maximum":2030.0,"minimum":1959.0,"title":"Fiscal Year","description":"会計年度"},"rows":{"items":{"$ref":"#/components/schemas/LineageStatusPivotRow"},"type":"array","title":"Rows","description":"主要経費 row × 6 status pivot。 ranking 順 (amount_yen 降順) を想定、 全 11 主要経費 (national_budget classification と整合) もしくは top 10 で truncate。"},"populated":{"type":"boolean","title":"Populated","description":"true = 実データ充填済 (Phase 7-N batch 第 2 弾以降、 mview REFRESH 完了後)、 false = stub state (本 ADR-0126 commit 時点 = launch 時点)。 UI は populated=False 時 placeholder '—' + section-level disclaimer 表示 (N2 axiom honest pending state、 ADR-0124 P0-2 fix の disclaimer pattern 踏襲)。"},"total_expected_rows":{"type":"integer","minimum":0.0,"title":"Total Expected Rows","description":"想定 row 数 (national_budget の 11 主要経費)。 ADR-0132 P1-D fix で追加、 partial populate state を schema レベルで表現可能化する。 populated=True かつ len(rows) < total_expected_rows = 部分 populate (進捗中の honest representation)、 populated=True かつ len(rows) = total_expected_rows = 全 row 充填済。 populated=False 時は意味を持たず (stub state は rows=[] 固定)、 default 11 で safe fallback。","default":11}},"type":"object","required":["fiscal_year","rows","populated"],"title":"ExpenditureCrossPivotResponse","description":"主要経費 × lineage 6 status cross pivot per-FY (ADR-0126、 N1 axiom 3 番目 surface).\n\n本 schema は ADR-0126 で凍結、 endpoint 実装は populate 完了後 (Phase 7-N batch\n第 2 弾) で別 PR で物理化する。 launch 時点 (= 本 ADR commit 時点) は populated=False\nで frontend に「placeholder '—' + disclaimer 表示」 の honest pending state を\n指示する (N2 axiom 記録機 / posturing 排除)。\n\npopulate 完了後の endpoint 物理化時に本 schema を直接 import、 SQL aggregate\n(lineage_termination JOIN national_budget で per-classification × per-status\ncount) で row を組み立てる想定。 mview `expenditure_cross_pivot_summary`\n(新規候補) + REFRESH cron も同 batch で起票。"},"ExpenditureFundClassResponse":{"properties":{"jis_code":{"type":"string","title":"Jis Code","description":"会計主体の JIS コード (6 桁)"},"fiscal_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiscal Year","description":"実際に集計した会計年度 (fallback 後、収録ゼロ時は null)"},"fiscal_year_requested":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiscal Year Requested","description":"要求された会計年度 (fallback 時に乖離)"},"has_data":{"type":"boolean","title":"Has Data","description":"該当 (jis,fy) の歳出行があるか"},"specific_count":{"type":"integer","title":"Specific Count","description":"補助事業費 (specific) の行数","default":0},"untraceable_count":{"type":"integer","title":"Untraceable Count","description":"単独事業費 (untraceable) の行数","default":0},"lines":{"items":{"$ref":"#/components/schemas/ExpenditureFundLine"},"type":"array","title":"Lines","description":"補助/単独 split を持つ行のみ (not_applicable の大量行は既定で除外・only_traced=false で全件)"}},"type":"object","required":["jis_code","fiscal_year","has_data"],"title":"ExpenditureFundClassResponse","description":"会計主体 (jis,fy) の歳出 line 財源追跡状態一覧 (ADR-8225 §採用案6 (C))。\n\n補助/単独 split を持つ事業費系の行のみ specific/untraceable、他は not_applicable。\n大半の歳出 (人件費・扶助費等) は財源紐付けが源データに無く not_applicable になる\n(「記録が無い」正直な帰結・N1)。"},"ExpenditureFundLine":{"properties":{"purpose_code":{"type":"string","title":"Purpose Code","description":"目的別コード"},"purpose_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose Name","description":"目的別名称"},"item_code":{"type":"string","title":"Item Code","description":"性質別コード"},"item_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Item Name","description":"性質別名称"},"amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount","description":"金額 (千円)"},"fund_trace_state":{"$ref":"#/components/schemas/FundTraceStateEnum","description":"specific=補助事業費 / untraceable=単独事業費 / not_applicable=財源紐付けなし"}},"type":"object","required":["purpose_code","item_code","fund_trace_state"],"title":"ExpenditureFundLine","description":"歳出明細 1 行の財源追跡状態 (ADR-8225 §採用案6 (C))。"},"FiscalRankingItem":{"properties":{"jis_code":{"type":"string","title":"Jis Code"},"name":{"type":"string","title":"Name"},"prefecture_name":{"type":"string","title":"Prefecture Name"},"fiscal_year":{"type":"integer","maximum":2100.0,"minimum":1960.0,"title":"Fiscal Year"},"revenue_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revenue Total"},"expenditure_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expenditure Total"},"balance_real":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Balance Real"}},"type":"object","required":["jis_code","name","prefecture_name","fiscal_year"],"title":"FiscalRankingItem","description":"財政ランキング項目"},"FiscalSummaryResponse":{"properties":{"fiscal_year":{"type":"integer","maximum":2100.0,"minimum":1960.0,"title":"Fiscal Year","description":"年度"},"revenue_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revenue Total","description":"歳入合計（千円）"},"expenditure_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expenditure Total","description":"歳出合計（千円）"},"balance_real":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Balance Real","description":"実質収支（千円）"},"balance_single_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Balance Single Year","description":"単年度収支（千円）"},"exp_personnel":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Personnel","description":"人件費（千円）"},"exp_welfare":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Welfare","description":"扶助費（千円）"},"exp_debt_service":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Debt Service","description":"公債費（千円）"},"exp_investment":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Investment","description":"投資的経費（千円）"},"exp_goods":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Goods","description":"物件費（千円）"},"exp_subsidy":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Subsidy","description":"補助費等（千円）"},"exp_maintenance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Maintenance","description":"維持補修費（千円）"},"exp_transfer":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp Transfer","description":"繰出金（千円）"},"real_debt_service_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Real Debt Service Ratio","description":"実質公債費比率（%）"}},"type":"object","required":["fiscal_year"],"title":"FiscalSummaryResponse","description":"財政データレスポンス"},"FundTraceStateEnum":{"type":"string","enum":["specific","untraceable","not_applicable"],"title":"FundTraceStateEnum","description":"歳出 line の財源追跡状態 (expenditure_source 由来)。ADR-8225 §採用案6 (C)。"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"$ref":"#/components/schemas/HealthStatus","description":"API状態"},"db":{"type":"string","title":"Db","description":"DB接続状態"},"prefectures":{"type":"integer","minimum":0.0,"title":"Prefectures","description":"都道府県数"},"municipalities":{"type":"integer","minimum":0.0,"title":"Municipalities","description":"自治体数"},"boundaries":{"type":"integer","minimum":0.0,"title":"Boundaries","description":"境界データ数"},"fiscal_records":{"type":"integer","minimum":0.0,"title":"Fiscal Records","description":"財政レコード数"},"population_records":{"type":"integer","minimum":0.0,"title":"Population Records","description":"人口レコード数"}},"type":"object","required":["status","db","prefectures","municipalities","boundaries","fiscal_records","population_records"],"title":"HealthResponse","description":"ヘルスチェックレスポンス"},"HealthStatus":{"type":"string","enum":["ok","error"],"title":"HealthStatus","description":"API稼働状態"},"KeyApplicationRequest":{"properties":{"requested_tier":{"type":"string","title":"Requested Tier","description":"general (即時発行) | research (審査制)"},"applicant_name":{"type":"string","maxLength":100,"minLength":1,"title":"Applicant Name"},"applicant_email":{"type":"string","maxLength":255,"title":"Applicant Email"},"affiliation":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Affiliation","description":"research は必須"},"purpose":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purpose","description":"research は必須。2000 文字で切り詰め"},"evidence_url":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Evidence Url"},"agree_terms":{"type":"boolean","title":"Agree Terms","description":"利用規約 (/terms) への同意。true 必須"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website","description":"記入不要 (honeypot)"},"form_rendered_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Form Rendered At","description":"GET /api/v1/keys/form-token が返す署名付き token"}},"type":"object","required":["requested_tier","applicant_name","applicant_email","agree_terms"],"title":"KeyApplicationRequest","description":"キー発行申請 body。 `website` は honeypot (人間には見えない罠 field)。"},"LineageStatusBreakdown":{"properties":{"count":{"type":"integer","minimum":0.0,"title":"Count","description":"origin_pid 数"},"amount_yen":{"type":"integer","minimum":0.0,"title":"Amount Yen","description":"集計金額 (円、 amount_at_termination の SUM)"},"pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Pct","description":"全 origin_pid に占める比率 (%、 total_origin_pids 基準、 小数 2 桁)。 total が 0 の時は 0.0。"}},"type":"object","required":["count","amount_yen","pct"],"title":"LineageStatusBreakdown","description":"単一 status の集計 (count + amount + pct)."},"LineageStatusEnum":{"type":"string","enum":["full","partial","individual","end_unknown","restricted","public_managed"],"title":"LineageStatusEnum","description":"5 終端タイプ (国) + 1 自治体専用 = 6 status."},"LineageStatusPivotRow":{"properties":{"main_expense_name":{"type":"string","minLength":1,"title":"Main Expense Name","description":"主要経費 (national_budget.classification と整合、 例: '社会保障関係費' / '国債費' / '地方交付税交付金' / '防衛関係費' 等)。"},"main_expense_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Main Expense Id","description":"主要経費 id (cross_pivot_contract.main_expense_id)。 flow_map_edges の `main_expense:<id>` ノード id と同一空間 (mig 4417 exp CTE が同 PK を id として継承) ゆえ、 flow-map のノードラベル解決の join key になる。 ADR-0126 凍結 schema への additive 拡張 (ADR-5039 と同型、 default=None で既存 caller / 凍結 test を壊さない)。"},"amount_yen":{"type":"integer","minimum":0.0,"title":"Amount Yen","description":"該当主要経費の総額 (円、 千円→円換算済)。 ranking 順位の sort key。"},"full_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Full Pct","description":"lineage_status='full' の origin_pid が該当主要経費に占める比率 (%、 主要経費内 origin_pid 数を分母 = 件数%、 小数 1 桁、 ADR-0046 N1 整合)。"},"partial_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Partial Pct","description":"lineage_status='partial' の件数% (origin_pid 数分母、 同上)"},"individual_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Individual Pct","description":"lineage_status='individual' の件数% (同上)"},"end_unknown_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"End Unknown Pct","description":"lineage_status='end_unknown' の件数% (同上)"},"restricted_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Restricted Pct","description":"lineage_status='restricted' の件数% (同上)"},"public_managed_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Public Managed Pct","description":"lineage_status='public_managed' の件数% (同上)"},"full_amount_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Full Amount Pct","description":"lineage_status='full' の金額% (該当主要経費内の status 金額を分母 = mview amount_pct、 ADR-5039 金額% 既定表示の根拠)。","default":0.0},"partial_amount_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Partial Amount Pct","description":"lineage_status='partial' の金額% (status 金額分母、 同上)","default":0.0},"individual_amount_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Individual Amount Pct","description":"lineage_status='individual' の金額% (同上)","default":0.0},"end_unknown_amount_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"End Unknown Amount Pct","description":"lineage_status='end_unknown' の金額% (同上)","default":0.0},"restricted_amount_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Restricted Amount Pct","description":"lineage_status='restricted' の金額% (同上)","default":0.0},"public_managed_amount_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Public Managed Amount Pct","description":"lineage_status='public_managed' の金額% (同上)","default":0.0},"lineage_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lineage Status","description":"主要経費 rollup tier の lineage 終端区分 (major_expense_lineage_map 由来、 mig 4387 / ADR-5027)。 例: 社会保障='individual' / 公共事業= 'end_unknown' / 交付税='public_managed'。 その他の事項経費 (id=4) は detail tier で分解済ゆえ map に行が無く None。 検証ワークベンチが主要経費 自己参照 rollup 行 (bridge 不在) の 6 状態バッジを撃ち分ける join 用 (ADR-0126 凍結 schema への additive 拡張、 default=None)。"},"termination_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Termination Reason","description":"主要経費 rollup tier の終端理由 (major_expense_lineage_map 由来)。 例: 社会保障='individual_recipient'(個人給付で終端) / 公共事業= 'rollup_not_decomposed'(分解可能だが未展開) / 国債費='debt_service'。 lineage_status と対で workbench-status-map の写像に渡す (additive、 default=None)。"}},"type":"object","required":["main_expense_name","amount_yen","full_pct","partial_pct","individual_pct","end_unknown_pct","restricted_pct","public_managed_pct"],"title":"LineageStatusPivotRow","description":"1 主要経費 row × lineage 6 status pivot (ADR-0126 凍結 + ADR-5039 金額% 拡張).\n\n`*_pct` (= 件数%、 origin_pid 数基準) は ADR-0126 凍結列。 `*_amount_pct`\n(= 金額%、 円基準) は ADR-5039 (= 計画 §GOV-2 / ADR-0127) で **凍結 schema を\n壊さず additive 拡張** した列で、 frontend (FE-6 CrossPivotMatrix) が **金額%\nを既定表示・件数% をトグル** する根拠 (mview `expenditure_cross_pivot_summary`\nは pid_pct / amount_pct 両比率を保持済)。 `*_amount_pct` は後方互換のため\ndefault=0.0 (既存 caller / ADR-0126 凍結 test を壊さない additive 契約)。"},"LineageTerminationResponse":{"properties":{"origin_pid":{"type":"string","maxLength":16,"minLength":16,"pattern":"^[0-9a-fA-F]{16}$","title":"Origin Pid","description":"P-ID (pid_lineage.origin_pid、 16-hex)"},"fiscal_year":{"type":"integer","maximum":2030.0,"minimum":1959.0,"title":"Fiscal Year","description":"会計年度"},"lineage_status":{"anyOf":[{"$ref":"#/components/schemas/LineageStatusEnum"},{"type":"null"}],"description":"6 status のいずれか、 もしくは null (lineage_termination 未投入 = honest null)。 ADR-0046 N1 axiom 整合: silent gap 0%、 「未分類」 を null で明示。"},"termination_reason":{"anyOf":[{"$ref":"#/components/schemas/TerminationReasonEnum"},{"type":"null"}],"description":"19 種 reason のいずれか、 lineage_status と対応"},"amount_at_termination_yen":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount At Termination Yen","description":"終端 row の金額 (円)、 NUMERIC(20,0) を int 化"},"evidence_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Source Id","description":"data_sources.source_id (なぜ判明 / なぜ不明)"},"detected_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Detected At","description":"lineage_termination row の populate 日時 (ISO 8601 UTC)"}},"type":"object","required":["origin_pid","fiscal_year"],"title":"LineageTerminationResponse","description":"単一 (origin_pid, fiscal_year) の lineage 終端分類 response."},"LineageTerminationSummaryResponse":{"properties":{"fiscal_year":{"type":"integer","maximum":2030.0,"minimum":1959.0,"title":"Fiscal Year","description":"会計年度"},"total_origin_pids":{"type":"integer","minimum":0.0,"title":"Total Origin Pids","description":"pid_lineage 内 該当 fy の distinct origin_pid 数。 6 status + unclassified の count 合計と一致 (silent gap 0% 物理保証)。"},"full":{"$ref":"#/components/schemas/LineageStatusBreakdown"},"partial":{"$ref":"#/components/schemas/LineageStatusBreakdown"},"individual":{"$ref":"#/components/schemas/LineageStatusBreakdown"},"end_unknown":{"$ref":"#/components/schemas/LineageStatusBreakdown"},"restricted":{"$ref":"#/components/schemas/LineageStatusBreakdown"},"public_managed":{"$ref":"#/components/schemas/LineageStatusBreakdown"},"unclassified":{"$ref":"#/components/schemas/LineageStatusBreakdown","description":"lineage_termination 未投入の origin_pid 数 (honest null = N1 axiom 整合)。 populate 進捗で減る。 launch 時は populate 待ちで多数になり得る。"}},"type":"object","required":["fiscal_year","total_origin_pids","full","partial","individual","end_unknown","restricted","public_managed","unclassified"],"title":"LineageTerminationSummaryResponse","description":"per-FY の lineage 終端分類 集計 (N1 axiom 物理保証、 silent gap 0%)."},"ManageLinkRequest":{"properties":{"email":{"type":"string","maxLength":255,"title":"Email"}},"type":"object","required":["email"],"title":"ManageLinkRequest","description":"キー管理リンク送信要求 (T3-B)。 email に紐づくキーの一覧リンクを送る。"},"ManageRevokeRequest":{"properties":{"token":{"type":"string","maxLength":1024,"minLength":1,"title":"Token"},"key_prefix":{"type":"string","maxLength":16,"minLength":1,"title":"Key Prefix"}},"type":"object","required":["token","key_prefix"],"title":"ManageRevokeRequest","description":"マジックリンク経由の失効要求 (T3-B)。 token が email 所有を証明する。"},"MuniSummaryRow":{"properties":{"jis_code":{"type":"string","title":"Jis Code"},"name":{"type":"string","title":"Name"},"municipality_type":{"type":"string","title":"Municipality Type"},"revenue_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revenue Total"},"expenditure_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expenditure Total"},"local_tax":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Local Tax"},"allocation_tax":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Allocation Tax"},"national_subsidy":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"National Subsidy"},"local_bond":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Local Bond"}},"type":"object","required":["jis_code","name","municipality_type"],"title":"MuniSummaryRow"},"MunicipalitiesSummaryResponse":{"properties":{"fiscal_year":{"type":"integer","title":"Fiscal Year"},"prefecture_code":{"type":"string","title":"Prefecture Code"},"prefecture_name":{"type":"string","title":"Prefecture Name"},"municipalities":{"items":{"$ref":"#/components/schemas/MuniSummaryRow"},"type":"array","title":"Municipalities"},"unit":{"type":"string","title":"Unit","default":"千円"}},"type":"object","required":["fiscal_year","prefecture_code","prefecture_name","municipalities"],"title":"MunicipalitiesSummaryResponse"},"MunicipalityDetail":{"properties":{"jis_code":{"type":"string","title":"Jis Code","description":"JIS自治体コード（6桁）","examples":["131016"]},"name":{"type":"string","title":"Name","description":"自治体名","examples":["千代田区"]},"name_kana":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Kana","description":"読み仮名"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En","description":"英語名"},"prefecture_code":{"type":"string","title":"Prefecture Code","description":"都道府県コード","examples":["13"]},"municipality_type":{"type":"string","title":"Municipality Type","description":"種別: 市/町/村/特別区/政令市/政令市区","examples":["市"]},"designated_city":{"type":"boolean","title":"Designated City","description":"政令指定都市フラグ"},"area_km2":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Area Km2","description":"面積（km2）"},"latitude":{"anyOf":[{"type":"number","maximum":46.0,"minimum":20.0},{"type":"null"}],"title":"Latitude","description":"緯度"},"longitude":{"anyOf":[{"type":"number","maximum":154.0,"minimum":122.0},{"type":"null"}],"title":"Longitude","description":"経度"},"prefecture_name":{"type":"string","title":"Prefecture Name","description":"都道府県名"},"has_boundary":{"type":"boolean","title":"Has Boundary","description":"GeoJSON境界データの有無"}},"type":"object","required":["jis_code","name","prefecture_code","municipality_type","designated_city","prefecture_name","has_boundary"],"title":"MunicipalityDetail","description":"自治体詳細レスポンス（境界データ有無を含む）"},"MunicipalityProfile":{"properties":{"jis_code":{"type":"string","title":"Jis Code","description":"JIS自治体コード"},"name":{"type":"string","title":"Name","description":"自治体名"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En"},"prefecture_name":{"type":"string","title":"Prefecture Name","description":"都道府県名"},"municipality_type":{"type":"string","title":"Municipality Type","description":"種別"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"population":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Population","description":"最新人口"},"aging_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Aging Rate","description":"高齢化率（%）"},"revenue_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Revenue Total","description":"歳入合計（千円）"},"expenditure_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expenditure Total","description":"歳出合計（千円）"}},"type":"object","required":["jis_code","name","prefecture_name","municipality_type"],"title":"MunicipalityProfile","description":"自治体統合プロファイル（人口+財政+スコアを1レスポンスで）"},"MunicipalityResponse":{"properties":{"jis_code":{"type":"string","title":"Jis Code","description":"JIS自治体コード（6桁）","examples":["131016"]},"name":{"type":"string","title":"Name","description":"自治体名","examples":["千代田区"]},"name_kana":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Kana","description":"読み仮名"},"name_en":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name En","description":"英語名"},"prefecture_code":{"type":"string","title":"Prefecture Code","description":"都道府県コード","examples":["13"]},"municipality_type":{"type":"string","title":"Municipality Type","description":"種別: 市/町/村/特別区/政令市/政令市区","examples":["市"]},"designated_city":{"type":"boolean","title":"Designated City","description":"政令指定都市フラグ"},"area_km2":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Area Km2","description":"面積（km2）"},"latitude":{"anyOf":[{"type":"number","maximum":46.0,"minimum":20.0},{"type":"null"}],"title":"Latitude","description":"緯度"},"longitude":{"anyOf":[{"type":"number","maximum":154.0,"minimum":122.0},{"type":"null"}],"title":"Longitude","description":"経度"}},"type":"object","required":["jis_code","name","prefecture_code","municipality_type","designated_city"],"title":"MunicipalityResponse","description":"自治体一覧レスポンス"},"NationalBudgetItem":{"properties":{"item_name":{"type":"string","title":"Item Name","description":"項目名 (省庁別 or 歳入主要科目別)"},"amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount","description":"決算額 (千円、 NULL = データ欠損)。 ORM `BigInteger`、 補正予算 history で負値あり"}},"type":"object","required":["item_name"],"title":"NationalBudgetItem","description":"国の予算・決算 item (= account_type × flow_type group 内の 1 項目)."},"NationalBudgetResponse":{"properties":{"fiscal_year":{"type":"integer","title":"Fiscal Year","description":"年度 (= 該当年度の決算)"},"sections":{"items":{"$ref":"#/components/schemas/NationalBudgetSection"},"type":"array","title":"Sections","description":"account_type × flow_type group の list"},"unit":{"type":"string","title":"Unit","description":"amount の単位 (固定)","default":"千円"},"data_source":{"type":"string","title":"Data Source","description":"データ source 説明","default":"財務省 予算決算等の統計表"}},"type":"object","required":["fiscal_year","sections"],"title":"NationalBudgetResponse","description":"`/api/v1/national-budget` endpoint response (= ADR-1078 fix 後の確定 shape)."},"NationalBudgetSection":{"properties":{"account_type":{"type":"string","title":"Account Type","description":"general / special"},"flow_type":{"type":"string","title":"Flow Type","description":"expenditure / revenue"},"items":{"items":{"$ref":"#/components/schemas/NationalBudgetItem"},"type":"array","title":"Items","description":"項目別 amount list (item_name 昇順)"}},"type":"object","required":["account_type","flow_type","items"],"title":"NationalBudgetSection","description":"account_type × flow_type で grouped な section."},"NationalBudgetTrendDataPoint":{"properties":{"fiscal_year":{"type":"integer","title":"Fiscal Year","description":"年度"},"item_name":{"type":"string","title":"Item Name","description":"項目名 (= item_filter 部分一致)"},"amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount","description":"決算額 (千円、 NULL = データ欠損)。 ORM `BigInteger`、 補正予算 history で負値あり"}},"type":"object","required":["fiscal_year","item_name"],"title":"NationalBudgetTrendDataPoint","description":"`/api/v1/national-budget/trend` endpoint の 1 data point."},"NationalBudgetTrendResponse":{"properties":{"item_filter":{"type":"string","title":"Item Filter","description":"検索 item_name (= partial match query)"},"account_type":{"type":"string","title":"Account Type","description":"general / special"},"flow_type":{"type":"string","title":"Flow Type","description":"expenditure / revenue"},"data":{"items":{"$ref":"#/components/schemas/NationalBudgetTrendDataPoint"},"type":"array","title":"Data","description":"年度推移 data points list (= fiscal_year 昇順)"},"unit":{"type":"string","title":"Unit","description":"amount の単位 (固定)","default":"千円"},"data_source":{"type":"string","title":"Data Source","description":"データ source 説明","default":"財務省 予算決算等の統計表"}},"type":"object","required":["item_filter","account_type","flow_type","data"],"title":"NationalBudgetTrendResponse","description":"`/api/v1/national-budget/trend` endpoint response (= 特定項目年度推移)."},"NationalBudgetYearsResponse":{"properties":{"years":{"items":{"type":"integer"},"type":"array","title":"Years","description":"降順 fiscal_year list (= 最新年度先頭)"},"count":{"type":"integer","title":"Count","description":"years length (= distinct year count)"}},"type":"object","required":["years","count"],"title":"NationalBudgetYearsResponse","description":"`/api/v1/national-budget/years` endpoint response (= 利用可能年度一覧)."},"PopulationResponse":{"properties":{"fiscal_year":{"type":"integer","maximum":2100.0,"minimum":1920.0,"title":"Fiscal Year","description":"年度"},"total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total","description":"総人口"},"male":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Male","description":"男性人口"},"female":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Female","description":"女性人口"},"age_0_14":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Age 0 14","description":"年少人口（0-14歳）"},"age_15_64":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Age 15 64","description":"生産年齢人口（15-64歳）"},"age_65_plus":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Age 65 Plus","description":"老年人口（65歳以上）"},"age_75_plus":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Age 75 Plus","description":"後期高齢者（75歳以上）"},"aging_rate":{"anyOf":[{"type":"number","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Aging Rate","description":"高齢化率（%）"},"births":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Births","description":"出生数"},"deaths":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Deaths","description":"死亡数"},"natural_increase":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Natural Increase","description":"自然増減"}},"type":"object","required":["fiscal_year"],"title":"PopulationResponse","description":"人口データレスポンス"},"PrefTimelineDataPoint":{"properties":{"fiscal_year":{"type":"integer","title":"Fiscal Year"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"delta_yoy_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Delta Yoy Pct"}},"type":"object","required":["fiscal_year","value"],"title":"PrefTimelineDataPoint"},"PrefTimelineResponse":{"properties":{"pref_code":{"type":"string","title":"Pref Code"},"pref_name":{"type":"string","title":"Pref Name"},"metric":{"type":"string","title":"Metric"},"unit":{"type":"string","title":"Unit"},"fy_from":{"type":"integer","title":"Fy From"},"fy_to":{"type":"integer","title":"Fy To"},"data":{"items":{"$ref":"#/components/schemas/PrefTimelineDataPoint"},"type":"array","title":"Data"},"data_source":{"type":"string","title":"Data Source","default":"総務省 地方財政状況調査 / e-Stat population"}},"type":"object","required":["pref_code","pref_name","metric","unit","fy_from","fy_to","data"],"title":"PrefTimelineResponse"},"PrefectureResponse":{"properties":{"code":{"type":"string","title":"Code","description":"都道府県コード（2桁）","examples":["13"]},"name":{"type":"string","title":"Name","description":"都道府県名","examples":["東京都"]},"name_kana":{"type":"string","title":"Name Kana","description":"読み仮名","examples":["トウキョウト"]},"name_en":{"type":"string","title":"Name En","description":"英語名","examples":["Tokyo"]},"region":{"type":"string","title":"Region","description":"地域区分","examples":["関東"]},"display_order":{"type":"integer","title":"Display Order","description":"表示順","examples":[13]}},"type":"object","required":["code","name","name_kana","name_en","region","display_order"],"title":"PrefectureResponse","description":"都道府県レスポンス"},"TerminationReasonEnum":{"type":"string","enum":["contractor_identified","threshold_below","edinet_outside","fms_routed","individual_recipient","classified_defense","classified_personal","self_operated_municipal","personnel_cost","intergovernmental_grant","contribution_outlay","mutual_aid_contribution","interaccount_transfer","operating_consumed","misc_other_expense","unlinked_procurement","procurement_minor_share","debt_service","rollup_not_decomposed","social_insurance_routed_unconnected","public_assistance_routed_unconnected","debt_service_via_special_account","pension_paid_to_individual"],"title":"TerminationReasonEnum","description":"23 種 termination_reason (ADR-0050 chk_status_reason_pair で status と整合).\n\nDB 正本 = termination_reason_enum (mig 883 初期 8 値 + 1009 / 1015 / 1017 /\n4337 / 4367 / 4387 / 4550 / 4580 の ADD VALUE 15 値)。 DB 側にある値がここに無いと\nresponse_model 検証で 500 になるため、 DB への ADD VALUE 時は必ずここにも\n追加する (網羅は tests/test_termination_reason_enum_coverage.py が守る)。\n\n型は 5 列で共用される (lineage_termination / disclosure_target /\nflow_map_bridges / major_expense_lineage_map の termination_reason +\nbudget_trace_catalog.reason_code)。 mig 4550 / 4580 の 4 値は\nbudget_trace_catalog 専用として足されたが、 型が同一である以上\nlineage_termination 側に現れうるので response_model も受け付ける\n(ADR-8754)。"},"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"}}},"tags":[{"name":"system","description":"ヘルスチェック・メタ情報"},{"name":"master","description":"都道府県・自治体マスターデータ"},{"name":"profile","description":"自治体統合プロファイル（人口+財政）"},{"name":"fiscal","description":"財政データ（1987-2024年度）"},{"name":"population","description":"人口データ（2006-2024年）"},{"name":"money-trace","description":"国→県→市の公金フロー追跡"},{"name":"geo","description":"GeoJSON境界データ（PostGIS、国土数値情報ベース）"},{"name":"e-stat","description":"e-Stat API v3.0 直接アクセス（内部利用）"}]}