alfa-leetcode-api
v2.0.1
Published
It's a leetcode custom 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.
Readme
The API for retrieving your LeetCode profile & Problems statistics
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.1Wanna 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 |
| Difficulty | /problems?difficulty=EASY | Get a list of difficulty based problems, use MEDIUM to get medium level, HARD to get Hard level . | 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 | | @123xylem | Add Descriptions and Methods to API route documentation. | | @P-M-Manmohan | Added filtering based on difficulty |
