Skip to main content

Unofficial API for duolingo.com

Project description

# Duolingo


Unofficial Duolingo API Written in Python. This is mostly a collection of functions that give you common data
directly from the api resource dictionary. More methods to come.


#### TODO

- Integrate authenticated data
- Add user activity stream


### Usage


```py
import duolingo

lingo = duolingo.Duolingo('kartik')
```

### Methods


#### Summary

- lingo **.get_user_info()**
- lingo **.get_user_settings()**
- lingo **.get_languages()**
- lingo **.get_friends()**
- lingo **.get_language_details(language_name)**
- lingo **.get_language_progress(language_abbr)**
- lingo **.get_known_topics(language_abbr)**
- lingo **.get_known_words(language_abbr)**
- lingo **.get_learned_skills(lang)**


#### get_user_info()

```py
import duolingo

lingo = duolingo.Duolingo('kartik')
# or
lingo = duolingo.Duolingo('kartik', 'my optional password')
```

- if you want to get information on your learning progress, then you must be logged in


```
{'admin': False,
'avatar': u'https://s3.amazonaws.com/duolingo-images/avatars/22524/PALdVtqnHa',
'bio': u'',
'cohort': 17,
'contribution_points': 0,
'created': u'1 year ago',
'fullname': u'Kartik',
'gplus_id': None,
'id': 22524,
'invites_left': 3,
'learning_language_string': u'French',
'location': u'Toronto',
'num_followers': 3,
'num_following': 4,
'twitter_id': None,
'username': u'kartik',
'ui_language': u'en'}
```

#### get_user_settings()

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_user_settings()
```

```
{'deactivated': False,
'is_follower_by': False,
'is_following': False,
'notify_comment': True}
```

#### get_languages()

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_languages()
```

```
[u'French', u'German', u'Spanish']
```

#### get_friends()

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_friends()
```

```
[{'languages': [u'French', u'Spanish', u'German', u'Italian'],
'points': 4791,
'username': u'apmechev'},
{'languages': [u'French', u'Spanish'],
'points': 1810,
'username': u'jlfwong'},
{'languages': [u'French', u'German', u'Spanish'],
'points': 754,
'username': u'kartik'},
{'languages': [u'Spanish', u'French'], 'points': 718, 'username': u'vhisko'},
{'languages': [u'French', u'German'],
'points': 579,
'username': u'warrench04'}]
```

#### get_language_details(language_name)

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_language_details('French')
```

```
{u'current_learning': True,
u'language': u'fr',
u'language_string': u'French',
u'learning': True,
u'level': 6,
u'points': 604,
u'streak': 0}
```

#### get_language_progress(language_abbr)

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_language_progress()
```

```
{'language': u'fr',
'language_string': u'French',
'level_left': 146,
'level_percent': 51,
'level_points': 300,
'level_progress': 154,
'next_level': 7,
'num_skills_learned': 15,
'points': 604,
'points_rank': 3,
'streak': 0}
```

#### get_known_words(language_abbr)

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_known_words()
```

```
[u'absolument',
u'acier',
u'actuellement',
u'affirme',
u'agissant',
u'agit',
u'ai',
u'aient',
u'ailes',
u'aime',
u'aimerais']
```

#### get_known_topics(language_abbr)

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_known_topics()
```

```
[u'Colors',
u'Basics 2',
u'Animals',
u'Possessives',
u'Clothing',
u'Food',
u'Questions',
u'Basics',
u'Verbs: Present 1',
u'Plurals',
u'Common Phrases',
u'Adjectives 1']
```

#### get_learned_skills(language_abbr)

```py
lingo = duolingo.Duolingo('kartik')
print lingo.get_learned_skills('fr')
```

```
[u'Basics',
u'Basics 2',
u'Colors',
u'Animals',
u'Possessives',
u'Verbs: Present 1',
u'Clothing',
u'Food',
u'Questions',
u'Plurals',
u'Common Phrases',
u'Adjectives 1']
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

duolingo-api-0.1.tar.gz (4.8 kB view details)

Uploaded Source

File details

Details for the file duolingo-api-0.1.tar.gz.

File metadata

  • Download URL: duolingo-api-0.1.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for duolingo-api-0.1.tar.gz
Algorithm Hash digest
SHA256 8b9cc53594fed8ff50f5f6e6f539c64056cd9c0c421798212a97ae3bceb1c8e0
MD5 e762c9e9a4c59923bc53b351c69299af
BLAKE2b-256 1b7326dd0c22722f186c68d1ecea216a4ca2bf3f8ec36c1fa20e1d484035ba4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page