ゴミ収集カレンダーの日程データを、外部アプリケーションやウェブサイトから取得するための HTTP API です。レスポンスはすべて JSON で返ります。
この API の使い方をまとめたテキストをコピーします。 Claude や ChatGPT などのコーディングエージェントにそのまま貼り付けると、 仕様を読ませずに実装を頼めます。
YOUR_API_KEY のままです。貼り付けたあとで実際のキーに置き換えてください。
| ベースURL | https://calendar.gomi53.com/api/v1 |
|---|---|
| メソッド | GET のみ(POST 等は 405) |
| 形式 | application/json; charset=UTF-8 |
| 認証 | APIキーが必要(後述) |
| CORS | Access-Control-Allow-Origin: *(ブラウザから直接呼び出し可) |
| タイムゾーン | Asia/Tokyo |
すべてのエンドポイントで API キーが必要です。以下のどちらかの方法で渡してください。
| 方法 | 指定のしかた |
|---|---|
| リクエストヘッダ (推奨) | X-API-Key: {発行されたキー} |
| クエリパラメータ | ?api_key={発行されたキー} |
curl -H "X-API-Key: YOUR_API_KEY" \
"https://calendar.gomi53.com/api/v1/prefectures"
401 Unauthorized を返します。
クエリパラメータ方式はアクセスログにキーが残るため、
ヘッダを使えない環境での代替手段としてお考えください。
※ 全国を網羅したものではありません。収録済みのエリアは収録エリア一覧をご確認ください。
スケジュールを自前で解釈する場合、以下の3つの値の意味を正しく理解する必要があります。
day_of_week — 曜日0 が日曜です(PHP の date('w') と同じ)。ISO 8601(月曜=1)とは異なります。
| 値 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|---|
| 曜日 | 日 | 月 | 火 | 水 | 木 | 金 | 土 |
schedule_type — 収集の周期| 値 | 意味 | week_number |
|---|---|---|
weekly | 毎週 | null |
nth_week | 第N週のみ | 1〜5 |
biweekly_odd | 隔週(第1・3・5週) | null |
biweekly_even | 隔週(第2・4週) | null |
week_calculation_type — 「第N週」の数え方
自治体によって「第2水曜」の定義が異なります。市区町村ごとに設定されており、
/data のレスポンスに含まれます。
| 値 | 意味 |
|---|---|
occurrence |
その月でその曜日が何回目に現れるかで数える。 例: 月初が金曜の月の第1水曜 = その月の最初の水曜日。 |
calendar_row |
壁掛けカレンダーの行番号で数える。 例: 1日が金曜なら、その週が第1週。翌週の水曜が第2週の水曜になる。 |
/data エンドポイント
(サーバー側で展開済みの日付リストを返す)を使うことを強く推奨します。
指定エリアの、指定月の収集日を日付展開済みで返します。 週の数え方や祝日振替はサーバー側で処理済みのため、クライアントで日付計算をする必要がありません。 通常はこのエンドポイントだけで足ります。
| パラメータ | 必須 | 説明 |
|---|---|---|
id |
必須 * |
エリアID。{prefecture_id}-{city_id}-{district_id} の形式。例: 11-13-186
|
prefecture_namecity_namedistrict_name |
必須 * |
id の代わりに名称で指定する場合に使用(完全一致)。例: prefecture_name=東京都&city_name=品川区&district_name=大井6丁目
|
year |
任意 | 西暦(2000〜2100)。省略時は本年。 |
month |
任意 | 1〜12。省略すると年度単位(4月〜翌年3月の12か月分)を一括で返します。 レスポンスの構造が変わる点に注意してください。 |
* id または(prefecture_name + city_name)のどちらかが必須です。
district_name が付くため区別はできますが、
特定の住所向けに表示する場合は必ず地区まで指定してください。
リクエスト例
curl -H "X-API-Key: YOUR_API_KEY" \\
"https://calendar.gomi53.com/api/v1/data?id=11-13-186&year=2026&month=9"
レスポンス例(month 指定あり)
{
"area": {
"prefecture": { "id": 11, "name": "東京都" },
"city": { "id": 13, "name": "品川区" },
"district": { "id": 186, "name": "大井6丁目" }
},
"calendar": {
"year": 2026,
"month": 9,
"week_calculation_type": "occurrence",
"days": [
{
"date": "2026-09-01",
"day": 1,
"day_of_week": 2,
"week_number": 1,
"trash_types": [
{
"id": 1,
"name": "可燃ごみ",
"color": "#e53935",
"icon": "",
"district_id": 186,
"district_name": "大井6丁目",
"is_special": false,
"note": null
}
]
}
]
},
"trash_types": [ ... ],
"notes": "収集日の朝8時までに出してください",
"last_updated": "2026-09-22 12:55:25"
}
| フィールド | 説明 |
|---|---|
calendar.days[] | その月の全日分。収集がない日は trash_types が空配列。 |
days[].trash_types[].district_iddays[].trash_types[].district_name | その収集がどの地区のものかを示す。市区町村全体に適用されるルールの場合は null。地区を指定せずに取得した場合、同じ日に複数地区の収集が並ぶため、この値で区別する。 |
days[].is_special | true の場合、祝日振替などの特例収集日。 |
days[].note | 特例日の補足。通常は null。 |
notes | エリア備考。地区→市区町村→都道府県の順に、最初に見つかったもの。 |
レスポンス例(month 省略時 = 年度一括)
{
"area": { ... },
"calendar": {
"fiscal_year": 2026,
"months": [
{ "year": 2026, "month": 4, "week_calculation_type": "occurrence", "days": [ ... ] },
{ "year": 2026, "month": 5, ... },
{ "year": 2027, "month": 3, ... }
]
},
...
}
calendar.month / calendar.days を持たず、
calendar.fiscal_year と calendar.months[] になります。
単月指定とはキー構造が異なるため、パース処理を分岐させてください。
階層をたどる起点です。パラメータは任意で、name を付けると名称の部分一致で絞り込めます。
curl -H "X-API-Key: YOUR_API_KEY" "https://calendar.gomi53.com/api/v1/prefectures"
[
{
"id": 11,
"name": "東京都",
"display_order": 0,
"created_at": "...",
"updated_at": "..."
}
]
| パラメータ | 必須 | 説明 |
|---|---|---|
prefecture_id | 必須 | 都道府県ID(一覧参照) |
name | 任意 | 市区町村名の部分一致で絞り込み |
curl -H "X-API-Key: YOUR_API_KEY" \\
"https://calendar.gomi53.com/api/v1/cities?prefecture_id=11"
[
{
"id": 13,
"prefecture_id": 11,
"name": "品川区",
"display_order": 0,
"week_calculation_type": "occurrence",
"created_at": "...",
"updated_at": "..."
}
]
| パラメータ | 必須 | 説明 |
|---|---|---|
city_id | 必須 | 市区町村ID |
name | 任意 | 地区名の部分一致で絞り込み |
curl -H "X-API-Key: YOUR_API_KEY" \\
"https://calendar.gomi53.com/api/v1/districts?city_id=13"
[
{ "id": 186, "city_id": 13, "name": "大井6丁目", "display_order": 0, ... }
]
パラメータなしで全品目。prefecture_id / city_id / district_id を付けるとそのエリアで実際に使われている品目に絞り込みます。
curl -H "X-API-Key: YOUR_API_KEY" \\
"https://calendar.gomi53.com/api/v1/trash_types"
[
{ "id": 1, "name": "可燃ごみ", "description": "", "color": "#e53935", "icon": "", ... }
]
color はカレンダー表示用のカラーコード、icon は Font Awesome のクラス名(未設定の場合は空文字)です。
410 Gone を返します。
日付展開前の「第N週・曜日」形式では、14日ちょうどの隔週周期、年末年始の休止と
それに続く1週ずれ、第1週の数え方の地域差を表現できず、誤った収集日を返していました。
/api/v1/data を使ってください。こちらは規則を展開済みの日付を返すため、
上記のいずれも正しく反映されます。
エラー時は HTTP ステータスコードと、error キーを含む JSON を返します。
{ "error": "Area not found" }
| コード | 意味 |
|---|---|
400 | 必須パラメータの欠落、または値が不正 |
401 | APIキーが未指定、または無効 |
404 | 指定されたエリアが見つからない/存在しないエンドポイント |
405 | GET 以外のメソッド |
500 | サーバー内部エラー |
404 を返します。
200 で空のカレンダーが返った場合は「そのエリアは収録済みだが、その月に収集日がない」を意味します。
両者を区別して扱ってください。
prefecture_id / city_id はここでも確認できます
(APIから取得する場合は /api/v1/prefectures と /api/v1/cities を使ってください)。
| 都道府県 | prefecture_id | 市区町村 | city_id | 地区数 | 週の数え方 |
|---|---|---|---|---|---|
| 京都府 | 2 |
宇治市 | 3 |
10 | calendar_row |
| 長野県 | 3 |
長野市 | 5 |
0 | occurrence |
| 広島県 | 4 |
広島市中区 | 6 |
14 | occurrence |
| 福岡県 | 5 |
福岡市博多区 | 7 |
36 | occurrence |
| 宮城県 | 6 |
仙台市青葉区 | 8 |
12 | occurrence |
| 愛知県 | 7 |
名古屋市中区 | 9 |
10 | occurrence |
| 岡山県 | 8 |
倉敷市水島地区 | 10 |
16 | occurrence |
| 静岡県 | 9 |
富士市 | 11 |
14 | occurrence |
| 岐阜県 | 10 |
岐阜市 | 12 |
13 | occurrence |
| 東京都 | 11 |
品川区 | 13 |
77 | occurrence |
| 東京都 | 11 |
港区 | 15 |
41 | occurrence |
| 滋賀県 | 1 |
多賀町 | 24 |
2 | occurrence |
| 滋賀県 | 1 |
大津市 | 4 |
21 | occurrence |
| 滋賀県 | 1 |
守山市 | 14 |
11 | occurrence |
| 滋賀県 | 1 |
彦根市 | 27 |
10 | occurrence |
| 滋賀県 | 1 |
愛荘町 | 25 |
2 | occurrence |
| 滋賀県 | 1 |
日野町 | 21 |
4 | occurrence |
| 滋賀県 | 1 |
東近江市 | 28 |
14 | occurrence |
| 滋賀県 | 1 |
栗東市 | 16 |
3 | occurrence |
| 滋賀県 | 1 |
湖南市 | 26 |
4 | occurrence |
| 滋賀県 | 1 |
甲良町 | 23 |
2 | occurrence |
| 滋賀県 | 1 |
甲賀市 | 20 |
16 | occurrence |
| 滋賀県 | 1 |
竜王町 | 22 |
2 | occurrence |
| 滋賀県 | 1 |
米原市 | 30 |
17 | occurrence |
| 滋賀県 | 1 |
草津市 | 2 |
21 | occurrence |
| 滋賀県 | 1 |
豊郷町 | 19 |
2 | occurrence |
| 滋賀県 | 1 |
近江八幡市 | 29 |
22 | occurrence |
| 滋賀県 | 1 |
野洲市 | 17 |
4 | occurrence |
| 滋賀県 | 1 |
高島市 | 18 |
7 | occurrence |
地区IDは /api/v1/districts?city_id={id} で取得してください。
/v1 を含むエンドポイントは、破壊的変更を行う場合に
/v2 を新設する方針です。既存フィールドの削除・意味変更は事前に告知します。
最終更新: 2026-09-22 / 本ページは ゴミカレンダー が提供しています。