npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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

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 | | 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 |

Connect with me 📲

LinkedIn Twitter Instagram LeetCode