Student programmer confused with API and starting lessons

Hi! I’m trying to create a super basic WaniKani Android App for a class project, mostly to get some experience using Kotlin and working with an API.

I’ve gotten to the point where I can return individual radicals, and their meaning using the form:
But am currently confused by how I would start a lesson, go through the radicals/kanji, and then move it from lessons to reviews.
Looking at what I get from, I see I have the first 26 items available from lesson 1. But the data inside the json object doesn’t actually contain info about the item- as shown here.

Later on, when I try and start an assignment with something like “
I get {“error”:“assignment must be in unlocked, but not started”,“code”:422} as the error message, and am not super sure what to do from here. The API documentation seems pretty decent, but I couldn’t find out what to do in this case. I also took a look at the github for Kakumei(an actual android app), but a lot of it went over my head.

Any help is greatly appreciated!


Hi! I just realized that the error came from trying to start an assignment that was currently in my review queue- state like this, where started_at is not null
“data”: {
“created_at”: “2020-11-10T09:10:11.984074Z”,
“subject_id”: 5,
“subject_type”: “radical”,
“srs_stage”: 1,
“unlocked_at”: “2020-11-10T09:10:11.978011Z”,
“started_at”: “2020-11-26T20:30:50.792132Z”,
“passed_at”: null,
“burned_at”: null,
“available_at”: “2020-11-26T22:00:00.000000Z”,
“resurrected_at”: null,
“hidden”: false

If I “started” an item that was inside the lesson queue, it would move into the review queue. I think my confusion was that I was expecting a list of the characters in the lesson queue, so I could display them and do a lesson quiz, from a request to “start” the assignment. However, it seems like requesting for the item meanings and “starting” an assignment are actually 2 separate requests, which was unexpected.

In the same line of thought, if I want to create a review- this doesn’t seem to actually return a list of items to review. Rather, it seems like I should be sending a request to WaniKani giving the results of my review that I ran locally, right? And then getting a review actually retrieves the results from a past review?

I think I’m currently trying to figure out what the best way is to send a request to get a list of items to review/do a lesson on, since doesn’t seem distinguish between items in the review and lesson queue.

I totally missed that, that’s perfect, thank you!

1 Like

Something that came up that’s confusing me is how we progress with reviews. I’m able to move items from the lesson to the review queue now, but are we supposed to create a review whenever we want to progress forward with an item?

The example provided for this was a bit strange to me- rather than using subject id, we have to find assignment id again and then set incorrect_meaning_answers and incorrect_reading_answers=0 for each item we got correct? I had tried this earlier but it didn’t seem to go through


Actually nevermind, I realized I had made a typo and I am indeed able to advance a single review forward using this method above.

Would you know how an item goes from lesson to quiz to review queue ?
I would like to handle the ordering of lessons within the “quiz” section (the section just after the lessons) but i don’t quite get the logic behind it.

Item in lesson → quiz questions → item in review queue ?

My goal would be to order quiz questions forcing 1x1 (meaning then reading) with a script.
Any ideas would be great.