Skip to content

It's a custom leetcode api. This API provides endpoints to retrieve details about a user's profile, badges, solved questions, contest details, contest history, submissions, calendar and and also daily questions, selected problem, list of problems.

License

Notifications You must be signed in to change notification settings

123xylem/alfa-leetcode-api

 
 

Repository files navigation

alfa-leetcode-api

The API for retrieving your LeetCode profile & Problems statistics

TypeScript Node.js Express.js REST API

About ✨

At First, I struggled to find proper documentation for the leetcode.com/graphql. After scouring various articles about the LeetCode public API, I still couldn't find the comprehensive documentation I was looking for. Fueled by the desire to fill this gap I created alfa-leetcode-api.

alfa-leetcode-api is a custom solution born out of the need for a well-documented and detailed LeetCode API. This project is designed to provide developers with endpoints that offer insights into a user's profile, badges, solved questions, contest details, contest history, submissions, and also daily questions, selected problem, list of problems.

API URL 🌐

https://alfa-leetcode-api.onrender.com/

Run with docker 🐳

docker run -p 3000:3000 alfaarghya/alfa-leetcode-api:2.0.1

Wanna Contribute 🤔??

follow this documentation => CONTRIBUTING.md

💡 Rate Limit

I've implemented a rate limit to prevent any potential server overload issues.

‼️ Note

During development, it's recommended to utilize the API locally. To do so, follow this documentation => Local Deploy

Endpoints 🚀

👤User Details

Details Endpoint Description Demo
Profile /:username Get details about a user's profile. click here
Badges /:username/badges Get the badges earned by the user. click here
Solved /:username/solved Get the total number of questions solved by the user. click here
Contest /:username/contest Get details about the user's contest participation. click here
Contest History /:username/contest/history Get contest history. click here
Submission /:username/submission Get the last 20 submissions of the user. click here
Limited Submission /:username/submission?limit=number Get a specified number of the user's last submissions. click here
Accepted Submission /:username/acSubmission Get the last 20 accepted submission of the user. click here
Limited Accepted Submission /:username/acSubmission?limit=7 Get a specified number of the user's last accepted submission. click here
Calendar /:username/calendar Get the user's submission calendar. click here

😀 New Endpoints 🎉

Details Endpoint Description
Full Profile /userProfile/:username get full profile details in one call
Year Calender /userProfileCalendar?username=yourname&year=2024 get your calendar details with year
Lang Stats /languageStats?username=yourname get the language stats of a user
Question Progress /userProfileUserQuestionProgressV2/:userSlug get your question progress
Skill Stats /skillStats/:username get your skill stats
User Contest Ranking /userContestRankingInfo/:username get contest ranking
Trending Discussion /trendingDiscuss?first=20 get top 20 trending discussions
Discussion Topic /discussTopic/:topicId get discussion topic
Discussion Comment /discussComments/:topicId get discussion comments
Raw Daily Problem /dailyQuestion get raw daily question

❓Questions Details

Details Endpoint Description Demo
Daily Problem /daily Get the daily question. click here
Selected Problem /select?titleSlug=selected-question Get details about a selected-question. click here
Problems /problems Get a list of 20 problems. click here
Limited Problems /problems?limit=number Get a list of a specified number of problems. click here
Filter Problems /problems?tags=tag1+tag2 Get a list of problems based on selected tags. click here
Skip Problems /problems?skip=number Get a list of 20 problems, skipping a specified number of problems. TODO
Filter & Limited Problems /problems?tags=tag1+tag2+tag3&limit=number Get a list of a specified number of problems based on selected tags. click here
Skip & Limited Problems /problems?limit=number&skip=number Get a list of a specified number of problems skipping a specified number of problems. TODO
Skip & Filter & Limited Problems /problems?tags=tag1+tag2+tag3&limit=number&skip=number Get a list of a specified number of problems based on selected tags skipping a specified number of problems. TODO

Author ✒️

Contributor ✏️

Contributor Contribution
@aryanpingle AC submission
@jamesh48 TypeScript Refactoring
@kvqn PORT environment variable
@changchunlei New Endpoints - language stats, integrated user profile, contest and discussions
@merakesh99 Hot reload issue solved
@ajchili Skip param to fetch problems
@theinit01 Temp fix for skip

Connect with me 📲

LinkedIn Twitter Instagram LeetCode

About

It's a custom leetcode api. This API provides endpoints to retrieve details about a user's profile, badges, solved questions, contest details, contest history, submissions, calendar and and also daily questions, selected problem, list of problems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.6%
  • Dockerfile 0.4%