Japan Post (EMS, International Mail) Tracking API & MCP
Query live Japan Post (japanpost) package status and scan history in a single synchronous GET request or MCP tool call. lastscanned auto-detects S10 numbers ending JP (with a valid check digit) in Pass 1 and returns a normalized TrackingResult JSON payload, with no Japan Post account or API key.
Overview & Quick Facts
| Property | Value |
|---|---|
Carrier slug (?carrier=) | japanpost |
| Brand & service aliases | Japan Post (日本郵便), Japan Post EMS, trackings.post.japanpost.jp, S10 …JP |
| Category | National postal operator (Japan), international mail |
| Single-package REST endpoint | GET https://api.lastscanned.com/v1/track/{trackingNumber} |
| Batch REST endpoint | GET https://api.lastscanned.com/v1/track?numbers=EE123456785JP,... |
MCP server (https://mcp.lastscanned.com) | track_package, track_packages, list_carriers (claude mcp add --transport http lastscanned https://mcp.lastscanned.com) |
| Authentication & pricing | Authorization: Bearer lsk_live_... · 1 free keyless lookup/day per IP · Free tier (5 unique numbers/day, $0) · Pro ($4.99/mo for 1,000 unique numbers, unlimited re-polls, $0.015/extra) · HTTP 402 Stripe MPP ($0.50 for 25-number lsk_pack_ key or $0.02/number in USDC on Tempo) |
Why developers use lastscanned for Japan Post
- HTML to JSON: Japan Post's English results page is server-rendered HTML with paired table rows and
MM/DD/YYYYdates.lastscannedreads the history table and returns normalized events, newest first. - Local-time caveat handled: Japan Post prints overseas scans in the destination's local time. Only scans in Japan get a UTC
timestamp(Asia/Tokyo); foreign scans carrylocalTimeonly.
Tracking Number Formats & Auto-Detection (matches)
| Pass | Rule / Regex | Check Digit | Examples |
|---|---|---|---|
Pass 1 (matches) | /^[A-Z]{2}\d{9}JP$/ (UPU S10) | S10 mod-11 | EE123456785JP |
Pass 2 (mayMatch) | None | n/a | n/a |
Only S10 numbers whose check digit is valid are claimed. Anything else needs ?carrier=japanpost.
Synchronous GET Request & Normalized JSON Response
curl
curl -s "https://api.lastscanned.com/v1/track/EE123456785JP" \
-H "Authorization: Bearer $LASTSCANNED_API_KEY"MCP track_package tool call
{
"tool": "track_package",
"arguments": {
"tracking_number": "EE123456785JP"
}
}Normalized TrackingResult JSON response
{
"carrier": "japanpost",
"trackingNumber": "EE123456785JP",
"status": "exception",
"statusDescription": "Item arrival at collection point for pick-up",
"service": "EMS",
"deliveredAt": null,
"deliveredAtLocal": null,
"signedBy": null,
"destination": null,
"events": [
{
"timestamp": null,
"localTime": "2026-10-14T07:43:00",
"status": "exception",
"description": "Item arrival at collection point for pick-up",
"location": "UNITED KINGDOM",
"code": null
},
{
"timestamp": null,
"localTime": "2026-06-30T15:08:00",
"status": "in_transit",
"description": "Item into sorting centre",
"location": "UNITED KINGDOM",
"code": null
},
{
"timestamp": null,
"localTime": "2025-12-01T11:18:00",
"status": "in_transit",
"description": "Arrival at inward office of exchange",
"location": "COVENTRY PARCELFORCE, UNITED KINGDOM",
"code": null
}
]
}timestamp is null here because these scans happened overseas, where Japan Post prints local time with no zone.
Notes
- Domestic numbers: Japan Post's domestic 11 to 13 digit numbers are not auto-detected; only S10 numbers ending
JPare. - Pick-up notices: scans such as
Item arrival at collection point for pick-upmap toexception, matching how other carriers' ready-for-collection notices are treated. - No codes: Japan Post gives no event codes, so
codeisnullandstatuscomes from the wording. - An unknown number returns
404 not_found(cached for 5 minutes).
Related Resources
- Live browser lookup tool: Track a Japan Post package live on lastscanned.com/lookup/japanpost
- Carrier hub: All supported carriers
- Regex & check digits: Tracking number formats & auto-detection
- AI support workflows: WISMO AI agents & synchronous tracking
Asendia USA (Pirate Ship Simple Export Rate) Tracking API & MCP
Track Asendia USA (Pirate Ship AHOY 12-character labels, AS...US numbers, and USPS outbound international labels) and destination postal handoffs via synchronous REST GET or MCP. Normalized JSON status and scan history—no carrier credentials required.
Singapore Post (SingPost, Speedpost) Tracking API & MCP
Track SingPost and Speedpost numbers (S10 numbers ending SG) via synchronous REST GET or MCP. Normalized JSON status and scan history, no carrier credentials required.