The Yomit.ai API gives you everything the website does from your own scripts and apps: the dictionary, kanji and grammar references, the reading, image, listening, and writing tools, My Notes, and your account. Every feature your plan includes on the website is available here with the same limits.
The API is organised around REST. It uses HTTP verbs and response codes, accepts ordinary form encoded request bodies, and returns JSON from every endpoint, including errors. The two endpoints that produce files return the file itself.
All endpoints live under https://api.yomit.ai/v1. The v1 in the path is the API version; changes that would break existing clients will get a new version and v1 will keep working.
Pick a language on the right to see every request example in it.
Every request is authenticated with your API token, sent in the Authorization header as a bearer token. The token identifies your account, so the API sees the same plan, notes, and AI allowance as the website. Requests without a valid token fail with 401.
You have one token at a time. Regenerating it invalidates the previous one immediately, deleting it turns API access off until you create a new one. Keep it secret: do not put it in client-side code or public repositories, and regenerate it if it leaks.
All requests must be made over HTTPS.
Log in to create your token. Once you are logged in this page shows it and fills it into every example.
Parameters use the same forms_ names as the website. GET endpoints take them in the query string. POST endpoints take them as form fields in the request body (application/x-www-form-urlencoded); /ImageAssistant needs multipart/form-data because it uploads a file. JSON request bodies are not accepted. Text is UTF-8 everywhere.
Every JSON response is an object with a message and, on success, a result. The message is empty on success unless there is something worth saying (for example that a search found nothing); on failure it explains what went wrong in plain language you can show to a user.
Endpoints that change things (/Notes, /Account) only ever touch the data of the account behind the token, and ids that belong to another account are reported as not found.
Requests are limited to 200 per two minutes from one address; beyond that the API answers 429 until the window passes.
{"message":"The \"Text\" field is required"}The API follows your plan exactly as the website does. Every study tool is included in every plan, with the Reading Assistant and Listening Practice character limits and the writing practice sheet allowance growing with the plan. The AI features need the Kanji plan or higher and draw on the same monthly token allowance as the website; My Notes needs the Bunko plan or higher; exporting books needs the Sensei plan. An endpoint your plan does not include answers 403 with a message that says which plan does.
Where AI is optional (/ImageAssistant, /ListeningPractice) it is off unless you send forms_ai_enabled=1, and the standard engine is used when your allowance is spent. GET /Account tells you how much of the allowance is left.
Kana (0.00 USD per month)
Dictionary, JLPT grammar, hiragana & katakana
Reading Assistant: 10 texts a month, 100 characters at a time
Listening practice: 10 texts a month, 50 characters at a time
Image Assistant text recognition: 10 images a month
Writing practice: 10 pages a month, up to 1 characters per sheet
Kanji (2.99 USD per month)
Dictionary, JLPT grammar, hiragana & katakana
Reading Assistant: 25 texts a month, 150 characters at a time
Listening practice: 25 texts a month, 150 characters at a time
Image Assistant text recognition: 25 images a month
Writing practice: 25 pages a month, up to 3 characters per sheet
Writing practice sheet options
AI word & sentence explanations
AI vision for photos & natural AI voice
150,000 AI tokens every month
Bunko (7.99 USD per month)
Dictionary, JLPT grammar, hiragana & katakana
Reading Assistant: 75 texts a month, 500 characters at a time
Listening practice: 75 texts a month, 500 characters at a time
Image Assistant text recognition: 75 images a month
Writing practice: 75 pages a month, up to 10 characters per sheet
Writing practice sheet options
AI word & sentence explanations
AI vision for photos & natural AI voice
500,000 AI tokens every month
My Notes: books, pages & notes on any word
AI note tools: improve, summarize, quiz
Sensei (12.99 USD per month)
Dictionary, JLPT grammar, hiragana & katakana
Reading Assistant: 200 texts a month, 1,500 characters at a time
Listening practice: 200 texts a month, 1,500 characters at a time
Image Assistant text recognition: 200 images a month
Writing practice: 200 pages a month, up to 25 characters per sheet
Writing practice sheet options
AI word & sentence explanations
AI vision for photos & natural AI voice
1,200,000 AI tokens every month
My Notes: books, pages & notes on any word
AI note tools: improve, summarize, quiz
Export notes to PDF, Word & Excel
{"message":"My Notes is included in the Bunko and Sensei plans, please upgrade your plan to keep notes"}The API uses conventional HTTP response codes. Codes in the 2xx range mean the request worked. Codes in the 4xx range mean the request could not be carried out with the information given (a missing parameter, a token that is not valid, a feature outside your plan, an id that is not yours). Codes in the 5xx range mean something went wrong on our side or in a service we depend on; these are rare and safe to retry after a moment.
Every error is a JSON object whose message explains the problem, including which field failed validation.
200 - OK - Everything worked as expected.
400 - Bad Request - A required parameter is missing or a value is not acceptable; the message says which.
401 - Unauthorized - No valid API token was sent.
403 - Forbidden - Your plan does not include this feature, or your AI allowance for this billing period is used up.
404 - Not Found - The endpoint does not exist, or the id is not one of yours.
429 - Too Many Requests - More than 200 requests in two minutes; wait and try again.
500 - Server Error - Something went wrong on our side.
502 - Bad Gateway - The AI, speech, or text recognition service did not answer; try again later.
503 - Service Unavailable - The feature is not enabled on this server.
{"message":"The \"Kanji\" field is required"}Look up Japanese, romaji, or English exactly as the dictionary page does. Conjugated words are reduced to their dictionary form, a phrase is split into its words and each word is looked up, and any kanji in the query come back with their details. A * stands in for the rest of a word: 駅* starts with 駅, *屋 ends with 屋, *雨* contains 雨, and 電*車 starts with 電 and ends with 車.
Results are paged 20 words at a time; use forms_start with a value from page_array to fetch another page.
An object with query, how the query was read (type: japanese, romaji, english, or pattern), the matching words with their readings and senses, the kanji found in the query, the tokens of a phrase, pattern (null, or the wildcard with kind, text, prefix, and suffix), readings (hiragana for a query of one to four kanji, each with literal, kun, and on), offer (null, or a dictionary-collection suggestion with id, value, action, and question), and the paging fields total_rows, current_page, total_pages, and page_array.
{"message":"","result":{"query":"食べる","type":"japanese","words":[{"id_japanese_word":"00000000-0000-4000-a000-000000000050","sequence":1358280,"source":"JMdict","common":true,"kanji_elements":[{"written_form":"食べる","common":true},{"written_form":"喰べる","common":false}],"reading_elements":[{"reading":"たべる","restriction":[],"common":true}],"senses":[{"part_of_speech":["Ichidan verb","transitive verb"],"cross_reference":[],"sense_information":"","miscellaneous":[],"glosses":["to eat"]},{"part_of_speech":["Ichidan verb","transitive verb"],"cross_reference":[],"sense_information":"","miscellaneous":[],"glosses":["to live on (e.g. a salary)","to live off","to subsist on"]}],"named_entities":[],"primary_written_form":"食べる","primary_reading":"たべる"}],"total_rows":1,"kanji":[{"id_japanese_kanji":"00000000-0000-4000-a000-000000000060","literal":"食","codepoint":"098df","grade":2,"stroke_count":9,"frequency":328,"jlpt":4,"readings":{"on":["ショク","ジキ"],"kun":["く.う","く.らう","た.べる","は.む"],"other":[{"type":"pinyin","reading":"shi2"}]},"meanings":["eat","food"],"nanori":["ぐい"],"radical":{"number":184,"character":"食","strokes":9},"components":["人","良","食"]}],"tokens":[],"pattern":null,"readings":[],"offer":null,"current_page":1,"total_pages":1,"page_array":[1]}}The "Explain with AI" button of the dictionary: a teacher style explanation of a word, on its own or as it is used in a passage, with readings, meaning, grammar notes, and example sentences.
Plan: the Kanji plan or higher. Each call spends AI tokens from your monthly allowance; when the allowance is used up the call fails with 403.
An object with the word, the explanation as markdown, and the same explanation rendered as html.
{"message":"","result":{"word":"食べる","markdown":"### 食べる (たべる)\n\n- **Meaning here:** to eat\n- **Part of speech:** ichidan verb, dictionary form\n\n**Example:** 妹はりんごを食べる。 — My sister eats an apple.","html":"<h3>食べる (たべる)</h3><ul><li><strong>Meaning here:</strong> to eat</li><li><strong>Part of speech:</strong> ichidan verb, dictionary form</li></ul><p><strong>Example:</strong> 妹はりんごを食べる。 — My sister eats an apple.</p>"}}A dictionary collection: Body, Clock, Colours, Connectors, Counters, Demonstratives, Family, Feelings, Frequency, House, Numbers, Position, Questions, Time, or Weather. Words are ordinary dictionary entries. Counters add the reading from one to ten, colours add a swatch and a pale wash, and numbers can also convert a whole number. The other lists add the everyday reading and the other forms under each card. Body, clock, demonstratives, family, feelings, frequency, house, position, time, and weather also include a scene, boxes of labels above the cards. A scene has kind, introduction, flow, and rows. A row has name, marks, and groups. A group has name and marks. A mark has kanji, reading, label, slot, emoji, and query.
An object with id, title, introduction, number (the conversion, or null), scene (null, or the boxes above the cards), and groups. Each group has name, introduction, entries (a word plus label, note, readings, swatch, and wash), and grid for the days and months. A converted number has kanji, reading, also, and counters.
{"message":"","result":{"id":"numbers","title":"Numbers","introduction":"Type a number to see how it is read, and how the counters change with it.","number":{"input":"3847","value":3847,"kanji":"三千八百四十七","reading":"さんぜんはっぴゃくよんじゅうなな","also":"","error":"","counters":[{"kanji":"三千八百四十七本","reading":"さんぜんはっぴゃくよんじゅうななほん","label":"long, thin things","query":"本"}]},"scene":null,"groups":[{"name":"Digits and large numbers","introduction":"","entries":[{"word":{"id_japanese_word":"00000000-0000-4000-a000-000000000050","sequence":1358280,"source":"JMdict","common":true,"kanji_elements":[{"written_form":"食べる","common":true},{"written_form":"喰べる","common":false}],"reading_elements":[{"reading":"たべる","restriction":[],"common":true}],"senses":[{"part_of_speech":["Ichidan verb","transitive verb"],"cross_reference":[],"sense_information":"","miscellaneous":[],"glosses":["to eat"]},{"part_of_speech":["Ichidan verb","transitive verb"],"cross_reference":[],"sense_information":"","miscellaneous":[],"glosses":["to live on (e.g. a salary)","to live off","to subsist on"]}],"named_entities":[],"primary_written_form":"食べる","primary_reading":"たべる"},"label":"one","note":"","readings":[],"swatch":"","wash":""}],"grid":[]}]}}The words a kana reading could be written as, most likely first, the candidates the dictionary page offers when a search is typed in kana. A longer phrase in kana is converted as a whole.
An object with the reading and an array of candidates (strings).
{"message":"","result":{"reading":"きょうはいいてんき","candidates":["今日はいい天気","今日は良い天気","キョウハイイテンキ"]}}Every conjugation of a verb or adjective, as the conjugation table on the dictionary page shows them. When the part of speech is not given it is worked out from the word itself, first with the text analyser, then from the dictionary.
An object with the word, reading, word class (type and type_label), and inflections: an array of forms, each with form, affirmative, negative, affirmative_reading, and negative_reading.
{"message":"","result":{"word":"食べる","reading":"たべる","type":"ichidan","type_label":"Ichidan (る) verb","inflections":[{"form":"Plain","affirmative":"食べる","negative":"食べない","affirmative_reading":"たべる","negative_reading":"たべない"},{"form":"Polite","affirmative":"食べます","negative":"食べません","affirmative_reading":"たべます","negative_reading":"たべません"},{"form":"Past","affirmative":"食べた","negative":"食べなかった","affirmative_reading":"たべた","negative_reading":"たべなかった"}]}}Everything the dictionary shows for one kanji: on and kun readings, meanings, name readings, school grade, JLPT level, stroke count, frequency rank, classical radical and components, whether a stroke order diagram is available, and common words written with it.
A kanji object with stroke_order_available and words (an array of word entries) added.
{"message":"","result":{"id_japanese_kanji":"00000000-0000-4000-a000-000000000060","literal":"食","codepoint":"098df","grade":2,"stroke_count":9,"frequency":328,"jlpt":4,"readings":{"on":["ショク","ジキ"],"kun":["く.う","く.らう","た.べる","は.む"],"other":[{"type":"pinyin","reading":"shi2"}]},"meanings":["eat","food"],"nanori":["ぐい"],"radical":{"number":184,"character":"食","strokes":9},"components":["人","良","食"],"stroke_order_available":true,"words":[{"id_japanese_word":"00000000-0000-4000-a000-000000000050","sequence":1358280,"source":"JMdict","common":true,"kanji_elements":[{"written_form":"食べる","common":true},{"written_form":"喰べる","common":false}],"reading_elements":[{"reading":"たべる","restriction":[],"common":true}],"senses":[{"part_of_speech":["Ichidan verb","transitive verb"],"cross_reference":[],"sense_information":"","miscellaneous":[],"glosses":["to eat"]},{"part_of_speech":["Ichidan verb","transitive verb"],"cross_reference":[],"sense_information":"","miscellaneous":[],"glosses":["to live on (e.g. a salary)","to live off","to subsist on"]}],"named_entities":[],"primary_written_form":"食べる","primary_reading":"たべる"}]}}The 214 classical radicals grouped by stroke count, the radical picker of the dictionary page. Use the radical number values with /Kanji/Radicals.
An object keyed by stroke count; each value is an array of radicals with their number and character.
{"message":"","result":{"1":[{"number":1,"character":"一"},{"number":2,"character":"丨"},{"number":3,"character":"丶"}],"2":[{"number":7,"character":"二"},{"number":9,"character":"人"}]}}The kanji that contain every radical in a list, most frequent first, as the radical picker finds them.
An array of kanji objects, at most 60. The message explains an empty result.
{"message":"","result":[{"id_japanese_kanji":"00000000-0000-4000-a000-000000000060","literal":"食","codepoint":"098df","grade":2,"stroke_count":9,"frequency":328,"jlpt":4,"readings":{"on":["ショク","ジキ"],"kun":["く.う","く.らう","た.べる","は.む"],"other":[{"type":"pinyin","reading":"shi2"}]},"meanings":["eat","food"],"nanori":["ぐい"],"radical":{"number":184,"character":"食","strokes":9},"components":["人","良","食"]}]}The grammar reference in two shapes. With no arguments, how many grammar points there are per level. With forms_grammar_level, one page of the points of that level (optionally filtered by forms_term). Fetch the usage rules and example sentences of one point with /Grammar/{GRAMMAR_ID}.
The counts shape is {"counts": {"n5": 123, ...}}. The level shape adds item_list (summaries with id_japanese_grammar, level, pattern, meaning, and one example) and the paging fields.
{"message":"","result":{"item_list":[{"id_japanese_grammar":"00000000-0000-4000-a000-000000000040","level":"n5","pattern":"〜たい","meaning":"want to do","example":"寿司を食べたい。"}],"total_rows":1,"current_page":1,"total_pages":1,"page_array":[1],"counts":{"n5":1,"n4":0,"n3":0,"n2":0,"n1":0},"level":"n5","term":"たい"}}One grammar point in full: its usage rules by word class and every example sentence, grouped by the JLPT level of the hardest vocabulary word each sentence contains.
The point with id_japanese_grammar, level, pattern, meaning, usage (each rule with word_class, rule, rule_annotated, and example), and examples (each with level, japanese, and english). In rule_annotated every term from the key of the grammar page, such as [Verb て-form], is wrapped in square brackets so it can be picked out and explained.
{"message":"","result":{"id_japanese_grammar":"00000000-0000-4000-a000-000000000040","level":"n5","pattern":"〜たい","meaning":"want to do","usage":[{"word_class":"verb","rule":"Verb stem + たい","rule_annotated":"[Verb stem] + たい","example":"食べたい、行きたい"}],"examples":[{"level":"n5","japanese":"寿司を食べたい。","english":"I want to eat sushi."},{"level":"n4","japanese":"将来、日本で働きたい。","english":"I want to work in Japan in the future."}]}}The hiragana chart, table by table, exactly as the hiragana page draws it: the basic sounds, the voiced and semi-voiced sounds, and the combinations.
An array of tables, each with a title, a description, and columns keyed by the column's romaji; each column is an array of five cells (empty where the chart has a gap) with kana, romaji, and typing (what to type for it).
{"message":"","result":[{"title":"Basic Hiragana","description":"The 46 basic sounds. Hiragana is used for native Japanese words, grammatical particles, and verb endings.","columns":{"a":[{"kana":"あ","romaji":"a","typing":"a"},{"kana":"い","romaji":"i","typing":"i"},{"kana":"う","romaji":"u","typing":"u"},{"kana":"え","romaji":"e","typing":"e"},{"kana":"お","romaji":"o","typing":"o"}]}}]}The katakana chart in the same shape as /Hiragana, including the extra combinations used for loanwords.
An array of tables, see /Hiragana.
{"message":"","result":[{"title":"Basic Katakana","description":"The same 46 sounds as hiragana. Katakana is used for loanwords, foreign names, onomatopoeia, and emphasis.","columns":{"a":[{"kana":"ア","romaji":"a","typing":"a"},{"kana":"イ","romaji":"i","typing":"i"},{"kana":"ウ","romaji":"u","typing":"u"},{"kana":"エ","romaji":"e","typing":"e"},{"kana":"オ","romaji":"o","typing":"o"}]}}]}Split a passage of Japanese into words with their readings and parts of speech, the analysis behind the reading assistant. Look up any word with /Dictionary and conjugate verbs with /Inflection.
Plan: every plan has a monthly allowance of texts to analyse (10, 25, 75, or 200 from the free plan up); each successful call counts as one, and the call answers 403 once the allowance is spent. The text read from an image by /ImageAssistant already comes back split into words, so it does not need this call.
An array of tokens in reading order, each with surface (as written), lemma (dictionary form), reading (hiragana), part_of_speech (Japanese), part_of_speech_english, is_symbol, and is_verb.
{"message":"","result":[{"surface":"毎朝","lemma":"毎朝","reading":"まいあさ","part_of_speech":"名詞","part_of_speech_english":"noun","is_symbol":false,"is_verb":false},{"surface":"パン","lemma":"パン","reading":"ぱん","part_of_speech":"名詞","part_of_speech_english":"noun","is_symbol":false,"is_verb":false},{"surface":"を","lemma":"を","reading":"を","part_of_speech":"助詞","part_of_speech_english":"particle","is_symbol":false,"is_verb":false},{"surface":"食べる","lemma":"食べる","reading":"たべる","part_of_speech":"動詞","part_of_speech_english":"verb","is_symbol":false,"is_verb":true},{"surface":"。","lemma":"。","reading":"。","part_of_speech":"補助記号","part_of_speech_english":"symbol","is_symbol":true,"is_verb":false}]}Read the Japanese text out of a photo or screenshot, the image assistant. Send the image as a multipart/form-data upload. Standard text recognition is included in every plan; AI vision reads handwriting and busy photos far better.
Plan: every plan has a monthly allowance of images to read (10, 25, 75, or 200 from the free plan up); each successful call counts as one, and the call answers 403 once the allowance is spent. AI vision needs the Kanji plan or higher and spends AI tokens. When your token allowance is used up the standard recognition is used instead and notice says so.
An object with the recognised text (line breaks preserved), the same text split into tokens in the shape /ReadingAssistant returns (an empty array when word splitting was unavailable), the engine that produced it (ai or ocr), and a notice when AI was requested but not used.
{"message":"","result":{"text":"本日のおすすめ\n焼き魚定食 900円","tokens":[{"surface":"本日","lemma":"本日","reading":"ほんじつ","part_of_speech":"名詞","part_of_speech_english":"noun","is_symbol":false,"is_verb":false},{"surface":"の","lemma":"の","reading":"の","part_of_speech":"助詞","part_of_speech_english":"particle","is_symbol":false,"is_verb":false},{"surface":"おすすめ","lemma":"お勧め","reading":"おすすめ","part_of_speech":"名詞","part_of_speech_english":"noun","is_symbol":false,"is_verb":false}],"engine":"ai","notice":""}}Japanese text read aloud at a pace matched to a JLPT level, the listening practice tool. The standard voice is included in every plan; the natural AI voice is optional.
Plan: every plan has a monthly allowance of texts to turn into speech (10, 25, 75, or 200 from the free plan up); each successful call counts as one, and the call answers 403 once the allowance is spent. The AI voice needs the Kanji plan or higher and spends one AI token per character. When your token allowance is used up the standard voice is used instead and notice says so.
An object with the audio as a base64 string, its mime_type and file extension, the engine that produced it (ai or openjtalk), and a notice when AI was requested but not used. Decode audio to get the audio file.
{"message":"","result":{"audio":"UklGRiQAAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YQAAAAA=","mime_type":"audio/wav","extension":"wav","engine":"openjtalk","notice":""}}A printable PDF with a practice block for every kanji, hiragana, and katakana in the text (readings and meanings, faded stroke order guides to trace, then empty writing squares), the writing practice tool. The optional arguments change the layout; leave them out for the standard sheet.
Plan: the number of different characters on one sheet grows with the plan (1, 3, 10, or 25 from the free plan up) and every plan has a monthly allowance of printed pages (10, 25, 75, or 200); a sheet counts as the pages it prints to, so three characters at one per page count as three and at three per page as one. The call answers 403 when the text has more characters than the plan allows or the sheet would not fit in the pages left. The layout arguments need the Kanji plan or higher; on the free plan they are ignored and the standard sheet is made.
The response body is the PDF file itself (Content-Type: application/pdf), not JSON. Errors are still JSON.
The PDF file.
(the PDF file, Content-Type: application/pdf)
Your books with their pages, in the order you keep them in, plus how many notes are in each and the totals for the fixed views of My Notes (all, unfiled, linked).
Plan: every /Notes endpoint needs the Bunko plan or higher.
An object with books (each with id_note_book, title, description, position, note_count, and its pages) and counts.
{"message":"","result":{"books":[{"id_note_book":"00000000-0000-4000-a000-000000000010","title":"JLPT N4","description":"Everything I am reviewing before the December test","position":0,"note_count":3,"pages":[{"id_note_page":"00000000-0000-4000-a000-000000000020","id_note_book":"00000000-0000-4000-a000-000000000010","title":"Verbs","position":0,"note_count":2},{"id_note_page":"00000000-0000-4000-a000-000000000021","id_note_book":"00000000-0000-4000-a000-000000000010","title":"Particles","position":1,"note_count":1}]}],"counts":{"all":5,"unfiled":2,"linked":3}}}Create a book, which is added after your existing books, or change the title and description of one of your books.
The book: id_note_book, title, and description.
{"message":"","result":{"id_note_book":"00000000-0000-4000-a000-000000000010","title":"JLPT N4","description":"Everything I am reviewing before the December test"}}Save a new order for your books. Ids that are not yours are ignored and books missing from the list keep their place after the ones listed.
An object with the final order.
{"message":"","result":{"order":["00000000-0000-4000-a000-000000000010","00000000-0000-4000-a000-000000000011"]}}Delete a book and its pages. The notes filed on those pages are not deleted, they become unfiled notes.
An object with the deleted id_note_book.
{"message":"","result":{"id_note_book":"00000000-0000-4000-a000-000000000010"}}Download one of your books, with every page and note, as a PDF, Word, or Excel file.
The response body is the file itself, not JSON. Errors are still JSON.
Plan: the Sensei plan.
The file, with a Content-Disposition header carrying a file name based on the book's title.
(the exported file, Content-Type: application/pdf)
Create a page at the end of a book, or rename one of your pages.
The page: id_note_page, id_note_book, and title.
{"message":"","result":{"id_note_page":"00000000-0000-4000-a000-000000000020","id_note_book":"00000000-0000-4000-a000-000000000010","title":"Verbs"}}Save a new order for the pages of one of your books.
An object with the id_note_book and the final order.
{"message":"","result":{"id_note_book":"00000000-0000-4000-a000-000000000010","order":["00000000-0000-4000-a000-000000000021","00000000-0000-4000-a000-000000000020"]}}Delete a page. The notes filed on it are not deleted, they become unfiled notes.
An object with the deleted id_note_page.
{"message":"","result":{"id_note_page":"00000000-0000-4000-a000-000000000020"}}Your notes, in one of four ways: the notes on a page (forms_id_note_page), the notes about one word, kanji, or grammar point (forms_note_reference_type and forms_note_reference_key), or one of the fixed views (forms_note_view). With no arguments every note is returned.
An object with notes, each with id_note, id_note_page (null when unfiled), dates, what it is about (reference_type, reference_key, reference_label), title, the markdown content, and content_html.
{"message":"","result":{"notes":[{"id_note":"00000000-0000-4000-a000-000000000030","id_note_page":"00000000-0000-4000-a000-000000000020","date_created":"2026-10-28 19:44:52","date_updated":"2026-10-28 19:44:52","reference_type":"Word","reference_key":"食べる","reference_label":"食べる (たべる)","title":"Eating verbs","content":"食べる is the polite everyday verb.\n\n- 食う (くう) is rougher, mostly used by men\n- 召し上がる (めしあがる) is the honorific form","content_html":"<p>食べる is the polite everyday verb.</p><ul><li>食う (くう) is rougher, mostly used by men</li><li>召し上がる (めしあがる) is the honorific form</li></ul>"}],"page":{"id_note_page":"00000000-0000-4000-a000-000000000020","id_note_book":"00000000-0000-4000-a000-000000000010","id_user":"00000000-0000-4000-a000-000000000099","date_created":"2026-10-28 19:44:52","date_updated":"2026-10-28 19:44:52","title":"Verbs","position":"0"}}}Write a note, or change the title, content, and page of one of your notes. A note can be about a word, kanji, or grammar point, so it shows up next to it in the dictionary and grammar pages; that link is fixed when the note is created. Content is markdown.
The note, in the same shape as GET /Notes returns it.
{"message":"","result":{"id_note":"00000000-0000-4000-a000-000000000030","id_note_page":"00000000-0000-4000-a000-000000000020","date_created":"2026-10-28 19:44:52","date_updated":"2026-10-28 19:44:52","reference_type":"Word","reference_key":"食べる","reference_label":"食べる (たべる)","title":"Eating verbs","content":"食べる is the polite everyday verb.","content_html":"<p>食べる is the polite everyday verb.</p>"}}Save a new order for the notes on one of your pages.
An object with the id_note_page and the final order.
{"message":"","result":{"id_note_page":"00000000-0000-4000-a000-000000000020","order":["00000000-0000-4000-a000-000000000031","00000000-0000-4000-a000-000000000030"]}}Delete one of your notes.
An object with the deleted id_note.
{"message":"","result":{"id_note":"00000000-0000-4000-a000-000000000030"}}The AI tools of My Notes, run over one note or over every note on a page: improve rewrites a single note with mistakes fixed and readings added (its content is returned, nothing is saved), summarize makes a revision sheet, quiz writes five questions with answers, and ask answers a question using the notes as context.
Plan: the Bunko plan or higher. Each call spends AI tokens from your monthly allowance.
An object with the mode, the answer as markdown, and the same answer rendered as html.
{"message":"","result":{"mode":"quiz","markdown":"**Question 1**\nFill in the blank: 毎朝パン_食べる。\n\n### Answers\n**1.** を — the object marker.","html":"<p><strong>Question 1</strong><br />Fill in the blank: 毎朝パン_食べる。</p><h3>Answers</h3><p><strong>1.</strong> を — the object marker.</p>"}}The account behind the token: your display name and email address, your plan and what it includes, and for plans with AI how much of this billing cycle's token allowance you have used, day by day.
An object with id_user, date_created, name, username, plan, plan_price, plan_currency, the features your plan includes (ai, notes, note_export), ai_usage (null without AI), and ai_usage_daily.
{"message":"","result":{"id_user":"00000000-0000-4000-a000-000000000099","date_created":"2026-10-28 19:44:52","name":"Paxton","username":"paxton@example.com","plan":"Bunko","plan_price":"7.99","plan_currency":"USD","features":{"ai":true,"notes":true,"note_export":false},"ai_usage":{"plan":"3","limit":500000,"used":41200,"remaining":458800,"percent":8,"cycle_start":"2026-10-16 19:44:52","cycle_end":"2026-11-15 19:44:52","id_user_plan":"00000000-0000-4000-a000-000000000002"},"ai_usage_daily":[{"id_user":"00000000-0000-4000-a000-000000000099","date_created":"2026-10-28","request_count":"6","tokens_prompt":"4100","tokens_completion":"2900","tokens_total":"7000"}]}}Change the name shown in the site's header and in your notes exports.
An object with the new name.
{"message":"Your display name has been updated","result":{"name":"Paxton"}}The plan currently associated with your account along with its monthly price.
An object with the plan name (Kana, Kanji, Bunko, Sensei), the monthly plan_price for your account including any price override, and the ISO 4217 plan_currency.
{"result":{"plan":"Kana","plan_price":"0.00","plan_currency":"USD"}}Every payment on your account in summary form: when it was made, the amount, and its id.
An array of payment objects, each with id_payment, date_created, and payment_total.
{"result":[{"id_payment":"00000000-0000-4000-a000-000000000001","date_created":"2026-10-28 19:44:52","payment_total":"7.99"},{"id_payment":"00000000-0000-4000-a000-000000000000","date_created":"2026-09-28 19:44:52","payment_total":"7.99"}]}The details of one payment: billing address, masked card details, and the plan that was paid for.
A payment object.
{"result":{"id_payment":"00000000-0000-4000-a000-000000000001","date_created":"2026-10-28 19:44:52","billing_first_name":"Paxton","billing_last_name":"Smith","billing_address_1":"12 Avenue Avenue","billing_address_2":"Suite 200","billing_country":"CA","billing_province_state":"ON","billing_city":"Toronto","billing_zip_postal_code":"A1B2C3","billing_phone":"4165551234","payment_total":"7.99","card_type":"Visa","card_masked_number":"**** 1111","plan":"Bunko"}}Which dictionary collection /Dictionary/Collection returns. Accepted values:
body: Body
clock: Clock
colours: Colours
connectors: Connectors
counters: Counters
demonstratives: Demonstratives
family: Family
feelings: Feelings
frequency: Frequency
house: House
numbers: Numbers
position: Position
questions: Questions
time: Time
weather: Weather
The pace of /ListeningPractice, slowest to fastest. Accepted values:
N5: N5 - Slowest
N4: N4 - Slow
N3: N3 - Relaxed
N2: N2 - Natural
N1: N1 - Fast
A JLPT level for /Grammar. Accepted values:
n5: JLPT N5
n4: JLPT N4
n3: JLPT N3
n2: JLPT N2
n1: JLPT N1
What a note is about. Accepted values:
None: None
Word: Word
Kanji: Kanji
Grammar: Grammar
A fixed view of GET /Notes. Accepted values:
all: All notes
unfiled: Unfiled
linked: Linked to dictionary and grammar
What /Notes/AI should do. Accepted values:
improve: Improve this note
summarize: Summarize
quiz: Quiz me
ask: Ask a question
The file type of /Notes/Books/Export. Accepted values:
pdf: PDF
docx: Word (.docx)
xlsx: Excel (.xlsx)