コンテンツにスキップ
風土記
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

REST で使う

https://api.fudoki.dev に JSON で問い合わせ、歳出の木のノードを検索・取得する。

ベース URL は https://api.fudoki.dev です。認証は要りません。財政データの応答は JSON、原典 PDF の中継は application/pdf で返します。応答はキャッシュさせません(Cache-Control: no-store)。

最初の問い合わせ

団体と収録範囲を確かめる

curl 'https://api.fudoki.dev/v1/jurisdictions?name=%E6%AD%A6%E8%94%B5%E9%87%8E%E5%B8%82'

name(団体名の部分一致。例は「武蔵野市」)か code(団体コード。6 桁でも、検査数字を除いた 5 桁でもよい)で絞ると、団体の 6 桁のコード・都道府県と、収録している年度・資料区分・会計とその原典が返ります。両方を渡すと AND です。絞らなければ全団体を団体コード順に返し、収録の無い団体は coverage が空です。

収録範囲は明細があることを示すもので、その会計の全事業を収録し終えたことは保証しません。検索の jurisdiction_code は 6 桁だけを受け付ける(5 桁では 0 件になる)ので、ここで引いた 6 桁のコードを使ってください。

列の説明を読む

curl https://api.fudoki.dev/v1/expenditure/columns

列の意味、where で使える条件、金額を足すときの条件(sum_rules)、検索の入力の例が返ります。

ノードを検索する

curl -X POST 'https://api.fudoki.dev/v1/expenditure/nodes:search' \
  -H 'Content-Type: application/json' \
  -d '{
    "document_kind": "settlement",
    "fiscal_year": { "min": 2025, "max": 2025 },
    "where": { "node_kind": { "eq": ["目"] }, "cofog_code": { "prefix": "10.4" } },
    "order_by": [{ "column": "amount_yen", "desc": true }],
    "page_size": 50
  }'

document_kind(settlement は決算、initial は当初予算)と fiscal_year の範囲(西暦、5 年以内)が必須です。

内訳を辿る

curl 'https://api.fudoki.dev/v1/expenditure/nodes/settlement/<node_id>'

検索の応答の node_id を渡すと、そのノードと子を軸(axis)ごとに返します。

検索の条件

where は列名をキーにした条件で、列どうしは AND です。

列の型 使える条件
string eq・not_eq(100 個まで、eq は OR)、prefix・suffix・contains、is_null
integer eq・not_eq(100 個まで、eq は OR)、min・max、is_null
number min・max、is_null
boolean eq

列をまたぐ OR と NOT はないので、2 回に分けて問い合わせてください。fiscal_year の年数と条件の値の合計は 90 個までなので、eq・not_eq に入れられる値は実際にはこの合計で決まります。文字列の条件の値は 200 文字までです。

ページング

検索と、ノード取得の子の一覧と、団体の一覧はページで返ります。応答の next_page_token が null でなければ、次の要求に page_token として渡します(ノード取得と団体の一覧では query に付けます)。page_size は 1〜1000(既定 100)、団体の一覧では 1〜100(既定 20)です。位置は 100,000 件目までなので、それより先が要るときは条件を絞ってください。

原典

応答の origins には、結果の行が指す原典(資料名・公開 URL・形式・SHA-256)が入ります。行の origin_id から引いてください。団体の一覧では、原典(origin_id・資料名・公開 URL・形式)は会計ごとに coverage[].accounts[].origins に入っています。

GET /v1/origins/{origin_id}/pdf で自治体の公開 PDF を表示用に中継します。任意 URL や query は指定できません。取得 URL は percent-encoding した X-Origin-Url、取得日時は ISO 8601 UTC の X-Origin-Fetched-At ヘッダーで返します。取り込み時の内容との一致は検査しません。保持期限と上限は MCP の PDF 表示を参照してください。

エラー

エラーは {"error": {"code": "...", "message": "..."}} の形で返ります。主なものは次のとおりです。

HTTP code 起きるとき
400 INVALID_ARGUMENT 入力が schema に合わない
404 NOT_FOUND ノードや path が見つからない
405 METHOD_NOT_ALLOWED 操作が受け付けないメソッドで送った
413 PAYLOAD_TOO_LARGE body が 16 KiB を超える
415 UNSUPPORTED_MEDIA_TYPE Content-Type が application/json でない
429 PDF_UNAVAILABLE PDF 中継の頻度・保持件数の上限を超える
502 PDF_UNAVAILABLE PDF を取得できない、形式が不正、32 MiBを超える
504 PDF_UNAVAILABLE PDF の取得が20秒を超える
503 UNAVAILABLE 提供を止めている

各操作の入力と応答の詳細は API リファレンスにあります。

このページは役に立ちましたか?