# jp-exam-schedules

> When are Japan's national qualification exams (physician, dentist, nurse, public health nurse, midwife, pharmacist, physical and occupational therapist, registered dietitian, certified social worker, certified care worker, psychiatric social worker and others, about 28 with dates) held and when are results announced, as published on the list page of the Ministry of Health, Labour and Welfare (MHLW), and did those dates change? Look up by exam name (Japanese or English) or exam_id; get exam and result announcement events with ISO dates (Asia/Tokyo), the text as published, retrieved_at and stable event ids. MHLW overwrites the page and keeps no dated versions; this service records each version and the before and after of changed dates (since October 2026), and flags rows that look out of date (possibly_stale) without inferring next dates. Application periods are not on the list page and are not covered. Hosted MCP and HTTP: no install. Free. Confirm on the official exam page before applying.

Data source: Ministry of Health, Labour and Welfare of Japan (MHLW), list page of qualifications and examinations (shikaku shiken jouhou), https://www.mhlw.go.jp/kouseiroudoushou/shikaku_shiken/ . Reused under the Public Data License 1.0 (PDL1.0; MHLW website terms https://www.mhlw.go.jp/chosakuken/index.html). Processed by MK Career Planning (dates read into ISO form, English labels and stable ids added, changes tracked across page versions); not official, and not a service of MHLW or the Government of Japan.
Relay of the exam and result announcement dates published on the list page of qualifications and examinations of the Ministry of Health, Labour and Welfare of Japan (MHLW), processed by MK Career Planning (not official). Dates are as published on that page at retrieved_at. MHLW overwrites the page and its rows can lag behind an exam's own page. This service gives no advice on eligibility to sit an exam, on application procedures or on anyone's individual situation. Application periods and session numbers are not on the list page and are not covered here; see the official exam page.
Official check: Dates as published on MHLW's list page at retrieved_at; confirm on the official exam page before applying.
Statuses (exam_schedule_lookup, core registry-status vocabulary): listed (on the current list page), no_longer_listed_since (seen by this service earlier, not on the current page since the date given; the page does not state why), not_found_in_checked_records (not on the page nor seen leaving it since tracking_since), unknown (page not loaded or stale: list_not_loaded_yet, stale; or only partial-name candidates: candidates_only).
Events: exam = exam date(s); result_announcement = announcement of results; application = application period (not on the current list page; deadline_basis is set only when the page states it, otherwise unknown). initial = the dates are as first seen by this service; changed = the dates on the list page changed at least once (see revisions with before and after); removed_from_list = no longer on the current list page (removed_reason: replaced_by_later_schedule when the same exam now shows a later year's dates, not_on_list otherwise). complete = every date written in the row was read to a day; partial = some dates are written without a day (for example early September) or could not be read (see date_text_as_published); unknown = the list page gives no dates for this exam (see dates_not_on_list_text).
possibly_stale: true when every date of this exam on the list page is in the past while most other exams on the same page already show upcoming dates: MHLW may not have updated this row yet. The next dates are not known here; check the official exam page.
Application periods are not on MHLW's list page and are not covered by this service (v1). See the official exam page (exam_page_url) for application periods and how deadlines are counted.
Categories: medical (Medical, pharmaceutical, health and food sanitation), occupational_safety (Technical, occupational safety and health), beauty_health (Beauty and health), welfare_care (Welfare and long-term care).
MHLW overwrites its list page and keeps no dated versions. This service reads the page about once a day and records each version that differs (by SHA-256) and the differences per exam and per event, starting at tracking_since. Changes are dated by when this service first read the changed page (observed_at), not by MHLW. An event is identified by exam, fiscal year of the first exam date (April to March), type, part and sitting; a new year's schedule therefore appears as new events, and the previous year's events as removed_from_list with removed_reason replaced_by_later_schedule.
Free history window: change history recorded by this service is served for the last 30 days. A since earlier than that returns the last 30 days with history_window.clamped true (requested_since, served_since); older history can be requested as a paid product (not yet offered). tracking_since still shows when recording started.

## Connect

- MCP (streamable HTTP): https://jp-exam-schedules-production.mk-career-planning.workers.dev/mcp
- OpenAPI: https://jp-exam-schedules-production.mk-career-planning.workers.dev/openapi.json
- x402 discovery: https://jp-exam-schedules-production.mk-career-planning.workers.dev/.well-known/x402

## Quickstart

- Developer quickstart (MCP client configs, free curl/TypeScript calls, how to read official_check, events, revisions, possibly_stale and the change feed, attribution): https://jp-exam-schedules-production.mk-career-planning.workers.dev/quickstart

## Free tools

- catalog: List the tools of this server with prices, data sources, licensing, daily limits and data freshness.
- exam_schedule_lookup: When is this Japanese national exam held and when are results announced, as published on MHLW's list page, and did the dates change? Give exam (exam_id like nurse, or the name in Japanese or English); omit it to list exams, optionally by category. Returns next_events and all events with ISO dates, revision_status, revisions (before and after), possibly_stale, retrieved_at and source. Application periods are not covered. Confirm on the official exam page.
- exam_schedule_changes: Which exam dates on MHLW's list page of national qualification exams changed, appeared or left the list since a date (this service's own record of page versions; MHLW keeps none)? Each change has before and after as published and the time this service first read it. Optional exam and change_type filters. Free window: last 30 days.
- get_receipt: Re-fetch the stored result of a settled paid call by its receipt_id, for when the response was lost after payment. Free. Unknown or unsettled receipt ids return RECEIPT_NOT_FOUND. Results are kept for 90 days after settlement.
- HTTP: GET https://jp-exam-schedules-production.mk-career-planning.workers.dev/v1/exam-schedules, GET https://jp-exam-schedules-production.mk-career-planning.workers.dev/v1/exam-schedules/changes return the same data as the MCP tools. GET https://jp-exam-schedules-production.mk-career-planning.workers.dev/v1/receipts/<receipt_id> is get_receipt.

## Payments

This server offers free tools only. It does not request or accept x402 payments.

## Rate limits

- Free calls (free HTTP endpoints under /v1/ and free MCP tools) are limited to 300 requests per 60 seconds per client (a client is keyed by a one-way hash of its IP address and the first 64 characters of its User-Agent; neither is stored. The User-Agent can be set by anyone, so this split is for fairness between clients behind a shared gateway, not a security control). Over the limit, HTTP returns 429 RATE_LIMITED with a Retry-After header and MCP tools return the error RATE_LIMITED. Paid calls are not rate limited.

## Provenance and fetch_status

Responses carry provenance[] (source, upstream_updated_at, retrieved_at, content_sha256, parser_version, fetch_status). fetch_status values:

- found: The upstream document was retrieved and contains the data used for this answer.
- empty: The upstream was retrieved, but it has no item for this query (for example JMA had no bulletin for that area in its feeds, or the municipality is not in the list). The state is unknown: empty does NOT mean 'none in effect'.
- stale: The data was retrieved but is older than the freshness threshold for its kind; treat it with care.
- unavailable: The upstream could not be retrieved, read or used (network error, withdrawn bulletin, paused source, or data not yet loaded).
- unsupported: The query is outside what this source covers (for example a date JMA does not issue warnings for yet, or a period before the source's records).

## Errors

- RECEIPT_NOT_FOUND (get_receipt)
- RATE_LIMITED (free calls over the per-client limit; HTTP 429 with Retry-After; not charged)

## Terms

- Fresh: the MHLW page was read successfully within 48 hours. Otherwise lookups return unknown and no dates.
- Keep the attribution (source and 'processed by MK Career Planning, not official') and the official page URLs when you pass results on.

## Privacy and support

- Operator: MK Career Planning
- Terms of Service: https://jp-exam-schedules-production.mk-career-planning.workers.dev/terms
- Privacy policy: https://jp-exam-schedules-production.mk-career-planning.workers.dev/privacy
- Support (free): https://jp-exam-schedules-production.mk-career-planning.workers.dev/support (mk.career.planning@gmail.com)
