不動産DX記事まとめ

不動産情報ライブラリの公開APIを利用する

作成者: 片山 幹健|24/04/29 23:30

国土交通省が公開している不動産情報ライブラリの活用についてご案内しています。

この記事は、以前公開した記事「不動産取引価格情報取得APIを利用する」

で紹介したAPIの仕様が2024年4月1日から仕様変更になったため、アップデートしたものになります。

不動産情報ライブラリについて

不動産情報ライブラリとは、不動産の取引価格、地価公示等の価格情報や防災情報、都市計画情報、周辺施設情報等、不動産に関する情報をご覧になることができる国土交通省のWEBサイトです。

https://www.reinfolib.mlit.go.jp/

以前ご紹介した不動産取引価格情報検索は、不動産価格(取引価格・成約価格)情報の検索・ダウンロードという機能に変わっています。また、成約価格情報というのが加わっており、以前よりも件数が多くなっています。

成約価格情報とは、以下の情報だそうです。

指定流通機構(レインズ)保有の不動産取引価格情報を、国土交通省が個別の不動産取引が特定できないよう加工し、消費者向け不動産取引情報サービスである、「レインズ・マーケット・インフォメーション」(RMI)にて公表している情報。なお、マンション及び一戸建ての不動産取引価格(成約価格)については、統計情報としての正確性に配慮した絞り込みを行った上で、個別の不動産取引が特定できないように加工し提供しております。

以下のように、検索結果が一覧で表示され、ダウンロードも可能です。

不動産情報ライブラリの公開APIについて

都度都度検索して調べるのは手間がかかりますし、分析もしづらいです。そこで国土交通省ではAPIを公開し、簡単に不動産取引価格情報を取得できるようにしてくれています。

https://www.reinfolib.mlit.go.jp/help/apiManual/

以前は、誰でも利用できたのですが、2024年4月1日からAPI利用申請が必要になりました。サイト上の利用申請フォームから申請すると、審査後にAPIキーがメールで送られてきます。

ここからは、Google Colba上でPythonを使用して、スプレッドシートに不動産取引価格情報を出力する流れを紹介しています。

不動産取引価格情報を取得する

APIで取得できるデータは以下です。

タグ名 内容 備考
Type 取引の種類(日本語)
Type 取引の種類(英語)
Region 地区(日本語)
Region 地区(日本語)
MunicipalityCode 市区町村コード
Prefecture 都道府県名(日本語)
Prefecture 都道府県名(英語)
Municipality 市区町村名(日本語)
Municipality 市区町村名(英語)
DistrictName 地区名(日本語)
DistrictName 地区名(英語)
TradePrice 取引価格(総額)
PricePerUnit 坪単価
FloorPlan 間取り(日本語)
FloorPlan 間取り(英語)
Area 面積(平方メートル)
UnitPrice 取引価格(平方メートル単価)
LandShape 土地の形状(日本語)
LandShape 土地の形状(英語)
Frontage 間口
TotalFloorArea 延床面積(平方メートル)
BuildingYear 建築年(日本語)
BuildingYear 建築年(英語)
Structure 建物の構造(日本語)
Structure 建物の構造(英語)
Use 用途(日本語)
Use 用途(英語)
Purpose 今後の利用目的(日本語)
Purpose 今後の利用目的(英語)
Direction 前面道路:方位(日本語)
Direction 前面道路:方位(英語)
Classification 前面道路:種類(日本語)
Classification 前面道路:種類(英語)
Breadth 前面道路:幅員(m)
CityPlanning 都市計画(日本語)
CityPlanning 都市計画(英語)
CoverageRatio 建蔽率(%)
FloorAreaRatio 容積率(%)
Period 取引時点(日本語)
Period 取引時点(英語)
Renovation 改装(日本語)
Renovation 改装(英語)
Remarks 取引の事情等(日本語)
Remarks 取引の事情等(英語)

1. 実行環境の準備: APIを利用するためのコードを記述する場としてGoogle Colaboratoryを、データの出力先としてスプレッドシートを準備します。

今回はGoogle Colabとスプレッドシートを使用する方法をご紹介します。

Google Colabは、無料でPythonというプログラミングコードの実行環境を整備できるサービスです。Googleのサービスなので、同じGoogleサービスであるスプレッドシートとの連携もしやすいです。

Google Colabについて

2. エリアの選定: 収集するデータのエリアを決めます。

不動産取引価格情報は、エリアごとにエリアコードを指定して、取得を行いますので、まずは取得したいエリアのエリアコードを調べる必要があります。

今回は、東京の市区町村のコードを調べたいと思います。 ちなみに、東京都のコードは、13です。

コード 日本語表記 英語表記
01 北海道 Hokkaido
02 青森県 Aomori Prefecture
03 岩手県 Iwate Prefecture
04 宮城県 Miyagi Prefecture
05 秋田県 Akita Prefecture
06 山形県 Yamagata Prefecture
07 福島県 Fukushima Prefecture
08 茨城県 Ibaraki Prefecture
09 栃木県 Tochigi Prefecture
10 群馬県 Gunma Prefecture
11 埼玉県 Saitama Prefecture
12 千葉県 Chiba Prefecture
13 東京都 Tokyo
14 神奈川県 Kanagawa Prefecture
15 新潟県 Niigata Prefecture
16 富山県 Toyama Prefecture
17 石川県 Ishikawa Prefecture
18 福井県 Fukui Prefecture
19 山梨県 Yamanashi Prefecture
20 長野県 Nagano Prefecture
21 岐阜県 Gifu Prefecture
22 静岡県 Shizuoka Prefecture
23 愛知県 Aichi Prefecture
24 三重県 Mie Prefecture
25 滋賀県 Shiga Prefecture
26 京都府 Kyoto Prefecture
27 大阪府 Osaka Prefecture
28 兵庫県 Hyogo Prefecture
29 奈良県 Nara Prefecture
30 和歌山県 Wakayama Prefecture
31 鳥取県 Tottori Prefecture
32 島根県 Shimane Prefecture
33 岡山県 Okayama Prefecture
34 広島県 Hiroshima Prefecture
35 山口県 Yamaguchi Prefecture
36 徳島県 Tokushima Prefecture
37 香川県 Kagawa Prefecture
38 愛媛県 Ehime Prefecture
39 高知県 Kochi Prefecture
40 福岡県 Fukuoka Prefecture
41 佐賀県 Saga Prefecture
42 長崎県 Nagasaki Prefecture
43 熊本県 Kumamoto Prefecture
44 大分県 Oita Prefecture
45 宮崎県 Miyazaki Prefecture
46 鹿児島県 Kagoshima Prefecture
47 沖縄県 Okinawa Prefecture
以下のコードで、東京都の市区町村コードを取得します。
 
import requests

# APIエンドポイントとパラメータの設定
url = "https://www.reinfolib.mlit.go.jp/ex-api/external/XIT002"
params = {"area": "13"} # 東京都の都道府県コード

# APIキーの設定(実際のキーに置き換えてください)
headers = {"Ocp-Apim-Subscription-Key": "APIキーを入力してください"}

# APIリクエストを送信
response = requests.get(url, headers=headers, params=params)

# 応答の確認
if response.status_code == 200:
json_response_data = response.json()
print(json_response_data) # 応答データを表示
else:
print("Failed to retrieve data:", response.status_code)
 
以下のように13ではじまる東京の市区町村のコードが出力されます。
 

3. データの取得: エリアを指定してデータを取得します。

次に、市町村コードと期間を指定して、不動産取引価格情報を取得するコードを記述します。今回は、都心5区に限定して2023年のデータを取得します。

# ライブラリをインポート
import requests
import pandas as pd
import gspread
from google.colab import auth
from google.auth import default
from gspread_dataframe import set_with_dataframe
import time

# Googleユーザー認証
auth.authenticate_user()
creds, _ = default()
gc = gspread.authorize(creds)

# スプレッドシートを開く
spreadsheet_id = '****************' # 実際のスプレッドシートIDに置き換えてください
sheet = gc.open_by_key(spreadsheet_id).sheet1 # シート1を選択

# API設定
url = "https://www.reinfolib.mlit.go.jp/ex-api/external/XIT001" # 不動産価格情報のAPIエンドポイント
headers = {"Ocp-Apim-Subscription-Key": "******************"} # APIキー

# 対象の市町村コードリスト
city_codes = [13101, 13102, 13103, 13104, 13113]
year = 2023 # 取得する年度

# 列の順序を定義
columns_ordered = ["Type", "Region", "MunicipalityCode", "Prefecture", "Municipality",
"DistrictName", "TradePrice", "PricePerUnit", "FloorPlan", "Area",
"UnitPrice", "LandShape", "Frontage", "TotalFloorArea", "BuildingYear",
"Structure", "Use", "Purpose", "Direction", "Classification",
"Breadth", "CityPlanning", "CoverageRatio", "FloorAreaRatio",
"Period", "Renovation", "Remarks"]

# 初めてのデータセットかどうかのフラグ
first_dataset = True

# 各市町村コードに対してデータを取得し、スプレッドシートに記録
for city_code in city_codes:
params = {"year": year, "city": city_code}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
json_response_data = response.json()
df = pd.DataFrame(json_response_data["data"])
df = df.reindex(columns=columns_ordered) # 列の順序を調整

# スプレッドシートにデータフレームを転記
set_with_dataframe(sheet, df, row=len(sheet.get_all_values()) + 1, include_index=False,
include_column_header=first_dataset)

# 最初のデータセットの後は列名を含めない
first_dataset = False

# APIリクエスト間のスリープ
time.sleep(5)
 

上記を実行すると、以下のように指定したスプレッドシートに不動産取引価格情報が出力されます。

 

今回は、不動産情報ライブラリーの公開APIについて紹介しました。

不動産DXに関するご相談などもお気軽にどうぞ。