{
  "components": {
    "schemas": {
      "Error": {
        "properties": {
          "error": {
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "Facility": {
        "description": "施設の全項目",
        "properties": {
          "address": {
            "description": "都道府県を除く住所（市区町村名から）",
            "type": [
              "string",
              "null"
            ]
          },
          "beds_raw": {
            "description": "病床数の公表表記",
            "type": [
              "string",
              "null"
            ]
          },
          "bureau": {
            "description": "管轄の地方厚生局",
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "description": "市区町村名",
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "description": "医療機関コード（10桁）",
            "type": "string"
          },
          "departments": {
            "description": "公表データの診療科表記（略号含む）",
            "type": [
              "string",
              "null"
            ]
          },
          "designated_date": {
            "description": "指定年月日",
            "type": [
              "string",
              "null"
            ]
          },
          "facility_kind": {
            "description": "施設種別（例: 病院、診療所）",
            "type": [
              "string",
              "null"
            ]
          },
          "founder": {
            "description": "開設者",
            "type": [
              "string",
              "null"
            ]
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          },
          "manager": {
            "description": "管理者",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "postal_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "precision": {
            "description": "座標の精度レベル",
            "type": [
              "string",
              "null"
            ]
          },
          "prefecture": {
            "type": "string"
          },
          "renewed_date": {
            "description": "更新年月日",
            "type": [
              "string",
              "null"
            ]
          },
          "snapshot_date": {
            "description": "収録データの基準日",
            "example": "2026-10-01",
            "type": [
              "string",
              "null"
            ]
          },
          "specialties": {
            "description": "診療科名を標準化した表示名の一覧（医科・歯科のみ）",
            "example": [
              "内科",
              "外科",
              "小児科"
            ],
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "status": {
            "description": "状態（例: 現存）",
            "type": [
              "string",
              "null"
            ]
          },
          "tel": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "enum": [
              "薬局",
              "医科",
              "歯科"
            ],
            "type": "string"
          },
          "hours": {
            "description": "曜日別の診療時間（医科・歯科の一部施設のみ）。キーは mon〜sun と祝日 hol、各値は [\"HH:MM\",\"HH:MM\"] の配列。closed は休診が明示された曜日。データがない施設では null",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 2,
                "maxItems": 2
              }
            },
            "example": {
              "mon": [
                [
                  "09:00",
                  "12:00"
                ],
                [
                  "14:00",
                  "18:00"
                ]
              ],
              "sat": [
                [
                  "09:00",
                  "12:00"
                ]
              ],
              "closed": [
                "sun",
                "hol"
              ]
            }
          },
          "hours_snapshot": {
            "description": "診療時間データの時点（医療情報ネット オープンデータの基準日）",
            "type": [
              "string",
              "null"
            ],
            "example": "2026-06-01"
          }
        },
        "required": [
          "code",
          "type",
          "name",
          "prefecture"
        ],
        "type": "object"
      },
      "FacilitySummary": {
        "description": "検索・範囲取得で返る施設の要約項目",
        "properties": {
          "address": {
            "description": "都道府県を除く住所（市区町村名から）",
            "example": "千代田区神田駿河台二丁目５番地",
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "description": "医療機関コード（10桁）",
            "example": "1310110049",
            "type": "string"
          },
          "lat": {
            "description": "緯度（座標がない施設は null）",
            "example": 35.700068,
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "description": "経度（座標がない施設は null）",
            "example": 139.762011,
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "example": "医療法人財団 小畑会 浜田病院",
            "type": "string"
          },
          "postal_code": {
            "example": "101-0062",
            "type": [
              "string",
              "null"
            ]
          },
          "precision": {
            "description": "座標の精度レベル（例: 住居表示（号）、町字、GSI補完）",
            "type": [
              "string",
              "null"
            ]
          },
          "prefecture": {
            "example": "東京都",
            "type": "string"
          },
          "tel": {
            "example": "03-5280-1166",
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "enum": [
              "薬局",
              "医科",
              "歯科"
            ],
            "type": "string"
          },
          "hours": {
            "description": "曜日別の診療時間（医科・歯科の一部施設のみ）。キーは mon〜sun と祝日 hol、各値は [\"HH:MM\",\"HH:MM\"] の配列。closed は休診が明示された曜日。データがない施設では null",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "minItems": 2,
                "maxItems": 2
              }
            },
            "example": {
              "mon": [
                [
                  "09:00",
                  "12:00"
                ],
                [
                  "14:00",
                  "18:00"
                ]
              ],
              "sat": [
                [
                  "09:00",
                  "12:00"
                ]
              ],
              "closed": [
                "sun",
                "hol"
              ]
            }
          }
        },
        "required": [
          "code",
          "type",
          "name",
          "prefecture"
        ],
        "type": "object"
      }
    }
  },
  "info": {
    "description": "全国の薬局・医科・歯科医療機関（224,540件）の基本情報を検索するAPIです。データの出典は地方厚生局が公表する「コード内容別医療機関一覧表」で、毎月更新しています。診療時間は厚生労働省「医療情報ネット」オープンデータ（2026年6月1日時点）に基づき、医科・歯科の約13.1万件に収録しており、「今診療中か」の条件検索ができます。掲載順位・検索順位は対価の有無とは無関係です。利用の際は出典の明記をお願いします。診療時間は施設からの報告に基づくため、受診前には各施設への確認が必要です。",
    "license": {
      "name": "出典明記のうえ利用可（元データ: 地方厚生局公表データ / 座標: Geolonia CC BY 4.0、国土地理院）"
    },
    "title": "全国医療機関マップ API",
    "version": "1.3.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/facilities": {
      "get": {
        "description": "緯度経度の矩形範囲内にある施設を返します。地図表示での利用を想定しています。",
        "operationId": "facilitiesInBbox",
        "parameters": [
          {
            "description": "範囲を「最小経度,最小緯度,最大経度,最大緯度」の形式で指定",
            "example": "139.74,35.68,139.79,35.72",
            "in": "query",
            "name": "bbox",
            "required": true,
            "schema": {
              "pattern": "^[0-9.\\-]+,[0-9.\\-]+,[0-9.\\-]+,[0-9.\\-]+$",
              "type": "string"
            }
          },
          {
            "description": "施設の種別",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "enum": [
                "薬局",
                "医科",
                "歯科"
              ],
              "type": "string"
            }
          },
          {
            "description": "最大取得件数（上限5000）",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 3000,
              "maximum": 5000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "open_now",
            "in": "query",
            "required": false,
            "description": "1 を指定すると現在時刻（日本時間）に診療中の施設だけを返す。診療時間データがある医科・歯科が対象",
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            }
          },
          {
            "name": "day",
            "in": "query",
            "required": false,
            "description": "曜日（mon,tue,wed,thu,fri,sat,sun、祝日は hol）。time と併せて指定すると、その曜日・時刻に診療中の施設だけを返す",
            "schema": {
              "type": "string",
              "enum": [
                "mon",
                "tue",
                "wed",
                "thu",
                "fri",
                "sat",
                "sun",
                "hol"
              ]
            }
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "時刻（HH:MM、日本時間）",
            "schema": {
              "type": "string",
              "pattern": "^([01][0-9]|2[0-4]):[0-5][0-9]$"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "日付（YYYY-MM-DD）。time と併せると、その日付の曜日の診療時間で判定する（祝日判定はしない）",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "results": {
                      "items": {
                        "$ref": "#/components/schemas/FacilitySummary"
                      },
                      "type": "array"
                    },
                    "truncated": {
                      "description": "件数が limit に達し、切り捨てられている可能性があれば true",
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "count",
                    "truncated",
                    "results"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "範囲内の施設一覧"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": "bbox=minLng,minLat,maxLng,maxLat is required"
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "bbox が不正"
          }
        },
        "summary": "地図範囲（bbox）内の施設取得"
      }
    },
    "/api/facility": {
      "get": {
        "description": "10桁の医療機関コードを指定して、施設の全項目を1件返します。",
        "operationId": "getFacility",
        "parameters": [
          {
            "description": "医療機関コード（10桁の数字）",
            "example": "1310110049",
            "in": "query",
            "name": "code",
            "required": true,
            "schema": {
              "pattern": "^[0-9]{10}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Facility"
                }
              }
            },
            "description": "施設の詳細"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": "code must be 10 digits"
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "code が10桁の数字でない"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": "not found"
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "該当する施設がない"
          }
        },
        "summary": "医療機関コードで1件取得"
      }
    },
    "/api/search": {
      "get": {
        "description": "キーワード（施設名または住所の部分一致）、都道府県、種別で施設を検索します。q と pref の少なくとも一方が必要です。 open_now=1、または day と time（任意で date）の指定で、「その曜日・時刻に診療中」の施設だけに絞れます。",
        "operationId": "searchFacilities",
        "parameters": [
          {
            "description": "検索キーワード（施設名・住所への部分一致、大文字小文字を区別しない）",
            "example": "小児科",
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "都道府県名（例: 東京都）",
            "example": "東京都",
            "in": "query",
            "name": "pref",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "施設の種別",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "enum": [
                "薬局",
                "医科",
                "歯科"
              ],
              "type": "string"
            }
          },
          {
            "description": "最大取得件数（上限200）",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "name": "open_now",
            "in": "query",
            "required": false,
            "description": "1 を指定すると現在時刻（日本時間）に診療中の施設だけを返す。診療時間データがある医科・歯科が対象",
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            }
          },
          {
            "name": "day",
            "in": "query",
            "required": false,
            "description": "曜日（mon,tue,wed,thu,fri,sat,sun、祝日は hol）。time と併せて指定すると、その曜日・時刻に診療中の施設だけを返す",
            "schema": {
              "type": "string",
              "enum": [
                "mon",
                "tue",
                "wed",
                "thu",
                "fri",
                "sat",
                "sun",
                "hol"
              ]
            }
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "時刻（HH:MM、日本時間）",
            "schema": {
              "type": "string",
              "pattern": "^([01][0-9]|2[0-4]):[0-5][0-9]$"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "日付（YYYY-MM-DD）。time と併せると、その日付の曜日の診療時間で判定する（祝日判定はしない）",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "count": {
                      "description": "返却件数",
                      "type": "integer"
                    },
                    "results": {
                      "items": {
                        "$ref": "#/components/schemas/FacilitySummary"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "count",
                    "results"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "検索結果"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": "q or pref is required"
                },
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "q と pref のいずれも指定されていない"
          }
        },
        "summary": "施設名・住所の部分一致検索（全国横断）"
      }
    },
    "/api/area-stats": {
      "get": {
        "description": "指定地点を中心とする半径内の医療機関と人口を集計して返します（商圏分析・営業地域調査用）。施設の種別・診療科別の件数、診療時間カバレッジ（指定曜日・時刻に開いている施設数、平日19時以降、日曜・祝日）、病院数、病床数の機械集計に加え、令和2年国勢調査500mメッシュ人口（総数・年齢3区分・75歳以上・世帯数・高齢化率）と人口1万人あたり施設数を返します。個別施設の一覧ではなく集計値のみです。",
        "operationId": "areaStats",
        "parameters": [
          {
            "description": "中心の緯度",
            "example": 35.6812,
            "in": "query",
            "name": "lat",
            "required": true,
            "schema": {
              "type": "number",
              "minimum": 20,
              "maximum": 46.5
            }
          },
          {
            "description": "中心の経度",
            "example": 139.7671,
            "in": "query",
            "name": "lng",
            "required": true,
            "schema": {
              "type": "number",
              "minimum": 122,
              "maximum": 154
            }
          },
          {
            "description": "半径（m）。200〜10000",
            "in": "query",
            "name": "radius",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1000,
              "minimum": 200,
              "maximum": 10000
            }
          },
          {
            "description": "「開いている施設数」を数える曜日（time と併せて指定。未指定時は現在時刻）",
            "in": "query",
            "name": "day",
            "required": false,
            "schema": {
              "enum": [
                "mon",
                "tue",
                "wed",
                "thu",
                "fri",
                "sat",
                "sun",
                "hol"
              ],
              "type": "string"
            }
          },
          {
            "description": "時刻 HH:MM（日本時間）。day と併せて指定",
            "in": "query",
            "name": "time",
            "required": false,
            "schema": {
              "pattern": "^([01][0-9]|2[0-4]):[0-5][0-9]$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "集計結果（facilities / population / per_10k_population / notes）"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    },
    "/api/care-search": {
      "get": {
        "description": "介護サービス事業所を施設名・住所のキーワード、都道府県、サービスの種類で検索します。各事業所の提供サービス一覧も返します。データ出典：介護サービス情報公表システム オープンデータ（厚生労働省、CC BY）。",
        "operationId": "careSearch",
        "parameters": [
          {
            "description": "検索キーワード（事業所名・住所への部分一致）",
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "都道府県名。例: 東京都",
            "in": "query",
            "name": "pref",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "サービスの種類。例: 訪問介護、通所介護、訪問看護、居宅介護支援",
            "in": "query",
            "name": "service",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "最大件数（既定50、上限200）",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "maximum": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "検索結果"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    },
    "/api/care-facility": {
      "get": {
        "description": "介護事業所番号（10文字）で事業所の全項目と提供サービス（定員・利用可能曜日）を取得します。",
        "operationId": "careFacility",
        "parameters": [
          {
            "description": "介護事業所番号（10文字。3文字目がA/Bの場合あり）",
            "in": "query",
            "name": "code",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "1310110049"
          }
        ],
        "responses": {
          "200": {
            "description": "検索結果"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    },
    "/api/care-facilities": {
      "get": {
        "description": "緯度経度の矩形範囲内にある介護サービス事業所を返します。service で提供サービスを絞れます。",
        "operationId": "careFacilitiesInBbox",
        "parameters": [
          {
            "description": "範囲を「最小経度,最小緯度,最大経度,最大緯度」の形式で指定",
            "in": "query",
            "name": "bbox",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "139.74,35.68,139.79,35.72"
          },
          {
            "description": "サービスの種類で絞る場合に指定",
            "in": "query",
            "name": "service",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "最大件数（既定1000、上限5000）",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1000,
              "maximum": 5000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "検索結果"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    },
    "/api/childcare-search": {
      "get": {
        "description": "保育・幼児教育施設を施設名・住所のキーワード、都道府県、市区町村、種別で検索します。現在は東京都と大阪市のパイロット版です。データ出典：自治体公表リスト。",
        "operationId": "childcareSearch",
        "parameters": [
          {
            "description": "検索キーワード（施設名・住所への部分一致）",
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "都道府県名。例: 東京都",
            "in": "query",
            "name": "pref",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "市区町村名。例: 中央区",
            "in": "query",
            "name": "city",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "施設の種別",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "認可保育所",
                "認定こども園",
                "幼稚園",
                "小規模保育",
                "家庭的保育",
                "事業所内保育",
                "居宅訪問型",
                "認証保育所",
                "認可外保育施設",
                "学童クラブ",
                "その他"
              ]
            }
          },
          {
            "description": "最大件数（既定50、上限200）",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "maximum": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "検索結果"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    },
    "/api/childcare-facility": {
      "get": {
        "description": "保育施設ID（16桁の16進文字列）で施設の全項目を取得します。",
        "operationId": "childcareFacility",
        "parameters": [
          {
            "description": "保育施設ID",
            "in": "query",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "検索結果"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    },
    "/api/childcare-facilities": {
      "get": {
        "description": "緯度経度の矩形範囲内にある保育施設を返します（座標のある施設のみ）。",
        "operationId": "childcareFacilitiesInBbox",
        "parameters": [
          {
            "description": "範囲を「最小経度,最小緯度,最大経度,最大緯度」の形式で指定",
            "in": "query",
            "name": "bbox",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "139.74,35.68,139.79,35.72"
          },
          {
            "description": "施設の種別で絞る場合に指定",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "最大件数（既定1000、上限5000）",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1000,
              "maximum": 5000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "検索結果"
          },
          "400": {
            "description": "パラメータ不正"
          }
        }
      }
    }
  },
  "servers": [
    {
      "description": "本番環境",
      "url": "https://agentzukan.com"
    }
  ]
}