# Japan Medical Facilities (MHLW Open Data) (`jpopendata/japan-medical-facilities`) Actor

All Japanese hospitals, clinics, dental clinics, maternity homes and pharmacies from the official MHLW 医療情報ネット nationwide open data (e-Gov data portal). English field schema, medical departments included, prefecture filter, source attribution embedded in every record.

- **URL**: https://apify.com/jpopendata/japan-medical-facilities.md
- **Developed by:** [JP Open Data](https://apify.com/jpopendata) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Japan Medical Facilities (MHLW Open Data)

**Every registered medical facility in Japan — hospitals, clinics, dental clinics, maternity homes, pharmacies — as English-schema JSON.**

This Actor delivers Japan's official nationwide medical-facility register, published as open data by the Ministry of Health, Labour and Welfare (医療情報ネット) through the e-Gov data portal: roughly 245,000 facilities with names (kanji, kana, romaji where published), facility type, prefecture, address, coordinates, homepage, bed counts by ward type, and clinical departments. One run makes at most two upstream requests — the rest is offline processing of the official snapshot.

> **Unofficial tool.** Not affiliated with or endorsed by MHLW or the Government of Japan. The e-Gov dataset page states the data is freely reusable under the portal terms; every record embeds the source, the dataset link, and the retrieval timestamp.

***

### Who is this for?

- **Healthcare market entry & sales teams** — medical device makers, pharma, health-IT vendors building target lists of Japanese hospitals by prefecture, bed capacity, or department mix.
- **Research & analytics** — health-services researchers and consultants who need the full facility universe with coordinates for geographic analysis.
- **Data & AI teams** — a clean facility master for entity resolution, mapping products, or RAG pipelines — without parsing five differently-shaped Japanese CSVs inside a 27 MB ZIP.

### What you get

- **Five facility types** in one schema: hospitals, medical clinics, dental clinics, maternity homes, pharmacies — filterable by type and prefecture.
- **Bed counts by ward type** (general, long-term care, psychiatric, tuberculosis, infectious disease) for hospitals and clinics.
- **Clinical departments** joined from the register's speciality table (hospitals / clinics / dental), deduplicated by department code.
- **Honest sentinels handled**: the upstream's "0.0 / 0.0" not-geocoded coordinates (~15k rows) become `null` instead of placing facilities in the Gulf of Guinea.

### Sample output (dataset item)

```json
{
  "facilityId": "1810000000",
  "name": "○○総合病院",
  "nameKana": "マルマルソウゴウビョウイン",
  "facilityType": { "key": "hospital", "ja": "病院", "en": "Hospital" },
  "prefecture": { "code": "18", "nameJa": "福井県", "nameEn": "Fukui" },
  "address": "福井県福井市○○町1-1",
  "latitude": 36.0641,
  "longitude": 136.2196,
  "homepageUrl": "https://www.example-hospital.jp/",
  "bedCounts": { "general": 240, "psychiatric": 0, "total": 240 },
  "departments": [
    { "code": "01", "nameJa": "内科" },
    { "code": "10", "nameJa": "小児科" }
  ],
  "snapshotDate": "2025-12-01",
  "source": "医療情報ネット（厚生労働省）",
  "sourceUrl": "https://data.e-gov.go.jp/data/dataset/iryou_teikyouseido_mhlw",
  "license": "e-Gov data portal terms (free reuse per dataset page)",
  "retrievedAt": "2026-08-25T09:12:44Z"
}
```

### Input example

```json
{
  "facilityTypes": ["hospital", "clinic"],
  "prefecture": "Tokyo",
  "includeDepartments": true,
  "maxItems": 1000
}
```

`prefecture` accepts JIS codes, Japanese names, or English names. `maxItems` goes up to 200,000 for full-country pulls.

### Pricing

Pay per result — see the pricing tab. A whole-prefecture hospital list is typically a few hundred records.

### FAQ

**Where does the data come from?**
From the nationwide 医療情報ネット open-data snapshot published by MHLW on the e-Gov data portal. The Actor automatically detects the newest snapshot (or you can pin one via `datasetZipUrl`), and `snapshotDate` on every record tells you which one you got.

**How fresh is the data?**
The government publishes this register **twice a year** (June and December snapshots). That's the honest cadence — running the Actor daily won't produce newer data, so schedule accordingly. For a facility master, twice-yearly is what the official source offers; no vendor selling you "live" Japanese facility data is getting it from this register any faster.

**Is this an official government service?**
No. This is an **unofficial** tool, built and maintained independently, using officially published open data.

**Does the data contain personal information?**
The published facility CSVs carry no person-name, phone, or e-mail columns — and this Actor enforces that structurally: fields are extracted by whitelist, name-shaped columns are excluded by pattern even if a future snapshot adds them, and an automated legal test asserts that no phone-, e-mail-, or personal-name-shaped strings appear anywhere in the output. Addresses are facility addresses as officially published.

**Why is there no phone number for facilities?**
Because the official open data doesn't include one. We won't enrich from other sources and pretend it came from the register.

**Any resource notes?**
A full nationwide run over clinics with departments processes ~150 MB+ of decompressed CSV; use a run with **2 GB+ memory** on Apify for country-scale pulls. Prefecture-scoped runs are light. Upstream load is minimal by design: at most 2 requests per run, throttled and backoff-compliant, no rate-limit evasion.

### Search terms this Actor answers

Japan hospital database · Japan medical facilities list · Japan clinics dataset · Japan pharmacy database · Japanese healthcare facilities data · MHLW open data English · hospital bed counts Japan · Japan healthcare market data

### More Japan public-data Actors by the same developer

- **Japan Government Tenders & Awards** — tender notices and award results from the kkj.go.jp portal.
- **Japan Care Facilities** — long-term care providers across 35 service types (MHLW open data, CC BY).
- **Japan Government Subsidies & Grants** — open subsidy calls from the official jGrants API.
- **Japan Renewable Energy FIT/FIP Facilities** — METI-certified renewable installations, privacy-safe schema.
- **Japan Financial Licenses & Registrations** — FSA-licensed banks, securities firms, crypto exchanges and more.
- **Japan Construction & Real-Estate Licenses** — licensed contractors and brokers from MLIT's register.
- **Japan Trade Statistics** — monthly import/export flows by HS code and partner country, from Japan Customs.

***

*Data source: 医療情報ネット（厚生労働省）open data via the e-Gov data portal — https://data.e-gov.go.jp/data/dataset/iryou\_teikyouseido\_mhlw . Reuse per the portal terms; source is stated in every record.*

# Actor input Schema

## `facilityTypes` (type: `array`):

Which facility registers to output. The archive covers all of Japan: ~7,600 hospitals, ~105,000 medical clinics, ~68,000 dental clinics, ~2,000 maternity homes, ~62,000 pharmacies.

## `prefecture` (type: `string`):

Optional filter. Accepts a JIS code (`13`), a Japanese name (`東京都`) or an English name (`Tokyo`). Leave empty for nationwide.

## `includeDepartments` (type: `boolean`):

If enabled (default), each hospital/clinic/dental record carries its deduplicated 診療科目 list (department code + Japanese name) joined from the paired speciality table in the SAME archive — no extra network requests.

## `maxItems` (type: `integer`):

Maximum number of records to output across all selected facility types (in the order given).

## `datasetZipUrl` (type: `string`):

Advanced. Normally the actor reads the e-Gov dataset page and picks the latest snapshot ZIP automatically. Pass an https URL here to pin a specific snapshot (e.g. an older resource from https://data.e-gov.go.jp/data/dataset/iryou\_teikyouseido\_mhlw) — this also skips the dataset-page request.

## `maxApiRequests` (type: `integer`):

Hard safety cap on upstream HTTP requests (politeness). A normal run needs at most 2: the dataset page + the ZIP download.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Default is NO proxy (direct connection). The actor backs off exponentially on 429/5xx and fails visibly on a persistent block — it never attempts rate-limit evasion.

## Actor input object example

```json
{
  "facilityTypes": [
    "hospital"
  ],
  "prefecture": "Tokyo",
  "includeDepartments": true,
  "maxItems": 100,
  "maxApiRequests": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `records` (type: `string`):

Structured records with source attribution (source, sourceUrl, license, retrievedAt) on every item.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jpopendata/japan-medical-facilities").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("jpopendata/japan-medical-facilities").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call jpopendata/japan-medical-facilities --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpopendata/japan-medical-facilities"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Ih7vhIzRPsOWlq3kG/builds/wWQjIBkauHsGHIfb0/openapi.json
