Modular JP-text REST API: handwriting kanji OCR, name-reading inference, address normalization, fullwidth/halfwidth, 振り仮名 — pay-per-call, the missing piece every JP onboarding flow rebuilds.
Problem
JP-specific text and document processing — handwritten kanji, 旧字体 in legal docs, fullwidth/halfwidth normalization, name reading inference (Tanaka 田中 vs 田仲), 郵便番号→都道府県 address normalization, JIS-X-0208→Unicode mapping, 振り仮名 — is poorly handled by global APIs (Google Vision, AWS Textract, Mindee). Every JP B2B onboarding flow rebuilds these utilities from scratch.
Audience
JP government-adjacent SaaS (digital agency contractors), JP banks/insurance KYC teams, JP edu-tech with handwriting needs, foreign SaaS (Stripe, Plaid-equivalent) entering Japan needing JP forms — solo-engineer to team-CTO buyer, ¥5-30K/mo solo, ¥30-200K/mo team.
Reasoning
Source signals
- **SIG-20260425-japan-api-as-a-product-jp-handwriting-jis-normalize-api** — "OCR cannot accurately handle JP-specific text; engineers DIY with gpt-4o-mini for invoice file naming."
- **SIG-20260425-japan-api-as-a-product-jp-invoice-pdf-extraction-api** — "JP invoices need 全角→半角, kanji-name→reading, bank routing — all rebuilt by every team."
- **SIG-20260425-japan-api-as-a-product-zairyu-online-api-gap** — "Foreigner registration / address normalization pain in JP government workflows."
- **SIG-20260425-japan-api-as-a-product-mynumber-etax-api-mess** — "Address auto-fill failures in e-Tax MyNumber flow — same address-normalization pain."
Reasoning
This is the "Stripe Identity for JP text" play — modular utility endpoints that every JP B2B onboarding rebuilds. 4+ independent signals over 18 months prove the gap. The modular approach is strategic: launch with the simplest endpoint (address normalization, free dataset from Japan Post) to validate distribution, then add handwriting OCR (Claude vision) and name-reading inference. Defensibility compounds — labeled corpus grows with usage, accuracy improves, switching cost rises. Stack is FastAPI + Railway + Postgres + Redis, no exotic infra. Buy-side ICP is bimodal: solo JP devs ($5-30K/mo) and team CTOs ($30-200K/mo), reducing single-channel risk.
Quick competitive read
- **Google Vision / AWS Textract / Mindee** — global, weak on JP specifics, complementary not direct.
- **Yahoo!ジオコーダ, geolonia** — narrow address-only, pricing/DX gaps.
- **GCP Cloud Vision JP-mode** — has JP OCR but no handwriting + name-reading.
- **NTT Communications Cotoha** — JP NLP API, enterprise-only, no developer self-serve.
- Modular developer-friendly per-call API for JP-text: **white space**, `competitive_pressure: 6-7`. Fragmented competition across endpoints.
Initial pricing hypothesis
Per-endpoint per-call (¥0.5-10 depending on endpoint), Free 1K/mo, Pro $79/mo (10K cross-endpoint), Team $299/mo (100K + SLA), Enterprise ¥50K+/mo (unlimited + JPY/インボイス + on-prem option).
Distribution hypothesis
Qiita/Zenn long-form tutorial series per endpoint (JP SEO + authority); OSS-wrappers on GitHub free + paid hosted API (DataDog-style funnel); narrow JP edu-tech outreach for handwriting; Stripe Partners / Vercel marketplace listings for foreign SaaS entering Japan.
What we ship
**Core features (MVP)**
- Handwriting kanji OCR endpoint (launched FIRST) — `POST /v1/jp/handwriting` accepts an image (form, envelope, handwritten 申請書) and returns recognized text + bounding boxes + per-character confidence; Claude Sonnet 4.6 vision tuned for 旧字体 and degraded scans. Most defensible endpoint, where Google Vision and AWS Textract visibly fail.
- Address normalization endpoint — `POST /v1/jp/address/normalize` accepts freeform JP address (郵便番号, partial, 全角 digits) and returns `{prefecture, city, town, block, building}` plus 郵便番号 validation against the Japan Post free dataset. Competes with Geolonia on price and DX.
- Name reading inference endpoint — `POST /v1/jp/name/reading` accepts a kanji name (田中太郎) and returns every plausible furigana with probabilities (たなかたろう / でんちゅうたろう / …) — critical for KYC, 振り仮名 forms, and 五十音順 sorting.
- Fullwidth/halfwidth + JIS normalization (rule-based, cheap) — `POST /v1/jp/text/normalize` for 全角→半角, JIS-X-0208→Unicode, 旧字体→新字体, hyphen variants; ¥0.5/call, fallback layer behind every other endpoint.
- Pay-per-call Stripe billing — Free 1K calls/mo combined; Pro $79/mo (10K cross-endpoint); Team $299/mo (100K + bulk + SLA); Enterprise ¥50K+/mo with JPY/適格請求書 invoicing and on-prem option for KYC-adjacent banking customers.
**Primary user flow**
1. Developer onboarding — GitHub OAuth → create project → API key → per-endpoint playground with real sample data (handwriting form / address / name) loaded (≤90 s).
2. First API call — developer hits `/v1/jp/handwriting` with an image; <3 s response, structured JSON with confidence scores, ready to drive fallback logic.
3. Cross-endpoint pipeline — typical chain handwriting → text/normalize → address/normalize for form-processing flows; metered billing aggregates every call.
4. Billing — per-endpoint per-call (handwriting ¥10, address ¥1, name reading ¥3, normalize ¥0.5) → Free → Pro → Team → Enterprise (JPY/適格請求書 + on-prem option).
**What it looks like**
- Landing page (developer-friendly): hero "The missing JP-text APIs every onboarding flow rebuilds", four endpoint cards with live demos (drag-image for handwriting, paste-text for the rest), comparison vs Google Vision (no JP handwriting), Geolonia (address-only), Mindee (no JP), per-endpoint per-call pricing table.
- API docs page: Stripe-style three-pane EN/JP, dedicated page per endpoint, schema reference, "Try it" against the user's real key, plus a "Pipeline recipes" page showing how to chain endpoints for KYC, form scanning, address auto-fill.
- Dashboard: usage breakdown per endpoint (calls/day, success rate, latency), confidence-score distribution, error log with sample failed inputs (the improvement loop), API key CRUD, Stripe billing portal, on-prem deployment status for Enterprise.
- JPY billing screen: PDF preview with 適格請求書 number (T1234567890123), 消費税 (10%) breakdown, invoice history, freee/MFクラウド export for the customer's contador; on-prem customers get a separate annual-contract invoicing flow.
**MVP build plan: 14 days**
- Day 1-2: FastAPI + Postgres + Redis + R2 + Stripe metered billing, GitHub OAuth, scaffolded dashboard.
- Day 3-5: Handwriting OCR endpoint — Claude Sonnet 4.6 vision prompt, fine-tune on 200 labeled JP handwriting samples, per-character confidence.
- Day 6: Fullwidth/halfwidth + JIS-X-0208→Unicode + 旧字体→新字体 normalization (rule-based, fast).
- Day 7-8: Name reading inference — small fine-tuned model on JP name corpus + 振り仮名 dictionary lookup.
- Day 9-10: Address normalization — Japan Post 郵便番号 dataset import, freeform→structured parser, edge cases (新住居表示).
- Day 11: Per-endpoint playground on the landing page (Cloudflare Pages) with live demos.
- Day 12: API docs polish + "Pipeline recipes" page.
- Day 13: JPY invoice generator + on-prem deployment template (Docker compose) for Enterprise.
- Day 14: Soft launch via Qiita handwriting tutorial post + 10 cold-outreach pilots in JP edu-tech / KYC.