Working as of 3/16/2023 (Thanks to @auzt1e)
If this script helped or interested you, please consider staring the repo above. That number looks cool when it's big
[1, 2, 3, 4]
question: It's pretty simple. On every 'quiz' you open in the app, your browser makes a request to /getAssessmentItem
. The server responds with everything your client needs to draw and grade your question. Within this graphql response is a json blob containing a list of questions, most of them with a correct: boolean
attribute. Sometimes, they try to throw you off by placing correct
as the value to a key labeled either status
or considered
.
I wrote this for Chrome, although all should work on gecko. It essentially hooks into the browser's fetch
, which is what Khan Academy uses now instead of XMLHttpRequest
(this is why the some old exploits no longer work, along with the endpoint change), and when /getAssessmentItem
is requested, it logs the "important" part of the response.
This is fully open source! If you want to take a crack at automating this script, or if you'd like to add support for more types of questions, like matching for example, feel free to submit a pull request. I'll be sure to credit you accordingly!
This has the GNU GPL 3.0 licence. I expect most users will be people like me who have AP Stats assignments and no will to do them. I don't care too much about what you do with it, but I like credit :)