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

rate-limit-tester

v1.0.0

Published

rate-limit-tester is a CLI + local dashboard tool to simulate heavy traffic to any HTTP API

Readme

🚀 Rate Limit Tester NPM version NPM downloads

Hammer your APIs (ethically) — Simulate bursts, test throttling, retry logic, and stress-test your rate limits like a civilized troublemaker.


🧠 What Is This?

rate-limit-tester is a CLI + local dashboard tool to simulate heavy traffic to any HTTP API, helping you answer:

  • Will my API throttle under burst traffic?
  • How does my retry logic handle 429 responses?
  • What’s the max RPS my endpoint can take before it taps out?

🔧 Installation

npm install rate-limit-tester -g

🧪 CLI Usage

npx rate-limit-tester [options]

🌪️ Example Run

npx run rate-limit-tester \
  --url=https://api.example.com/data \
  --method=POST \
  --rps=150 \
  --duration=60 \
  --threads=true \
  --ramp-up=10 \
  --retry=true \
  --burst=false \
  --headers='{"Authorization":"Bearer token"}' \
  --body='{"query":"test"}'

⚙️ Supported Flags

| Flag | Description | | ------------ | -------------------------------------------- | | --url | API endpoint to test (required) | | --method | HTTP method (GET, POST, etc.) | | --rps | Requests per second | | --duration | Duration of test in seconds | | --threads | Enable real concurrency using worker threads | | --burst | Send all requests at once (ignores ramp-up) | | --ramp-up | Gradually increase RPS over N seconds | | --retry | Retry requests on 429 using Retry-After | | --headers | JSON string of custom headers | | --body | JSON string for request body (POST/PUT) |

🧠 Tip: Use single quotes (') around JSON CLI arguments to avoid shell escaping issues.


📈 Dashboard (Optional)

Visualize results after a run with a clean local dashboard.

Start the dashboard:

npx run rate-limit-tester-server

Then open:

http://localhost:3005/chart.html

📉 Charts are not live-streamed — just refresh after a run to see updated results.


📊 Output Files

Each run creates:

  • results/history.json – raw stats for your dashboard

Example output:

🚀 Test Complete

Total Requests:       1200
✅ Successful:         900
⚠️  Throttled (429):   250
❌ Failed:             50
🔁 Retried:            240
⏱️ Avg Response Time:  183ms

📁 Report saved to: report.html

🧪 Why Use This?

| Situation | Benefit | | ---------------------------- | ------------------------------------------------------ | | You're building an API | Test your rate-limiting middleware under stress | | You're using a 3rd-party API | Discover undocumented throttle behavior | | You implemented retry logic | Validate it with real 429 bursts | | You like graphs | Dashboard. That’s it. No further justification needed. |


👨‍🔧 Contributing

PRs welcome. Memes too. Drop issues, improvements, or pull requests any time.


🧪 Built With

  • A deep desire to break stuff (productively)

✍️ Author's Note

Built with 0 caffeine (yeah dont need it actually anymore) and Chart.js by someone who got 429’d one too many times. If it helps you ship safer APIs or impress your PM with a chart (dont need to impresss anyone, let your good work do the talking), then my work here is done 😄

Enjoy breaking things (ethically)! — cinfinit