APIの使い方
東京都オープンデータAPIとは
- 東京都オープンデータAPIは東京都オープンデータカタログサイトにある一部のデータをAPIとして提供するサービスです。
- ユーザ登録は不要で、誰でもすぐにAPIを利用することが可能です。
- APIの対象となるデータは東京都オープンデータカタログサイトで公開しているデータのファイル形式によって異なります。詳細は以下の通りです。(2023年3月現在)
ファイル形式:CSV
- 東京都オープンデータカタログサイトで公開しているデータ
ファイル形式:Excel
- 東京都オープンデータカタログサイトで公開している東京都各局ほかのデータ
推奨環境
本サイトを快適にご利用いただくため、以下の環境でのご利用を推奨いたします。
※推奨環境下のご利用でも、OSとブラウザの組み合わせ、ブラウザの設定状況によっては表示、機能に不具合が起こる可能性がございます。予めご了承くださいますようお願いいたします。
- 推奨OS
- Windows10以上
- Mac OS X 10.15 Catalina 以上
- 推奨ブラウザ(Windows)
- Microsoft Edge(最新版)
- Google Chrome(最新版)
- Firefox(最新版)
- 推奨ブラウザ(Mac OS)
- Microsoft Edge(最新版)
- Google Chrome(最新版)
- Firefox(最新版)
- Safari(最新版)
API経由でデータを利用するための手順
- 利用するAPIを決定する
- APIの検索条件等を確認する
- API画面の見方を紹介します。
- APIのリクエストパラメータ(検索条件)の情報を表示しています。
- 押下することで画面上でAPIの試用をすることができます。
- レスポンス例を表示しています。
- APIの試用をした場合の見方を紹介します。
- APIのリクエストパラメータ(検索条件)を変更できます。
- Aで設定されたリクエストパラメータをもとにAPIの試用を実行します。
- 実行結果をクリアします。
- 試使用したリクエストのCurlコマンド、リクエストURLを表示します。
- 実行した結果を表示します。(青背景部分)
- APIのリクエストURLを取得
- APIを利用する
- JSON形式でデータを取得する場合
- XML形式でデータを取得する場合
本サイトのAPI検索画面から利用するAPIを探します。 (検索方法はキーワード検索、カテゴリ毎のフィルタリング検索が可能です。)
利用するAPIが見つかったらそのAPI名を押下して詳細画面へと移ります。
詳細画面から利用するAPIの検索条件等を確認します。また、APIの試用も可能です。
APIの試用をしたい場合は、「Try it out」ボタンを押下して試用を開始します。
APIの試用をするとレスポンス画面にリクエストURLが表示されるため、そのURLを取得します。
APIを利用するためのサンプルコードを以下に記します。
ここでは、まず例として、東京都 新型コロナウイルス感染症新規陽性者数(apiId:t000001d0000000011-819fb24a2e74a5f2ea848d548c5cff7d-0)を使用して、
公表_年月日が2021年分のデータをJSON形式で取得する場合の手順を示します。
このデータは1日分が1レコードとして構成されているため、1年間(365日分)のデータを取得する場合はlimitに365を指定します。
またcolumnで取得したい項目を絞り込むことが可能です。columnが未指定の場合は項目の絞り込みを行いません。
以下に、curlでデータを取得する場合の例を示します。
curl -X 'POST' \
'https://service.api.metro.tokyo.lg.jp/api/t000001d0000000011-819fb24a2e74a5f2ea848d548c5cff7d-0/json?limit=365' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"column": [
"公表_年月日","日別陽性者数","7日間合計陽性者数","7日間平均陽性者数"
],
"searchCondition": {
"conditionRelationship": "and",
"dateAndSearch": [
{
"column": "公表_年月日",
"relationship": "ge",
"condition": "2021/1/1"
},
{
"column": "公表_年月日",
"relationship": "le",
"condition": "2021/12/31"
}
]
}
}'
上記を実行した際のレスポンスの例を以下に示します。
{
"total": 365,
"subtotal": 365,
"limit":365,
"offset":null,
"metadata": {
"apiId": "t000001d0000000011-819fb24a2e74a5f2ea848d548c5cff7d-0",
"title": "東京都 新型コロナウイルス感染症新規陽性者数 東京都 新型コロナウイルス感染症新規陽性者数",
"datasetId": "t000001d0000000011",
"datasetTitle": "東京都 新型コロナウイルス感染症新規陽性者数",
"datasetDesc": "東京都 新型コロナウイルス対策サイト https://stopcovid19.metro.tokyo.lg.jp/ で公開している新規陽性者数です。(接触歴等不明者数は2020年3月27日から、増加比は2020年4月9日から掲載)",
"dataTitle": "東京都 新型コロナウイルス感染症新規陽性者数",
"dataDesc": "東京都 新型コロナウイルス対策サイト https://stopcovid19.metro.tokyo.lg.jp/ で公開している新規陽性者数です。(接触歴等不明者数は2020年3月27日から、増加比は2020年4月9日から掲載)※ システムの仕様上、下記では1000recordsと表示されておりますが、実際には1000件以上となっております。",
"sheetname": "",
"version": "1.0.7",
"created": "2022/9/15 15:06",
"updated": ""
},
"hits": [
{
"row": 348,
"公表_年月日": "2021-01-01",
"日別陽性者数": 793,
"7日間合計陽性者数": "6129",
"7日間平均陽性者数": "875.6"
},
{
"row": 349,
"公表_年月日": "2021-01-02",
"日別陽性者数": 829,
"7日間合計陽性者数": "6004",
"7日間平均陽性者数": "857.7"
},
{
"row": 350,
"公表_年月日": "2021-01-03",
"日別陽性者数": 826,
"7日間合計陽性者数": "6122",
"7日間平均陽性者数": "874.6"
},
{
"row": 351,
"公表_年月日": "2021-01-04",
"日別陽性者数": 905,
"7日間合計陽性者数": "6536",
"7日間平均陽性者数": "933.7"
},
...
]
}
レスポンスをXMLで受け取ることも可能です。レスポンスがXMLの場合はAPIが対応していればsjisでの取得も可能です。
ただしリクエストのエンコーディングはUTF-8で送信する必要があります。
以下に、curlでXMLのレスポンスを受け取る場合の例を示します。
curl -X 'POST' \
'https://service.api.metro.tokyo.lg.jp/api/t000001d0000000011-819fb24a2e74a5f2ea848d548c5cff7d-0/xml?encoding=utf-8&limit=365' \
-H 'accept: application/xml' \
-H 'Content-Type: application/json' \
-d '{
"column": [
"公表_年月日","日別陽性者数","7日間合計陽性者数","7日間平均陽性者数"
],
"searchCondition": {
"conditionRelationship": "and",
"dateAndSearch": [
{
"column": "公表_年月日",
"relationship": "ge",
"condition": "2021/1/1"
},
{
"column": "公表_年月日",
"relationship": "le",
"condition": "2021/12/31"
}
]
}
}'
上記を実行した際のXMLのレスポンスの例を以下に示します。
<?xml version="1.0" encoding="UTF-8"?>
<result>
<total>365</total>
<subtotal>365</subtotal>
<limit>365</limit>
<offset></offset>
<metadata>
<apiId>t000001d0000000011-819fb24a2e74a5f2ea848d548c5cff7d-0</apiId>
<title>東京都 新型コロナウイルス感染症新規陽性者数 東京都 新型コロナウイルス感染症新規陽性者数</title>
<datasetId>t000001d0000000011</datasetId>
<datasetTitle>東京都 新型コロナウイルス感染症新規陽性者数</datasetTitle>
<datasetDesc>東京都 新型コロナウイルス対策サイト https://stopcovid19.metro.tokyo.lg.jp/ で公開している新規陽性者数です。(接触歴等不明者数は2020年3月27日から、増加比は2020年4月9日から掲載)</datasetDesc>
<dataTitle>東京都 新型コロナウイルス感染症新規陽性者数</dataTitle>
<dataDesc>東京都 新型コロナウイルス対策サイト https://stopcovid19.metro.tokyo.lg.jp/ で公開している新規陽性者数です。(接触歴等不明者数は2020年3月27日から、増加比は2020年4月9日から掲載)※ システムの仕様上、下記では1000recordsと表示されておりますが、実際には1000件以上となっております。</dataDesc>
<sheetname></sheetname>
<version>1.0.7</version>
<created>2022/9/15 15:06</created>
<updated></updated>
</metadata>
<hits>
<item>
<prop>
<rownum>348</rownum>
<key>公表_年月日</key>
<value>2021-01-01</value>
</prop>
<prop>
<rownum>348</rownum>
<key>日別陽性者数</key>
<value>793</value>
</prop>
<prop>
<rownum>348</rownum>
<key>7日間合計陽性者数</key>
<value>6129</value>
</prop>
<prop>
<rownum>348</rownum>
<key>7日間平均陽性者数</key>
<value>875.6</value>
</prop>
</item>
<item>
<prop>
<rownum>349</rownum>
<key>公表_年月日</key>
<value>2021-01-02</value>
</prop>
<prop>
<rownum>349</rownum>
<key>日別陽性者数</key>
<value>829</value>
</prop>
<prop>
<rownum>349</rownum>
<key>7日間合計陽性者数</key>
<value>6004</value>
</prop>
<prop>
<rownum>349</rownum>
<key>7日間平均陽性者数</key>
<value>857.7</value>
</prop>
</item>
<item>
<prop>
<rownum>350</rownum>
<key>公表_年月日</key>
<value>2021-01-03</value>
</prop>
<prop>
<rownum>350</rownum>
<key>日別陽性者数</key>
<value>826</value>
</prop>
<prop>
<rownum>350</rownum>
<key>7日間合計陽性者数</key>
<value>6122</value>
</prop>
<prop>
<rownum>350</rownum>
<key>7日間平均陽性者数</key>
<value>874.6</value>
</prop>
</item>
<item>
<prop>
<rownum>351</rownum>
<key>公表_年月日</key>
<value>2021-01-04</value>
</prop>
<prop>
<rownum>351</rownum>
<key>日別陽性者数</key>
<value>905</value>
</prop>
<prop>
<rownum>351</rownum>
<key>7日間合計陽性者数</key>
<value>6536</value>
</prop>
<prop>
<rownum>351</rownum>
<key>7日間平均陽性者数</key>
<value>933.7</value>
</prop>
</item>
...
</hits>
</result>