The likely source of the count discrepancy is the idea of hidden subjects. We “hide” subjects when we no longer want to expose it to the user. Assignments have a “hidden” field to help identify these. The API returns both hidden and not hidden data by default.
If you wish to match the counts on the WaniKani app then you’ll need to filter out the hidden assignments. The assignment endpoint has a query filter parameter for this, which is outlined in the documentation.
—
Reading your last post more carefully…
The subjects can be moved around to different levels if our content team decides it makes sense to do so. We don’t reset user progress for the subject when this happens.
Here is the log where hills radical was moved from level 8 to 29
For this case, if you want the counts to match with the app, then you’ll need to filter out assignments where their associated subject’s level is greater than your user level.
The assignments endpoint has a query filter for levels, which can help you accomplish the goal. For the levels filter pass in a comma delimited list of every level up to your current user level.