{
  "openapi": "3.1.0",
  "info": {
    "title": "Japan Disaster Prep Check API",
    "version": "1.0.0",
    "description": "Japan's new Disaster Management Agency (防災庁) asked every household to prepare (事前防災徹底のための緊急要請, 2026-11-02). See how much water, food and portable-toilet stock your household needs for 3 days or a week, whether your home is old quake standard (旧耐震) and needs a 耐震診断, and which of the 5 points you still have to do.\n\nFree, no API key, CORS open. Fair use: about 120 requests per minute per IP. Also available as MCP tools at https://free-agent-tools.vercel.app/mcp"
  },
  "servers": [
    {
      "url": "https://japan-disaster-prep.vercel.app"
    }
  ],
  "paths": {
    "/api/check": {
      "get": {
        "operationId": "japanDisasterPrepCheck",
        "summary": "Japan's 2026-11-02 防災庁 emergency request (事前防災徹底のための緊急要請) as a household checklist: how much water, food and portable-toilet stock, is the house old-quake-standard, and what's left to do.",
        "description": "Applies the five-point request issued by Japan's new Disaster Management Agency (防災庁) on 2026-11-02 (rules as of 2026-11-02): 1 耐震診断 for homes built 昭和56年 (1981) or earlier + furniture fixing; 2 stockpile at least 3 days, ideally 1 week: drinking water 3 L per person per day (incl. cooking), food, portable toilets (5 uses per person per day, METI / 防災庁) plus tissues and toilet paper; 3 hazard map, evacuation site and route; 4 grab bag; 5 disaster drill. Building era from the 建築確認 date (before 1981-06-01 = 旧耐震; wooden houses 1981-06-01 – 2000-05-31 → MLIT 新耐震木造住宅検証法 self-check) or the build year (accepts 昭和/平成/令和 and S/H/R). Pets: food and water 5+ days, ideally 7+ (MoE). Returns verdict (well_prepared | partly_prepared | not_prepared), summary, doneCount, household, days, stockpile {water {target, minimum3Days, have, gap, bottles2L}, meals, toiletUses, pets, alsoStock[], rollingStock}, building {era (old_standard | likely_old | new_pre2000_wood | new_standard | unknown), label, action}, request[{n, title, ja, status (done | partial | todo), todo[]}], links, note, sources, disclaimer. Does not inspect buildings or predict disasters.\n\nExample: https://japan-disaster-prep.vercel.app/api/check?adults=2&children=2&days=7&builtYear=1979&buildingType=wood",
        "parameters": [
          {
            "name": "adults",
            "in": "query",
            "required": false,
            "description": "Adults in the household (aliases: people, persons, 大人).",
            "schema": {
              "type": "number",
              "description": "Adults in the household (aliases: people, persons, 大人).",
              "default": 1
            }
          },
          {
            "name": "children",
            "in": "query",
            "required": false,
            "description": "Children (count like adults for water, food and toilets).",
            "schema": {
              "type": "number",
              "description": "Children (count like adults for water, food and toilets).",
              "default": 0
            }
          },
          {
            "name": "infants",
            "in": "query",
            "required": false,
            "description": "Babies on milk / in diapers: counted for water, listed for milk and diapers, not for meals or toilet uses.",
            "schema": {
              "type": "number",
              "description": "Babies on milk / in diapers: counted for water, listed for milk and diapers, not for meals or toilet uses.",
              "default": 0
            }
          },
          {
            "name": "elderly",
            "in": "query",
            "required": false,
            "description": "Older family members (adds medicine / care items).",
            "schema": {
              "type": "number",
              "description": "Older family members (adds medicine / care items).",
              "default": 0
            }
          },
          {
            "name": "dogs",
            "in": "query",
            "required": false,
            "description": "Dogs (pet food and water 5+ days, ideally 7+).",
            "schema": {
              "type": "number",
              "description": "Dogs (pet food and water 5+ days, ideally 7+).",
              "default": 0
            }
          },
          {
            "name": "cats",
            "in": "query",
            "required": false,
            "description": "Cats.",
            "schema": {
              "type": "number",
              "description": "Cats.",
              "default": 0
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "description": "Days to stock for, 1–30. The request: at least 3, ideally 7 (1 week).",
            "schema": {
              "type": "number",
              "description": "Days to stock for, 1–30. The request: at least 3, ideally 7 (1 week).",
              "default": 7
            }
          },
          {
            "name": "haveWaterLiters",
            "in": "query",
            "required": false,
            "description": "Optional drinking water you already have, in litres → gap.",
            "schema": {
              "type": "number",
              "description": "Optional drinking water you already have, in litres → gap."
            }
          },
          {
            "name": "haveMeals",
            "in": "query",
            "required": false,
            "description": "Optional meals of stored food you already have → gap.",
            "schema": {
              "type": "number",
              "description": "Optional meals of stored food you already have → gap."
            }
          },
          {
            "name": "haveToiletUses",
            "in": "query",
            "required": false,
            "description": "Optional portable / emergency toilet uses (bags) you already have → gap.",
            "schema": {
              "type": "number",
              "description": "Optional portable / emergency toilet uses (bags) you already have → gap."
            }
          },
          {
            "name": "builtYear",
            "in": "query",
            "required": false,
            "description": "Year the home was built: 1979, 昭和54, S54, 平成12, H12… (aliases: year, 築年).",
            "schema": {
              "type": "string",
              "description": "Year the home was built: 1979, 昭和54, S54, 平成12, H12… (aliases: year, 築年)."
            }
          },
          {
            "name": "permitDate",
            "in": "query",
            "required": false,
            "description": "Optional YYYY-MM-DD 建築確認 date on the 確認済証 (exact old/new standard line 1981-06-01).",
            "schema": {
              "type": "string",
              "description": "Optional YYYY-MM-DD 建築確認 date on the 確認済証 (exact old/new standard line 1981-06-01)."
            }
          },
          {
            "name": "buildingType",
            "in": "query",
            "required": false,
            "description": "wood (木造 house) | non_wood (RC / steel, most マンション) | unknown.",
            "schema": {
              "type": "string",
              "description": "wood (木造 house) | non_wood (RC / steel, most マンション) | unknown.",
              "enum": [
                "wood",
                "non_wood",
                "unknown"
              ],
              "default": "unknown"
            }
          },
          {
            "name": "tenure",
            "in": "query",
            "required": false,
            "description": "own | rent (賃貸: ask the landlord about 耐震).",
            "schema": {
              "type": "string",
              "description": "own | rent (賃貸: ask the landlord about 耐震).",
              "enum": [
                "own",
                "rent"
              ],
              "default": "own"
            }
          },
          {
            "name": "seismicDone",
            "in": "query",
            "required": false,
            "description": "Already had a 耐震診断 that passed, or a retrofit.",
            "schema": {
              "type": "boolean",
              "description": "Already had a 耐震診断 that passed, or a retrofit.",
              "default": false
            }
          },
          {
            "name": "furnitureFixed",
            "in": "query",
            "required": false,
            "description": "Tall furniture and appliances are fixed.",
            "schema": {
              "type": "boolean",
              "description": "Tall furniture and appliances are fixed.",
              "default": false
            }
          },
          {
            "name": "hazardMapChecked",
            "in": "query",
            "required": false,
            "description": "Checked the hazard maps for home and work.",
            "schema": {
              "type": "boolean",
              "description": "Checked the hazard maps for home and work.",
              "default": false
            }
          },
          {
            "name": "evacuationRouteChecked",
            "in": "query",
            "required": false,
            "description": "Know the evacuation site and route.",
            "schema": {
              "type": "boolean",
              "description": "Know the evacuation site and route.",
              "default": false
            }
          },
          {
            "name": "goBagReady",
            "in": "query",
            "required": false,
            "description": "Grab bag (非常持ち出し品) packed.",
            "schema": {
              "type": "boolean",
              "description": "Grab bag (非常持ち出し品) packed.",
              "default": false
            }
          },
          {
            "name": "drillJoined",
            "in": "query",
            "required": false,
            "description": "Joined a local disaster drill.",
            "schema": {
              "type": "boolean",
              "description": "Joined a local disaster drill.",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Result as JSON. Always includes a `disclaimer` field.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid input. The body explains what to send and gives an example."
          },
          "429": {
            "description": "Too many requests from one IP. Retry after the Retry-After seconds."
          }
        }
      },
      "post": {
        "operationId": "japanDisasterPrepCheckPost",
        "summary": "Japan's 2026-11-02 防災庁 emergency request (事前防災徹底のための緊急要請) as a household checklist: how much water, food and portable-toilet stock, is the house old-quake-standard, and what's left to do. (JSON body)",
        "description": "Applies the five-point request issued by Japan's new Disaster Management Agency (防災庁) on 2026-11-02 (rules as of 2026-11-02): 1 耐震診断 for homes built 昭和56年 (1981) or earlier + furniture fixing; 2 stockpile at least 3 days, ideally 1 week: drinking water 3 L per person per day (incl. cooking), food, portable toilets (5 uses per person per day, METI / 防災庁) plus tissues and toilet paper; 3 hazard map, evacuation site and route; 4 grab bag; 5 disaster drill. Building era from the 建築確認 date (before 1981-06-01 = 旧耐震; wooden houses 1981-06-01 – 2000-05-31 → MLIT 新耐震木造住宅検証法 self-check) or the build year (accepts 昭和/平成/令和 and S/H/R). Pets: food and water 5+ days, ideally 7+ (MoE). Returns verdict (well_prepared | partly_prepared | not_prepared), summary, doneCount, household, days, stockpile {water {target, minimum3Days, have, gap, bottles2L}, meals, toiletUses, pets, alsoStock[], rollingStock}, building {era (old_standard | likely_old | new_pre2000_wood | new_standard | unknown), label, action}, request[{n, title, ja, status (done | partial | todo), todo[]}], links, note, sources, disclaimer. Does not inspect buildings or predict disasters.",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "adults": {
                    "type": "number",
                    "description": "Adults in the household (aliases: people, persons, 大人).",
                    "default": 1
                  },
                  "children": {
                    "type": "number",
                    "description": "Children (count like adults for water, food and toilets).",
                    "default": 0
                  },
                  "infants": {
                    "type": "number",
                    "description": "Babies on milk / in diapers: counted for water, listed for milk and diapers, not for meals or toilet uses.",
                    "default": 0
                  },
                  "elderly": {
                    "type": "number",
                    "description": "Older family members (adds medicine / care items).",
                    "default": 0
                  },
                  "dogs": {
                    "type": "number",
                    "description": "Dogs (pet food and water 5+ days, ideally 7+).",
                    "default": 0
                  },
                  "cats": {
                    "type": "number",
                    "description": "Cats.",
                    "default": 0
                  },
                  "days": {
                    "type": "number",
                    "description": "Days to stock for, 1–30. The request: at least 3, ideally 7 (1 week).",
                    "default": 7
                  },
                  "haveWaterLiters": {
                    "type": "number",
                    "description": "Optional drinking water you already have, in litres → gap."
                  },
                  "haveMeals": {
                    "type": "number",
                    "description": "Optional meals of stored food you already have → gap."
                  },
                  "haveToiletUses": {
                    "type": "number",
                    "description": "Optional portable / emergency toilet uses (bags) you already have → gap."
                  },
                  "builtYear": {
                    "type": "string",
                    "description": "Year the home was built: 1979, 昭和54, S54, 平成12, H12… (aliases: year, 築年)."
                  },
                  "permitDate": {
                    "type": "string",
                    "description": "Optional YYYY-MM-DD 建築確認 date on the 確認済証 (exact old/new standard line 1981-06-01)."
                  },
                  "buildingType": {
                    "type": "string",
                    "description": "wood (木造 house) | non_wood (RC / steel, most マンション) | unknown.",
                    "enum": [
                      "wood",
                      "non_wood",
                      "unknown"
                    ],
                    "default": "unknown"
                  },
                  "tenure": {
                    "type": "string",
                    "description": "own | rent (賃貸: ask the landlord about 耐震).",
                    "enum": [
                      "own",
                      "rent"
                    ],
                    "default": "own"
                  },
                  "seismicDone": {
                    "type": "boolean",
                    "description": "Already had a 耐震診断 that passed, or a retrofit.",
                    "default": false
                  },
                  "furnitureFixed": {
                    "type": "boolean",
                    "description": "Tall furniture and appliances are fixed.",
                    "default": false
                  },
                  "hazardMapChecked": {
                    "type": "boolean",
                    "description": "Checked the hazard maps for home and work.",
                    "default": false
                  },
                  "evacuationRouteChecked": {
                    "type": "boolean",
                    "description": "Know the evacuation site and route.",
                    "default": false
                  },
                  "goBagReady": {
                    "type": "boolean",
                    "description": "Grab bag (非常持ち出し品) packed.",
                    "default": false
                  },
                  "drillJoined": {
                    "type": "boolean",
                    "description": "Joined a local disaster drill.",
                    "default": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Result as JSON. Always includes a `disclaimer` field.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid input. The body explains what to send and gives an example."
          },
          "429": {
            "description": "Too many requests from one IP. Retry after the Retry-After seconds."
          }
        }
      }
    },
    "/api/rules": {
      "get": {
        "operationId": "japanDisasterPrepRules",
        "summary": "Japan disaster prep rules: per-person water / meals / toilet uses per day, 3-day minimum and 1-week ideal, old quake standard date (1981-06-01), wooden 2000 rule, pet days, sources",
        "description": "Returns the rules the checker applies, with the official per-person figures, sources and disclaimer. No inputs.",
        "responses": {
          "200": {
            "description": "Rules JSON with rulesAsOf and sources.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    }
  }
}