Skip to content

Instantly share code, notes, and snippets.

@rfoel
Last active June 11, 2025 01:30
Show Gist options
  • Save rfoel/cefe22775e0c94fcead38943d998fa9d to your computer and use it in GitHub Desktop.
Save rfoel/cefe22775e0c94fcead38943d998fa9d to your computer and use it in GitHub Desktop.
Duolingo XP farm

Script to farm XP from Duolingo. Never get demoted again!

Copy and paste the following code in your browser console and hit Enter:

const id=document.cookie.split(';').find(e=>e.includes('logged_out_uuid')).split('=')[1];const{fromLanguage,learningLanguage}=await fetch(`https://www.duolingo.com/2017-06-30/users/${id}?fields=fromLanguage,learningLanguage`,{credentials:'include',headers:{'Content-Type':'application/json'}}).then(r=>r.json());while(true){const session=await fetch('https://www.duolingo.com/2017-06-30/sessions',{body:JSON.stringify({challengeTypes:[],fromLanguage,isFinalLevel:false,isV2:true,juicy:true,learningLanguage,smartTipsVersion:2,type:'GLOBAL_PRACTICE'}),credentials:'include',headers:{'Content-Type':'application/json'},method:'POST'}).then(r=>r.json());await fetch(`https://www.duolingo.com/2017-06-30/sessions/${session.id}`,{body:JSON.stringify({...session,heartsLeft:0,startTime:(+new Date()-60000)/1000,enableBonusPoints:false,endTime:+new Date()/1000,failed:false,maxInLessonStreak:9,shouldLearnThings:true}),credentials:'include',headers:{'Content-Type':'application/json'},method:'PUT'}).then(r=>r.json())}
@kazirakibulalam
Copy link

not working

@rfoel
Copy link
Author

rfoel commented Mar 12, 2025

Try this one:

const id=document.cookie.split(';').find(e=>e.includes('logged_out_uuid')).split('=')[1];const{fromLanguage,learningLanguage}=await fetch(`https://www.duolingo.com/2017-06-30/users/${id}?fields=fromLanguage,learningLanguage`,{credentials:'include',headers:{'Content-Type':'application/json'}}).then(r=>r.json());while(true){const session=await fetch('https://www.duolingo.com/2017-06-30/sessions',{body:JSON.stringify({challengeTypes:[],fromLanguage,isFinalLevel:false,isV2:true,juicy:true,learningLanguage,smartTipsVersion:2,type:'GLOBAL_PRACTICE'}),credentials:'include',headers:{'Content-Type':'application/json'},method:'POST'}).then(r=>r.json());await fetch(`https://www.duolingo.com/2017-06-30/sessions/${session.id}`,{body:JSON.stringify({...session,heartsLeft:0,startTime:(+new Date()-60000)/1000,enableBonusPoints:false,endTime:+new Date()/1000,failed:false,maxInLessonStreak:9,shouldLearnThings:true}),credentials:'include',headers:{'Content-Type':'application/json'},method:'PUT'}).then(r=>r.json())}

@kianmaina
Copy link

it worked perfectly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment