Implementing 429 retries and throttling for API rate-limits

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • dropbox-sdk-js

    The Official Dropbox API V2 SDK for Javascript

    Many language-specific SDKs and clients, even from major API providers, don't come with built-in rate-limit handling. For example, Dropbox's node client does not implement throttling.

  • plugin-throttling.js

    Octokit plugin for GitHub’s recommended request throttling

    Some companies provide an external module like GitHub's plugin-throttling package for their node clients. But often it's up to you to implement.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • graphql.js

    GitHub GraphQL API client for browsers and Node

    Some companies provide an external module like GitHub's plugin-throttling package for their node clients. But often it's up to you to implement.

  • rest.js

    GitHub REST API client for JavaScript

    Some companies provide an external module like GitHub's plugin-throttling package for their node clients. But often it's up to you to implement.

  • node-ratelimiter

    Abstract rate limiter for nodejs

    Additionally, the ratelimiter implementation my example server uses will shift the Retry-After timestamp on subsequent requests when a client is already at the limit—it returns a Retry-After timestamp based on the 6th oldest request timestamp + 3 seconds.

  • async

    Async utilities for node and the browser

    There is a node package called async implementing this behavior (among many other things) in a function called mapLimit.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts