It seems that the result from the public API is missing the auxiliary_meanings
:
Public API
const API_TOKEN = "<your API token>";
(await fetch("https://api.wanikani.com/v2/subjects/8800", {headers: {Authorization: `Bearer ${API_TOKEN}`}}).then(r => r.json())).data
returns
{
"created_at": "2018-04-18T22:09:50.306891Z",
"level": 7,
"slug": "札",
"hidden_at": null,
"document_url": "https://www.wanikani.com/vocabulary/%E6%9C%AD",
"characters": "札",
"meanings": [
{
"meaning": "Tag",
"primary": true,
"accepted_answer": true
},
{
"meaning": "Amulet",
"primary": false,
"accepted_answer": true
},
{
"meaning": "Label",
"primary": false,
"accepted_answer": true
},
{
"meaning": "Playing Card",
"primary": false,
"accepted_answer": true
}
],
"auxiliary_meanings": [],
"readings": [
{
"primary": true,
"reading": "ふだ",
"accepted_answer": true
}
],
"parts_of_speech": [
"noun"
],
"component_subject_ids": [
649
],
"meaning_mnemonic": "This word is almost the same as the kanji, but only half of it. It means <vocabulary>tag</vocabulary> or <vocabulary>amulet</vocabulary>. They're about the same shape and size as money, but you can't buy a house with them (...probably).",
"reading_mnemonic": "Since this word is made up of a single kanji, it should use the kun'yomi reading. When learning the kanji, you didn't learn that reading, so here's a mnemonic to help you with this word:\r\n\r\nYou can't find your <vocabulary>tag</vocabulary> anywhere. It was just there, you swear, but now it's nowhere to be found. You search for it everywhere, then you realize... it was right there all along. Seriously? You're such a <reading>foo</reading>l, <reading>duh</reading> (<ja>ふだ</ja>)!",
"context_sentences": [
{
"en": "Please put this amulet on the inside of your front door.",
"ja": "このお札は、げんかんのドアの内がわにはっておいてください。"
},
{
"en": "You should be careful not to show your hand.",
"ja": "自分の札を見せないようにした方がいいよ。"
},
{
"en": "Jello is really disgusting. There should be a picture of a skull and crossbones on the label.",
"ja": "ジェロってほんとにキモい。ドクロマークの絵が描かれた札でも付けておくべきだよ。"
}
],
"pronunciation_audios": [
{
"url": "https://files.wanikani.com/gv67rrsp9xflh6b10tfryfafjy4g",
"metadata": {
"gender": "female",
"source_id": 27554,
"pronunciation": "ふだ",
"voice_actor_id": 1,
"voice_actor_name": "Kyoko",
"voice_description": "Tokyo accent"
},
"content_type": "audio/mpeg"
},
{
"url": "https://files.wanikani.com/9c67y2cbtm8vwrj6pb4dabvapmx7",
"metadata": {
"gender": "female",
"source_id": 27554,
"pronunciation": "ふだ",
"voice_actor_id": 1,
"voice_actor_name": "Kyoko",
"voice_description": "Tokyo accent"
},
"content_type": "audio/ogg"
},
{
"url": "https://files.wanikani.com/hmc5lzogiwwk2fouxgjk4thchwzw",
"metadata": {
"gender": "male",
"source_id": 10678,
"pronunciation": "ふだ",
"voice_actor_id": 2,
"voice_actor_name": "Kenichi",
"voice_description": "Tokyo accent"
},
"content_type": "audio/ogg"
},
{
"url": "https://files.wanikani.com/6pnyi2peb4pww19nez5vc2xgsmm7",
"metadata": {
"gender": "male",
"source_id": 10678,
"pronunciation": "ふだ",
"voice_actor_id": 2,
"voice_actor_name": "Kenichi",
"voice_description": "Tokyo accent"
},
"content_type": "audio/mpeg"
}
],
"lesson_position": 152,
"spaced_repetition_system_id": 1
}
Internal API
(await fetch("https://www.wanikani.com/extra_study/items?ids=8800").then(r => r.json()))[0]
returns
{
"en": [
"Tag",
"Amulet",
"Label",
"Playing Card"
],
"id": 8800,
"aud": [
{
"url": "https://files.wanikani.com/gv67rrsp9xflh6b10tfryfafjy4g",
"content_type": "audio/mpeg",
"pronunciation": "ふだ",
"voice_actor_id": 1
},
{
"url": "https://files.wanikani.com/9c67y2cbtm8vwrj6pb4dabvapmx7",
"content_type": "audio/ogg",
"pronunciation": "ふだ",
"voice_actor_id": 1
},
{
"url": "https://files.wanikani.com/hmc5lzogiwwk2fouxgjk4thchwzw",
"content_type": "audio/ogg",
"pronunciation": "ふだ",
"voice_actor_id": 2
},
{
"url": "https://files.wanikani.com/6pnyi2peb4pww19nez5vc2xgsmm7",
"content_type": "audio/mpeg",
"pronunciation": "ふだ",
"voice_actor_id": 2
}
],
"voc": "札",
"kana": [
"ふだ"
],
"type": "Vocabulary",
"kanji": [
{
"en": "Bill",
"id": 649,
"ja": "さつ",
"kan": "札",
"type": "Kanji",
"characters": "札"
}
],
"characters": "札",
"auxiliary_meanings": [
{
"type": "warn",
"meaning": "Bill",
"message": "That's correct when this is a suffix, but it's a standalone word here."
},
{
"type": "warn",
"meaning": "Note",
"message": "That's correct when this is a suffix, but it's a standalone word here."
}
],
"auxiliary_readings": [
{
"type": "warn",
"message": "That's correct when this is a suffix, but it's a standalone word here.",
"reading": "さつ"
}
],
"slug": "札",
"srs": 9,
"syn": []
}
There should be two auxiliary meanings: Bill and Note, both of type “warn”. If you do not have “note” as a user synonym, the answer “note” is rejected, but the warning displays correctly with a shake. However, if you do have it as a user synonym, the blocklist rejects the answer “note” (auxiliary meanings of type “warn” are converted into blocklist entries), but the code that changes the rejection into a warning gets skipped when the answer is a user synonym. Seems like a bug. @WaniKaniJavi
I also noticed that answering “Bill” results in the warning “Oops, we want the vocabulary meaning, not the kanji meaning.” instead of “That’s correct when this is a suffix, but it’s a standalone word here.” Maybe the priority of the warnings should be changed.
I still think there should be some feedback when a user tries to enter a user synonym that is on the blocklist. Maybe at least that the text color changes to red.