The Khan Academy API gives developers access to nearly all types of Khan Academy data via a RESTful API that outputs easy-to-parse JSON.
At the highest levels, the API will give you information about Every Playlist. You can use the titles of each playlist to discover the videos within individual playlists (i.e. Algebra, Banking and Money, Biology, etc). Or, you can use the playlists to give you info about exercises for each (i.e. Precalculus, Trigonometry, Arithmetic, etc).
You can use these unauthenticated api calls to get information about nearly all of the Khan Academy's library organized in Playlists, or as individual videos or exercises. In addition, you can also retrieve information about the Badges we award via the exercise dashboard.
Authenticated api calls will give you information about the logged in user (either a student or a coach/parent), such as videos seen, exercises completed, playlist progress and so forth. This repository's README includes helpful instructions (and a python script) for authenticated api calls. Try it out!
Just point your browser at http://www.khanacademy.org/api/v1/playlists, and you've already made your first API call. Pretty easy. You have instant access to all of our public playlist and exercise data, and once authenticated you can access private user data and history.
Browse our full list of all API methods to check out the video, exercise, and user history data available to you.
The Khan Academy API uses an OAuth flow for authenticating users. You don't have to authenticate unless you're trying to access user-specific data, like
This repository's source contains more detailed examples of using and authenticating against the API.
The API Explorer demonstrates the responses from most major API methods. It lets you choose a method, tweak parameter values, and see the JSON response.
You'll need to connect via OAuth for any methods that require authentication. If you don't want to, all such methods will return 401 Unauthorized, but other methods will work as intended.
The explorer doesn't support POST methods.
All API methods return JSONP if you add a callback parameter (
&callback=yourFunction) to your request.
The current API version is 1.0. Documentation for API v0.1 is also available. v0.1 is deprecated, and support will be discontinued on October 31, 2011.