Auth Required | Method | Endpoint | Resource | Query Parameter | Body | |
---|---|---|---|---|---|---|
Manifest | ❌ | GET | https://www.duolingo.com | /manifest.json | - | - |
Version Info | ❌ | GET | https://www.duolingo.com | /api/1/version_info | - | - |
Login | ❌ | POST | https://www.duolingo.com | /login | ?login={username or email}&password={password} | - |
Users | ✅ | GET | https://www.duolingo.com | /2017-06-30/users | /{userId} | - |
Overview | ✅ | GET | https://www.duolingo.com | /vocabulary/overview | - | - |
Switch Language | ✅ | POST | https://www.duolingo.com | /switch_language | - | from_language, learning_language |
Dictionary | ✅ | GET | https://www.duolingo.com | /api/1/dictionary_page | ?lexeme_id={lexemeId} | - |
Subscriptions | ✅ | GET | https://www.duolingo.com | /2017-06-30/users/{userId}/subscriptions | - | - |
Subscribers | ✅ | GET | https://www.duolingo.com | /2017-06-30/users/{userId}/subscribers | - | - |
Follow | ✅ | PUT | https://www.duolingo.com | /2017-06-30/users/{userId}/subscriptions/{targetUserId} | - | csrfToken |
Unfollow | ✅ | DELETE | https://www.duolingo.com | /2017-06-30/users/{userId}/subscriptions/{targetUserId} | - | csrfToken |
Shop Items | ✅ | GET | https://www.duolingo.com | /2017-06-30/shop-items | - | - |
Purchase | ✅ | POST | https://www.duolingo.com | /2017-06-30/users/{userId}/shop-items | - | itemName, learningLanguage |
Friend Search | ✅ | POST | https://www.duolingo.com | /users/search | - | per_page, q |
Hints | ✅ | GET | https://d2.duolingo.com | /words/hints/{learningLanguage}/{formLanguage} | ?sentence={sentence} | - |
Leaderboard | ✅ | GET | https://duolingo-leaderboards-prod.duolingo.com | /leaderboards/7d9f5dd1-8423-491a-91f2-2532052038ce/users/{userId} | ?client_unlocked=true | - |
Alphabets | ✅ | GET | https://www-prod.duolingo.com | /2017-06-30/alphabets/courses/{learningLanguage}/{fromLanguage} | - | - |
Stories | ✅ | GET | https://stories.duolingo.com | /api2/stories | ?fromLanguage={fromLanguage}&learningLanguage={learningLanguage}&illustrationFormat={svg OR png OR pdf} | - |
Achievements | ✅ | GET | https://duolingo-achievements-prod.duolingo.com | /users/{userId}/achievements | ?fromLanguage={fromLanguage}&learningLanguage={learningLanguage} | - |
Forum Topics | ✅ | GET | https://forum-api.duolingo.com | /api/1/topics/list/users | - | - |
Forum Topic | ✅ | GET | https://forum-api.duolingo.com | /topics/{topicId} | - | - |
Forum Comment | ✅ | GET | https://forum-api.duolingo.com | /comments/{commentId} | - | - |
Forum Comments | ✅ | GET | https://forum-api.duolingo.com | /comments | ?page={page}&sort_by={new OR hot OR followed}&topic_id=null | - |
Search Forum | ✅ | GET | https://forum-api.duolingo.com | /api/1/searchables | ?q={searchWord}&page=0&limit=20 | - |
Follow Forum Discussion | ✅ | POST | https://forum-api.duolingo.com | /comments/{commentId}/watch | - | - |
Unfollow Forum Discussion | ✅ | POST | https://forum-api.duolingo.com | /comments/{commentId}/unwatch | - | - |
Friend Recommendation | ✅ | GET | https://friends-prod.duolingo.com | /users/{userId}/recommendations | - | - |
duolingo-dart/api-design
This is a repository of the research I've done on the Duolingo API. Analyzing and reverse engineering the Duolingo API communication.
BSD-3-Clause