I’d assume so, but I will ask and get back to you about what widget-url represents.
In the meantime, I’ve pasted the source of one of the widgets (Reviews Completed Today) below. I did swap out the widget-ids just in case they were specific to an account. Don’t think they would be, but didn’t want to wait and double check.
<turbo-frame data-dashboard-widget-url-value="https://wanikani.com/widgets/reviews-completed?period=day&theme=default&widget_frame=widget-(widget's id)" data-controller="dashboard-widget" class="dashboard__widget dashboard__widget--one-third" id="widget-(widget's id)" target="_top" src="https://wanikani.com/widgets/reviews-completed?period=day&theme=default&widget_frame=widget-(widget's id)&browser_timezone=America%2FLos_Angeles&utc_time_at_start_of_day=2025-09-24T07%3A00%3A00.000Z" complete="">
<div class="reviews-completed-widget theme--default">
<div class="reviews-completed-widget__content">
<div class="reviews-completed-widget__content-wrapper">
<div class="reviews-completed-widget__image-wrapper">
<wk-svg-image src="https://assets-preview.wanikani.com/assets/widgets/reviews-completed/whisper-shell-dfb5b351.svg" style="aspect-ratio: 8 / 5" class="reviews-completed-widget__image"></wk-svg-image>
</div>
<div class="reviews-completed-widget__current-period">
<div class="reviews-completed-widget__current-period-count">0</div>
<div class="reviews-completed-widget__title">Reviews Completed</div>
<div class="reviews-completed-widget__current-period-timeframe">Today</div>
</div>
</div>
<div class="reviews-completed-widget__previous-period">
<div class="reviews-completed-widget__previous-period-timeframe">Yesterday:</div>
<div class="reviews-completed-widget__previous-period-count">30 Reviews</div>
</div>
</div>
</div></turbo-frame>
If you go to the URL (after the update) then you’re taken to a page that just contains the data that gets inputed into the widget. Mine currently looks like this:
Hopefully all that is helpful. Let me know what else you’d be looking for if not.
As for the API and review stats. The quick answer is “no” or “probably (maybe?) not” or at least “not soon” depending on what exactly you’re asking.
If it’s the reviews data that is every single review made by a person — that table’s given us so much grief over the years. For a couple years we thought it’d bring the app down
. Dealing with that, specifically, has taken up an inordinate amount of time and resources, unfortunately. If nobody did reviews it wouldn’t be so much of a problem, but I suppose we’re fortunate enough that so much reviews data is coming in all the time
Anyways, no plan to go back to that anytime soon.
If it’s more like the endpoint of someone’s review stats (e.g. what level an item is at for a user, what their correct% is, if an item is burned, what level they are at, etc) then that’s a… maybe? We’ve talked a little bit about what a version of the API could look like that would a) allow us to still continue to support an API, and b) balance the problems we run into and allow us to more easily create new features. I’m not sure where we’ll end up with that, but I will say that it’s a situation where I like the API and appreciate / enjoy what people have done with it but also it’s created more challenges than we ever expected. So it’s still a big “I don’t know.” I want to focus on the content and features, and let the dust settle on what we have planned there before we get back to updates / new versions of the API. But I suppose I can never say never…
Sorry, not a satisfying answer.
