Authoritative Japanese, on tap for your agent
Every kanji, word, grammar point, and history entity in Potto is curated, JLPT-graded, and source-cited. Query it over MCP or REST, pay per call in yen, and localize content on demand.
Try it now — no key needed
The REST API answers without a key using a bundled evaluation sample (responses carry "sample": true). Real data starts when you attach a key. (The MCP endpoint requires sign-in — see below.)
curl "https://potto.app/api/v1/learnables?query=日"
Connect over MCP
The MCP server (Streamable HTTP, stateless) exposes six read-only tools: search_learnables, get_learnable, get_related_learnables, get_lesson, get_journey, list_worlds. The endpoint requires authentication — MCP clients that support OAuth (like Claude) prompt you to sign in automatically on connect; otherwise pass an API key as a bearer token.
Claude Code
claude mcp add --transport http potto https://potto.app/mcp \
--header "Authorization: Bearer potto_ak_YOUR_KEY"
Any MCP client
POST https://potto.app/mcp
Authorization: Bearer potto_ak_YOUR_KEY
Content-Type: application/json
Accept: application/json, text/event-stream
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_learnables","arguments":{"query":"侍"}}}
Or plain REST
curl -H "Authorization: Bearer potto_ak_YOUR_KEY" \
"https://potto.app/api/v1/learnables?query=ありがとう&jlpt_level=5"
# full entry, localized to Korean on the fly (generated once, then cached)
curl -H "Authorization: Bearer potto_ak_YOUR_KEY" \
"https://potto.app/api/v1/learnables/LEARNABLE_ID?locale=ko"
Full schema: OpenAPI 3.1 · live discovery & pricing: GET /api/v1 · agent index: llms.txt
Pricing — yen-first, prepaid
1 Potto Point = ¥1, fixed. You prepay points (Stripe checkout) and every call debits atomically. No subscriptions, no minimums, no expiry.
| Call | Price | Notes |
|---|---|---|
| Content read (learnable / lesson / journey / worlds / related) | ¥1 | full source-cited document |
| Search | ¥5 | up to 20 ranked results |
| Localized read — cache miss | ¥25 | generation billed once; cache hits are ¥1 for everyone after |
What's in a learnable?
A kanji entry carries readings (on/kun/nanori), stroke count, grade, frequency rank, radicals, visually-similar characters, and ~20 dictionary cross-references. Vocabulary carries senses, pitch-accent patterns, etymology (wago/kango/gairaigo), and keigo register. Grammar carries patterns, conjugation, and JLPT level. History entities carry timespans, aliases, geographic scope, and a 19-type concept-relationship graph.
Every entry is Potto's original work: AI-generated original expression, human-directed, then cross-verified against multiple independent references — dictionaries, encyclopedias, and primary sources — with the citations it was checked against riding along in every response. No single external source is the basis of the dataset, and the reference set keeps growing.
Fair use
The API is for serving your users' Japanese questions, not for replicating the dataset. Keys carry a daily call cap (default 2,000/day per key, 5,000/day per account — raised per customer on request), and bulk redistribution or using responses to build a competing dataset is prohibited by the API terms.
Getting a key
- Open potto.app/developers/credits and sign in (Google or email) — no app install.
- Buy a pack of points and mint an API key (shown once — store it safely), all on the same page.
- Send it as
Authorization: Bearer potto_ak_…orX-API-Key; every call debits your points.
Building an agent that holds its own wallet? Pay per call over x402 — no signup, no prepaid balance. Hit any endpoint under /x402/ (e.g. https://potto.app/x402/api/v1/learnables or /x402/mcp), receive an HTTP 402 with machine-readable payment terms, pay USDC on Base, and retry with the X-PAYMENT header. Same data as the keyed API; prices are the JPY list price converted to USDC.