{"id":62272,"date":"2026-08-03T08:52:32","date_gmt":"2026-08-03T13:52:32","guid":{"rendered":"https:\/\/www.nimbleappgenie.com\/blogs\/?p=62272"},"modified":"2026-08-03T08:52:32","modified_gmt":"2026-08-03T13:52:32","slug":"api-rate-limit-error-fix","status":"publish","type":"post","link":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/","title":{"rendered":"\u201cAPI Error: Rate Limit Reached\u201d &#8211; Why It Happens on Claude, Gemini, GitHub &#038; Notion (And How to Fix It)"},"content":{"rendered":"<blockquote><p>Key Takeaways:<\/p>\n<ul>\n<li aria-level=\"1\">API rate limiting caps how many requests you can send to an API in a set time window (per second, minute, or day). Go over it, and you get a 429 error.<\/li>\n<li aria-level=\"1\">The same-looking \u201cAPI error: rate limit reached\u201d message can come from very different places in Claude Code: a subscription session limit, a per-minute token cap, or a short server-side throttle. The fix depends on which one you hit.<\/li>\n<li aria-level=\"1\">Claude, Gemini, GitHub, and Notion each enforce different limits and return different error formats; there&#8217;s no single universal fix.<\/li>\n<li aria-level=\"1\">The fixes that work almost everywhere: exponential backoff, respecting the Retry-After header, caching, batching requests, and not hammering the API with parallel calls.<\/li>\n<li aria-level=\"1\">Poor rate-limiting design isn&#8217;t just a developer annoyance; it&#8217;s directly tied to a meaningful share of real-world API security incidents, which matters even more for fintech and payment products.<\/li>\n<li aria-level=\"1\">If you&#8217;re building your own API, rate limiting is usually enforced at the API gateway (Kong, AWS API Gateway, Apigee, Cloudflare, Zuplo),\u00a0 set per API key, not just per app, and monitored against real traffic patterns rather than guessed.<\/li>\n<li aria-level=\"1\">Nimble AppGenie builds and audits APIs, including AI integrations and fintech platforms with rate limiting designed in from day one, so the product doesn&#8217;t fall over the first time real users show up.<\/li>\n<\/ul>\n<\/blockquote>\n<p>If you have searched for something like &#8220;API error: rate limit reached&#8221; right after your Claude Code session froze mid-task, you are not alone; it&#8217;s one of the most-searched API errors of 2026.<\/p>\n<p>What you have run into is API rate limiting: the rules an API uses to limit how many requests you can send in a given time window. Go past that limit, and the API stops you cold with an HTTP 429.<\/p>\n<p>The frustrating part is that the same message can mean five different things, depending on which API you are calling, which plan you are on, and what you were doing right before it happened.<\/p>\n<p>In this plain-English guide to API rate limiting, the API experts at Nimble AppGenie break down what API rate limiting actually is, how to build APIs that don\u2019t break under real traffic, how it works on the platforms developers hit it on most &#8211; Claude Code, Claude, Gemini, GitHub, and Notion, and the practical steps that fix it, whether you are a solo developer or a business shipping a production app.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What-is-API-Rate-Limiting-And-How-is-It-Different-From-%E2%80%9CAPI-Restrictions%E2%80%9D\"><\/span>What is API Rate Limiting? (And How is It Different From \u201cAPI Restrictions\u201d?)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>API rate limiting is a set of rules that controls how many requests a client &#8211; your app, script, or integration can send to an API within a fixed period of time. Think of it like a nightclub bouncer who only allows a certain number of people through the door every minute, no matter how big the crowd outside gets. Once you hit the cap, the API responds with an HTTP 429 &#8220;Too Many Requests&#8221; error instead of the data you requested.<\/p>\n<p>People usually search for &#8220;API restrictions&#8221; when they mean the same thing, and sometimes they don&#8217;t. Rate limiting is particularly about how often you can call an API. API restrictions are a broader term that can also include geographic blocks, IP allowlists, permissions and scopes, or usage caps tied to a paid plan. Rate limiting is one type of restriction &#8211; the one you will run into the most as a developer, because it&#8217;s the one that shows up mid-build, mid-integration, or mid-demo.<\/p>\n<p>Most APIs communicate rate limits through response headers before you even hit the wall &#8211; things like X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After. Reading these headers, rather than guessing, is the single biggest habit that separates developers who rarely see 429 errors from those who see them constantly.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Why-Rate-Limiting-is-a-Business-Problem-Not-Just-a-Dev-Problem\"><\/span>Why Rate Limiting is a Business Problem, Not Just a Dev Problem<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Rate limiting is a business problem because it affects far more than your backend. Poorly configured rate limits can lead to downtime, frustrated users, higher infrastructure costs, lost revenue, and security risks. That&#8217;s why businesses need to treat rate limiting as a strategic decision, not just a technical setting.<\/p>\n<p>For example, too strict limits can block legitimate users during peak traffic, leading to poor customer experiences and abandoned transactions. On the other hand, too loose limits can expose your APIs to abuse, increase infrastructure costs, and make your systems vulnerable to outages. Finding the right balance is essential for both technical reliability and business success.<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-62282 aligncenter\" src=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Why-Rate-Limiting-Is-a-Business-Problem-Not-Just-a-Dev-Problem.webp\" alt=\"Why Rate Limiting Is a Business Problem, Not Just a Dev Problem\" width=\"900\" height=\"500\" srcset=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Why-Rate-Limiting-Is-a-Business-Problem-Not-Just-a-Dev-Problem.webp 900w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Why-Rate-Limiting-Is-a-Business-Problem-Not-Just-a-Dev-Problem-300x167.webp 300w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Why-Rate-Limiting-Is-a-Business-Problem-Not-Just-a-Dev-Problem-768x427.webp 768w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Why-Rate-Limiting-Is-a-Business-Problem-Not-Just-a-Dev-Problem-680x378.webp 680w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-Uptime-and-User-Experience\"><\/span>\u25ba Uptime and User Experience<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If your app calls a third-party API without any backoff logic, a single busy hour can take core features offline for every user, not only the ones causing the spike.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-Security\"><\/span>\u25ba Security<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Rate limiting is one of the most basic defenses against credential stuffing, brute-force login attempts, and scraping. Independent research into API security incidents has found that missing or weak limiting contributes to over <a href=\"https:\/\/sqmagazine.co.uk\/api-security-breach-statistics\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">20% of brute-force-related API abuse cases<\/a> &#8211; a meaningful number for any product handling logins, personal, or payments data.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-Cost-Control\"><\/span>\u25ba Cost Control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Many AI and cloud API bill per token or per call. Without rate limiting on your endpoints, a single misbehaving client, or a bug in your own CODE, can generate a bill you didn&#8217;t plan for.<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">The global API management market was valued at roughly $6.89 billion in 2025 and is <a href=\"https:\/\/www.fortunebusinessinsights.com\/api-management-market-108490\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">projected to reach $37.43 billion by 2034<\/a>, growing at a 20% CAGR &#8211; a sign of how central well-governed APIs (rate limiting included) have become to modern software.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This is exactly why rate limiting deserves a place in the same conversation as authentication and encryption when you are planning a new API &#8211; something we cover in more depth in our <a href=\"https:\/\/www.nimbleappgenie.com\/blogs\/api-development-guide\/\" target=\"_blank\" rel=\"noopener\">complete guide to API development<\/a> and our <a href=\"https:\/\/www.nimbleappgenie.com\/blogs\/api-security\/\" target=\"_blank\" rel=\"noopener\">API security best practices<\/a> guide.<\/p>\n<p>It matters even more in regulated industries. Fintech platforms specifically sit on top of dozens of third-party APIs &#8211; core banking, credit bureaus, payments, KYC, and each of them enforces its own limits. If you are building in this space, it&#8217;s worth reading how these rules intersect with broader <a href=\"https:\/\/www.nimbleappgenie.com\/blogs\/fintech-regulations\/\" target=\"_blank\" rel=\"noopener\">fintech compliance and regulation requirements<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"4-Rate-Limiting-Algorithms-Behind-Almost-Every-API\"><\/span>4 Rate-Limiting Algorithms Behind Almost Every API<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Almost every rate limiter you will encounter, from Stripe to Claude to a homegrown internal API, is built on one of four approaches:<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-62277 aligncenter\" src=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/4-Rate-Limiting-Algorithms-Behind-Almost-Every-API.webp\" alt=\"4 Rate-Limiting Algorithms Behind Almost Every API\" width=\"900\" height=\"500\" srcset=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/4-Rate-Limiting-Algorithms-Behind-Almost-Every-API.webp 900w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/4-Rate-Limiting-Algorithms-Behind-Almost-Every-API-300x167.webp 300w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/4-Rate-Limiting-Algorithms-Behind-Almost-Every-API-768x427.webp 768w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/4-Rate-Limiting-Algorithms-Behind-Almost-Every-API-680x378.webp 680w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"1-Fixed-Window\"><\/span>1. Fixed Window<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Counts requests in a fixed block of time (e.g., 1 minute) and resets the counter at the boundary. Simple to build, but it allows a burst right at the edge of two windows.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2-Token-Bucket\"><\/span>2. Token Bucket<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Each client gets a &#8220;bucket&#8221; of tokens that refill at a steady rate. Every request spends a token. This is widespread because it permits short bursts while still imposing an average rate over time.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3-Sliding-Window\"><\/span>3. Sliding Window<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tracks a rolling period despite a challenging boundary, smoothing out the burst issue above at the cost of somewhat more complexity.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4-Leaky-Bucket\"><\/span>4. Leaky Bucket<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Requests are processed at a consistent, steady rate no matter how fast they arrive, with anything extra dropped or queued. Best for safeguarding systems that need a seamless, predictable load.<\/p>\n<p>Knowing which algorithm an API uses tells you actually how to behave around it &#8211; for example, a token bucket API can endure short bursts, while a leaky bucket one will not, no matter how you space your requests.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E2%80%9CAPI-Error-Rate-Limit-Reached%E2%80%9D-%E2%80%93-Fixing-It-in-Claude-Claude-Code\"><\/span>\u201cAPI Error: Rate Limit Reached\u201d &#8211; Fixing It in Claude &amp; Claude Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This is one of the most common errors developers search for, and it shows up slightly differently depending on whether you are using the Claude API directly or Claude Code.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%99%A6-On-the-Raw-Claude-API\"><\/span>\u2666 On the Raw Claude API<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Claude&#8217;s Messages API enforces limits across those measures at once: requests per minute (RPM), input per minute (ITPM), and output tokens per minute (OTPM), based on your usage tier. Cross any one of them, and you will get a <a href=\"https:\/\/platform.claude.com\/docs\/en\/api\/rate-limits\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">429 error describing exactly which limit was exceeded<\/a>, along with a retry-after header telling you how long to wait before trying again.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%99%A6-On-Claude-Code\"><\/span>\u2666 On-Claude Code<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>&#8220;Claude Code API error: rate limit reached&#8221; is trickier because Claude Code sits on top of two separate systems: a subscription-based usage allowance (rolling weekly or five-hour windows for Pro and Max plans) and the standard API-based RPM\/TPM limits if you are on API billing. The message looks identical either way, so the fix depends on which one you actually hit.<\/p>\n<p>A practical way to work through it:<\/p>\n<ol>\n<li>Check whether you are on a subscription plan or API billing; that alone tells you which limit system applies.<\/li>\n<li>If there&#8217;s a subscription limit, either wait for the rolling window to reset or switch to a lighter model (e.g., Sonnet or Haiku instead of Opus) to use fewer tokens per task.<\/li>\n<li>If it&#8217;s an API limit, check the response headers for your current usage and the reset time before retrying &#8211; don&#8217;t just spam retry.<\/li>\n<\/ol>\n<p>Break large tasks or long prompts into smaller ones. A single command in Claude Code can trigger 8-12 internal tool-use calls behind the scenes, which can burn through 30,000+ tokens for something that feels like a simple request &#8211; this is the main reason token limits get hit faster than expected.<\/p>\n<p>If it happens constantly under normal use, it is usually a sign you have outgrown your current tier, not a bug &#8211; request a rate limit increase from your account settings.<\/p>\n<p>If you are embedding Claude into your own product rather than just using Claude Code day-to-day, this is a solved problem when the integration is architected properly upfront &#8211; request queuing, model fallbacks, and usage monitoring built into the app layer rather than bolted on after the first outage. This is the kind of work our <a href=\"https:\/\/www.nimbleappgenie.com\/services\/ai-integration-services\" target=\"_blank\" rel=\"noopener\">AI Integration Services<\/a> team handles for clients running Claude, Gemini, and OpenAI in production.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Gemini-API-Rate-Limits-Explained\"><\/span>Gemini API Rate Limits Explained<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Gemini&#8217;s rate limits are evaluated across up to four dimensions at once: requests per minute (RPM), tokens per minute (TPM), requests per day (RPD), and images per minute (IPM) for multimodal calls. Free tier accounts get the tightest limits, and paid tiers scale up significantly as you meet spend and account-standing thresholds.<\/p>\n<p>On top of RPM\/TPM, Google&#8217;s <a href=\"https:\/\/platform.claude.com\/docs\/en\/api\/rate-limits\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">official rate limits documentation<\/a> notes that the Gemini API also enforces spend-based limits on a rolling 10-minute window to protect against sudden billing spikes. If you cross this, you will get a 429 RESOURCE_EXHAUSTED error despite a standard rate-limit message &#8211; worth knowing, because the fix (reduce request volume or shrink context size) is slightly different from a plain RPM breach.<\/p>\n<p>If you are consistently hitting Gemini limits during normal, non-abusive usage, the two levers that actually move the needle are: reducing context window size per call, and upgrading your usage tier by meeting the account&#8217;s billing and spend criteria &#8211; retrying harder doesn&#8217;t help if the ceiling itself is the problem.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What-Does-a-Google-API-Rate-Limit-Response-Body-Actually-Look-Like\"><\/span>What Does a Google API Rate-Limit Response Body Actually Look Like?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Most of Google&#8217;s API (Gemini included) follow a constant error-body structure when you exceed a quota. A typical 429 response looks roughly like this.<\/p>\n<p>Two fields matter most in practice: status tells you it is specifically a quota problem (not an auth or validation error), and the RetryInfo detail tells you exactly how long to wait before your next attempt is likely to succeed. Parsing this properly, instead of retrying on a fixed timer, is what separates a resilient integration from one that keeps tripping the same limit.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"GitHub-API-Rate-Limit-Why-You-See-60-vs-5000-RequestsHour\"><\/span>GitHub API Rate Limit: Why You See 60 vs. 5,000 Requests\/Hour<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>GitHub REST API rate limit depends completely on how you are authenticating:<\/p>\n<table>\n<tbody>\n<tr>\n<td>Client Type<\/td>\n<td>Rate Limit<\/td>\n<\/tr>\n<tr>\n<td>Unauthenticated request (by IP address)<\/td>\n<td>60 requests\/hour<\/td>\n<\/tr>\n<tr>\n<td>Authenticated user (personal access token)<\/td>\n<td>5,000 requests\/hour<\/td>\n<\/tr>\n<tr>\n<td>GitHub App \/ OAuth App on Enterprise Cloud org<\/td>\n<td>Up to 15,000 requests\/hour<\/td>\n<\/tr>\n<tr>\n<td>GraphQL API (points-based)<\/td>\n<td>5,000 points\/hour per user<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>According to <a href=\"https:\/\/docs.github.com\/en\/rest\/using-the-rest-api\/rate-limits-for-the-rest-api?apiVersion=2026-03-10\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">GitHub&#8217;s own documentation<\/a>, the single most common fix for hitting the 60-requests-per-hour wall is simply authenticating your requests with a personal access token &#8211; that alone takes you to 5,000 requests per hour.<\/p>\n<p>GitHub also enforces separate secondary rate limits (like concurrent request caps and content-creation limits) to stop abuse, which show up even if you are nowhere near your primary limit &#8211; so if you are still getting blocked after authenticating, check for rapid concurrent calls or high-frequency writes, not only your hourly total.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Notion-API-Rate-Limit-on-the-Free-Tier-And-Every-Tier\"><\/span>Notion API Rate Limit on the Free Tier (And Every Tier)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A common misconception is that Notion&#8217;s free tier has a stricter API rate limit than paid plans. It doesn&#8217;t. According to <a href=\"https:\/\/developers.notion.com\/reference\/request-limits\" target=\"_blank\" rel=\"noopener\">Notion&#8217;s official documentation<\/a>, every integration &#8211; regardless of workspace plan &#8211; is limited to an average of 3 requests per second, with some short bursts tolerated above that average.<\/p>\n<p>Requests beyond this return a rate_limited error and an HTTP 429, with a Retry-After header telling you exactly how long to back off.<\/p>\n<p>Where this actually blocks developers is bulk operations &#8211; syncing a database, bulk-updating page properties, or importing a CSV of records. Twenty rows updated with a timestamp write each can burn through the limit in under a second.<\/p>\n<p>The fix is not a plan upgrade; it&#8217;s architecture: batch block writes where the API allows it, add small delays between calls in tools like Zapier or Make, and implement exponential backoff for anything sent programmatically.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"API-Gateways-Management-Platforms-Where-Rate-Limiting-Actually-Gets-Enforced\"><\/span>API Gateways &amp; Management Platforms: Where Rate Limiting Actually Gets Enforced<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Everything above describes rate limiting from the outside &#8211; what you see when an API stops you. But if you are the one building the API, rate limiting rarely lives in your application code directly.<\/p>\n<p>It lives in an API gateway: a layer that sits in front of your services and handles auth, routing, logging, and rate limiting before a request ever reaches your backend.<\/p>\n<p>This is also where most of the practical, day-to-day work happens &#8211; setting limits per API key, watching traffic patterns, and keeping public-facing APIs responsive even when one client sends a lot more traffic than the rest.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%9E%A4-Setting-Limits-Per-API-Key-Not-Just-Per-App\"><\/span>\u27a4 Setting Limits Per API Key, Not Just Per App<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A single flat limit for your whole API rarely works once you have real customers. Production setups almost always enforce limits per API key (sometimes stacked with a per-IP or per-user limit underneath), so one heavy customer can&#8217;t starve everyone else. This is also how tiered pricing gets built &#8211; a free-tier key might get 100 requests\/hour, while an enterprise key gets 50,000.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%9E%A4-Popular-API-Management-Platforms\"><\/span>\u27a4 Popular API Management Platforms<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Most teams don&#8217;t hand-roll this logic. They use an API gateway or management platform that handles it out of the box:<\/p>\n<table>\n<tbody>\n<tr>\n<td>Platform<\/td>\n<td>Typical Use Case<\/td>\n<\/tr>\n<tr>\n<td>Kong<\/td>\n<td>Open-source gateway, widely used for microservices and internal APIs<\/td>\n<\/tr>\n<tr>\n<td>AWS API Gateway<\/td>\n<td>Native rate limiting, throttling, and usage plans for AWS-hosted APIs<\/td>\n<\/tr>\n<tr>\n<td>Apigee (Google Cloud)<\/td>\n<td>Enterprise-grade API management with analytics and monetization<\/td>\n<\/tr>\n<tr>\n<td>Cloudflare<\/td>\n<td>Edge-level rate limiting and abuse protection, close to the end user<\/td>\n<\/tr>\n<tr>\n<td>Zuplo<\/td>\n<td>Code-first, developer-focused API management with rate limiting as a core feature<\/td>\n<\/tr>\n<tr>\n<td>Tyk<\/td>\n<td>Open-source alternative aimed at hybrid and multi-cloud API teams<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>None of these are a magical solution to the problem; a gateway enforces the rules, but someone still has to decide what those rules should be for your specific traffic and business model. That decision is where most teams underinvest.<\/p>\n<p>For regulated banking and core fintech platforms specifically, this gateway layer usually needs to do more than only throttle requests &#8211; it has to connect fintechs, regulators, and payment networks securely at the same time.<\/p>\n<p>That&#8217;s the exact layer our <a href=\"https:\/\/www.nimbleappgenie.com\/fintech\/banking-software-development\" target=\"_blank\" rel=\"noopener\">banking software development<\/a> team builds: OAuth 2.0 security, rate limiting, and a partner developer portal in one piece of infrastructure, not three separate bolt-ons.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%9E%A4-Tracking-API-Traffic-Patterns-Before-You-Set-A-Limit\"><\/span>\u27a4 Tracking API Traffic Patterns Before You Set A Limit<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Advanced API management tools are only as good as the traffic data feeding them. Before locking in a number, it&#8217;s worth tracking real API traffic for a few weeks: peak hours, which endpoints get hit hardest, and which clients send bursty vs. steady load. Setting a limit without this data almost always means guessing too low (blocking legitimate users) or too high (leaving the API exposed).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%9E%A4-Why-This-Matters-More-For-Payment-And-Public-APIs\"><\/span>\u27a4\u00a0Why This Matters More For Payment And Public APIs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The stakes go up considerably for two categories:<\/p>\n<h4>1. Public APIs<\/h4>\n<p>An API opened up to external developers, as opposed to an internal or partner API, faces unpredictable, sometimes adversarial traffic. Public APIs need gateway-level protection from day one, not code-level patches added after abuse shows up.<\/p>\n<h4>2. Payment APIs<\/h4>\n<p>A rate-limited or unstable payment API doesn\u2019t only trouble a developer; it can fail a live transaction. Providers like Plaid and Stripe enforce strict per-key limits precisely because payment infrastructure has to stay stable under load.<\/p>\n<p>We go deeper on choosing and integrating payment and wallet APIs specifically in our <a href=\"https:\/\/www.nimbleappgenie.com\/blogs\/ewallet-apis\/\" target=\"_blank\" rel=\"noopener\">guide to eWallet API integration<\/a>.<\/p>\n<p>APIs handling large data loads &#8211; bulk exports, batch imports, and reporting endpoints &#8211; need this even more, since a single unthrottled call can tie up backend resources for everyone else on the system.<\/p>\n<p>This is exactly the kind of decision that separates an API that holds up under real traffic from one that becomes a liability the first time usage spikes.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"API-Rate-Limiting-Best-Practices-For-2026\"><\/span>API Rate Limiting Best Practices For 2026<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Whether you are consuming someone else&#8217;s API or designing your own, the same core practices hold up across every platform we have covered.<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-62278 aligncenter\" src=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Rate-Limiting-Best-Practices-for-2026.webp\" alt=\"API Rate Limiting Best Practices for 2026\" width=\"900\" height=\"500\" srcset=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Rate-Limiting-Best-Practices-for-2026.webp 900w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Rate-Limiting-Best-Practices-for-2026-300x167.webp 300w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Rate-Limiting-Best-Practices-for-2026-768x427.webp 768w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Rate-Limiting-Best-Practices-for-2026-680x378.webp 680w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<ul>\n<li aria-level=\"1\">Always Read the Rate-limit Headers: Retry-After, X-RateLimit-Remaining, and similar headers tell you exactly how much room you have left &#8211; don&#8217;t guess.<\/li>\n<li aria-level=\"1\">Use Exponential Backoff with Jitter: Retrying immediately after a 429 usually just triggers another one. Wait, increase the wait each time you retry, and add a small random delay to avoid synchronized retries across multiple clients.<\/li>\n<li aria-level=\"1\">Cache Aggressively: If data doesn&#8217;t change every second, don&#8217;t fetch it every second. Caching cuts real request volume more than almost any other single change.<\/li>\n<li aria-level=\"1\">Batch Requests Where the API Allows It: One request updating 50 records is far cheaper than 50 separate requests.<\/li>\n<li aria-level=\"1\">Set Different Limits for Different Endpoints: A login endpoint and a read-only content endpoint carry very different risk, and should never share the same threshold.<\/li>\n<li aria-level=\"1\">If You are the One Building the API, Move Beyond Static Limits: Postman&#8217;s 2025 State of the API Report specifically recommends dynamic, behavior-based rate limiting over flat requests-per-minute rules, especially now that a growing share of API traffic comes from AI agents rather than humans, which changes what &#8220;normal&#8221; usage even looks like.<\/li>\n<li aria-level=\"1\">Document Your Limits Clearly: A well-documented limit prevents support tickets; an underdocumented one only guarantees confused developers and retries that make the problem worse.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"How-Nimble-AppGenie-Builds-Rate-Limit-Ready-APIs\"><\/span>How Nimble AppGenie Builds Rate-Limit-Ready APIs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Most of the &#8220;API error: rate limit reached&#8221; issues developers deal with are not really about the third-party API &#8211; they are about how the surrounding product was built. An app with no caching layer, no backoff logic, and no monitoring will hit the same wall repeatedly no matter which provider it&#8217;s calling.<\/p>\n<p>At Nimble AppGenie, we design rate limiting and API resilience into the architecture from day one, not as a patch after something goes down in production. Our teams work across:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-API-Development-Integration\"><\/span>\u25ba API Development &amp; Integration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Building and consuming REST, GraphQL, and AI-model APIs with proper throttling, retry logic, and monitoring baked in.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-AI-Integration\"><\/span>\u25ba AI Integration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Production-grade implementations of Gemini, Claude, and OpenAI with usage tracking, cost controls, and model fallbacks.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-Fintech-API-Integrations\"><\/span>\u25ba Fintech API Integrations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Connecting core banking, KYC, payments, and lending APIs, where uptime, rate limits, and compliance all have to hold at once.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%96%BA-Security-Compliance-First-Engineering\"><\/span>\u25ba Security &amp; Compliance-First Engineering<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Our delivery standards align with ISO 27001, PCI-DSS, and GDPR, which matters directly for how rate limiting and abuse protection are implemented on regulated platforms.<\/p>\n<p>If your team is integrating AI APIs, building a fintech product, or just tired of production breaking every time traffic spikes, our engineers can review your current API setup and show you exactly where the risk sits &#8211; free of charge.<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-62279 aligncenter\" src=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Building-an-API-and-not-sure-which-model-fits-your-product_.webp\" alt=\"api rate limit error fix\" width=\"900\" height=\"350\" srcset=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Building-an-API-and-not-sure-which-model-fits-your-product_.webp 900w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Building-an-API-and-not-sure-which-model-fits-your-product_-300x117.webp 300w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Building-an-API-and-not-sure-which-model-fits-your-product_-768x299.webp 768w, https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Building-an-API-and-not-sure-which-model-fits-your-product_-680x264.webp 680w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>API rate limiting is not a bug or an inconvenience &#8211; it&#8217;s the mechanism that keeps every API you rely on stable for everyone using it.<\/p>\n<p>The specifics change from platform to platform: Claude Code separates subscription limits from API limits, Gemini adds spend-based caps on top of RPM\/TPM, GitHub rewards authentication with a much higher ceiling, and Notion applies the same 3-requests-per-second rule no matter what plan you are on.<\/p>\n<p>But the underlying fixes &#8211; backoff, batching, caching, and reading the headers instead of guessing &#8211; work almost everywhere.<\/p>\n<p>If you are past the point of patching around 429 errors and need an API or AI integration that&#8217;s actually built to handle real traffic, that&#8217;s exactly the kind of problem our team solves every day. Get in touch with Nimble AppGenie, and we will help you get it right the first time.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"FAQs\"><\/span><span id=\"FAQs\" class=\"ez-toc-section\"><\/span>FAQs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"faq-parent\">\n<div id=\"accordionExample\" class=\"accordion\">\n<div class=\"accordion-item\">\n<p id=\"headingOne\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseOne\" aria-expanded=\"false\" aria-controls=\"collapseOne\">What is API rate limiting?<br \/>\n<\/button><\/p>\n<div id=\"collapseOne\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingOne\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">API rate limiting is a rule set that restricts how many requests a client can send to an API within a given time window (per second, minute, hour, or day). Exceeding it returns an HTTP 429 &#8220;Too Many Requests&#8221; error instead of the requested data.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingTwo\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseTwo\" aria-expanded=\"false\" aria-controls=\"collapseTwo\">What&#8217;s the difference between API rate limiting and API restrictions?<br \/>\n<\/button><\/p>\n<div id=\"collapseTwo\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingTwo\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">Rate limiting specifically controls request frequency. &#8220;API restrictions&#8221; is a broader term that can also cover IP allow-lists, geographic blocks, scopes, and plan-based access limits. Rate limiting is one type of restriction among several.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingThree\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseThree\" aria-expanded=\"false\" aria-controls=\"collapseThree\">Why do I keep getting &#8220;API error: rate limit reached&#8221; in Claude Code?<br \/>\n<\/button><\/p>\n<div id=\"collapseThree\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingThree\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">This message can come from a subscription usage allowance (Pro\/Max rolling windows) or from API-based RPM\/TPM\/OTPM limits, depending on how you&#8217;re billed. Check which system applies before switching models, waiting for a reset, or requesting a limit increase.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingFour\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseFour\" aria-expanded=\"false\" aria-controls=\"collapseFour\">What are Gemini&#8217;s API rate limits?<br \/>\n<\/button><\/p>\n<div id=\"collapseFour\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingFour\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">Gemini enforces limits across requests per minute, tokens per minute, requests per day, and images per minute, with free tier accounts getting the tightest caps. It also enforces separate spend-based limits on a rolling 10-minute window, returning a 429 RESOURCE_EXHAUSTED error when exceeded.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingFive\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseFive\" aria-expanded=\"false\" aria-controls=\"collapseFive\">Does Notion&#8217;s API rate limit change on the free tier?<br \/>\n<\/button><\/p>\n<div id=\"collapseFive\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingFive\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">No. Every Notion integration, on every workspace plan, is limited to an average of 3 requests per second. Free tier users don&#8217;t get a lower ceiling; the limit is the same across free, paid, and enterprise workspaces.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingSix\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseSix\" aria-expanded=\"false\" aria-controls=\"collapseSix\">What is GitHub&#8217;s API rate limit?<br \/>\n<\/button><\/p>\n<div id=\"collapseSix\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingSix\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">Unauthenticated requests are limited to 60 per hour by IP address. Authenticated requests using a personal access token get 5,000 per hour, and GitHub Apps on Enterprise Cloud organizations can reach up to 15,000 per hour.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingSeven\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseSeven\" aria-expanded=\"false\" aria-controls=\"collapseSeven\">What does an API rate-limit response body look like?<br \/>\n<\/button><\/p>\n<div id=\"collapseSeven\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingSeven\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">Most APIs return a 429 status with a JSON body describing the error type and a retry delay. Google&#8217;s APIs, for example, return a &#8220;RESOURCE_EXHAUSTED&#8221; status along with a RetryInfo object stating how many seconds to wait before retrying.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingEight\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseEight\" aria-expanded=\"false\" aria-controls=\"collapseEight\">Do I need an API gateway to enforce rate limiting?<br \/>\n<\/button><\/p>\n<div id=\"collapseEight\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingEight\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">You don&#8217;t strictly need one for a small internal API, but for any production or public-facing API, a gateway (Kong, AWS API Gateway, Apigee, Cloudflare, Zuplo, Tyk) is the standard way to enforce per-key limits, monitor traffic patterns, and keep the API responsive without adding that logic into every backend service by hand.<\/div>\n<\/div>\n<\/div>\n<div class=\"accordion-item\">\n<p id=\"headingNine\" class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseNine\" aria-expanded=\"false\" aria-controls=\"collapseNine\">What are the best practices for API rate limiting in 2026?<br \/>\n<\/button><\/p>\n<div id=\"collapseNine\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingNine\" data-bs-parent=\"#accordionExample\">\n<div class=\"accordion-body\">Use exponential backoff with jitter, respect rate-limit headers, cache aggressively, batch requests, apply different limits per endpoint based on risk, and if you&#8217;re building the API, move toward dynamic, behavior-based limiting rather than flat requests-per-minute rules.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What is API rate limiting?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"API rate limiting is a rule set that restricts how many requests a client can send to an API within a given time window (per second, minute, hour, or day). Exceeding it returns an HTTP 429 \\\"Too Many Requests\\\" error instead of the requested data.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What's the difference between API rate limiting and API restrictions?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Rate limiting specifically controls request frequency. \\\"API restrictions\\\" is a broader term that can also cover IP allow-lists, geographic blocks, scopes, and plan-based access limits. Rate limiting is one type of restriction among several.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Why do I keep getting \"API error: rate limit reached\" in Claude Code?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"This message can come from a subscription usage allowance (Pro\/Max rolling windows) or from API-based RPM\/TPM\/OTPM limits, depending on how you're billed. Check which system applies before switching models, waiting for a reset, or requesting a limit increase.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What are Gemini's API rate limits?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Gemini enforces limits across requests per minute, tokens per minute, requests per day, and images per minute, with free tier accounts getting the tightest caps. It also enforces separate spend-based limits on a rolling 10-minute window, returning a 429 RESOURCE_EXHAUSTED error when exceeded.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Does Notion's API rate limit change on the free tier?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"No. Every Notion integration, on every workspace plan, is limited to an average of 3 requests per second. Free tier users don't get a lower ceiling; the limit is the same across free, paid, and enterprise workspaces.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is GitHub's API rate limit?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Unauthenticated requests are limited to 60 per hour by IP address. Authenticated requests using a personal access token get 5,000 per hour, and GitHub Apps on Enterprise Cloud organizations can reach up to 15,000 per hour.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What does an API rate-limit response body look like?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Most APIs return a 429 status with a JSON body describing the error type and a retry delay. Google's APIs, for example, return a \\\"RESOURCE_EXHAUSTED\\\" status along with a RetryInfo object stating how many seconds to wait before retrying.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Do I need an API gateway to enforce rate limiting?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"You don't strictly need one for a small internal API, but for any production or public-facing API, a gateway (Kong, AWS API Gateway, Apigee, Cloudflare, Zuplo, Tyk) is the standard way to enforce per-key limits, monitor traffic patterns, and keep the API responsive without adding that logic into every backend service by hand.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What are the best practices for API rate limiting in 2026?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Use exponential backoff with jitter, respect rate-limit headers, cache aggressively, batch requests, apply different limits per endpoint based on risk, and if you're building the API, move toward dynamic, behavior-based limiting rather than flat requests-per-minute rules.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Key Takeaways: API rate limiting caps how many requests you can send to an API in a set time window [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":62280,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3221],"tags":[],"class_list":["post-62272","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>API Error: Rate Limit Reached&quot; (Claude, Gemini, GitHub<\/title>\n<meta name=\"description\" content=\"Hitting &quot;API error: rate limit reached&quot;? Learn why it happens on Claude, Claude Code, Gemini, GitHub &amp; Notion, &amp; how API rate limiting works.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/posts\/62272\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"API Error: Rate Limit Reached&quot; (Claude, Gemini, GitHub\" \/>\n<meta property=\"og:description\" content=\"Hitting &quot;API error: rate limit reached&quot;? Learn why it happens on Claude, Claude Code, Gemini, GitHub &amp; Notion, &amp; how API rate limiting works.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/\" \/>\n<meta property=\"og:site_name\" content=\"nimbleappgenie\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nimbleappgenielondon\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-03T13:52:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Error_-Rate-Limit-Reached.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"617\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Niketan Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Error_-Rate-Limit-Reached.png\" \/>\n<meta name=\"twitter:creator\" content=\"@nimbleappgenie\" \/>\n<meta name=\"twitter:site\" content=\"@NimbleAppGenie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Niketan Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/\"},\"author\":{\"name\":\"Niketan Sharma\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/person\/dc7db7dbfd08b8ae9e3852f509526537\"},\"headline\":\"\u201cAPI Error: Rate Limit Reached\u201d &#8211; Why It Happens on Claude, Gemini, GitHub &#038; Notion (And How to Fix It)\",\"datePublished\":\"2026-08-03T13:52:32+00:00\",\"dateModified\":\"2026-08-03T13:52:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/\"},\"wordCount\":3850,\"publisher\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp\",\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/\",\"url\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/\",\"name\":\"API Error: Rate Limit Reached\\\" (Claude, Gemini, GitHub\",\"isPartOf\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp\",\"datePublished\":\"2026-08-03T13:52:32+00:00\",\"dateModified\":\"2026-08-03T13:52:32+00:00\",\"description\":\"Hitting \\\"API error: rate limit reached\\\"? Learn why it happens on Claude, Claude Code, Gemini, GitHub & Notion, & how API rate limiting works.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage\",\"url\":\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp\",\"contentUrl\":\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp\",\"width\":1080,\"height\":617,\"caption\":\"api rate limit error fix\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nimbleappgenie.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u201cAPI Error: Rate Limit Reached\u201d &#8211; Why It Happens on Claude, Gemini, GitHub &#038; Notion (And How to Fix It)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#website\",\"url\":\"https:\/\/www.nimbleappgenie.com\/blogs\/\",\"name\":\"nimbleappgenie\",\"description\":\"Expert Insights on Fintech, AI &amp; Mobile App Development\",\"publisher\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nimbleappgenie.com\/blogs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#organization\",\"name\":\"Nimble AppGenie\",\"url\":\"https:\/\/www.nimbleappgenie.com\/blogs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/logo\/image\/\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Nimble AppGenie\"},\"image\":{\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/nimbleappgenielondon\",\"https:\/\/x.com\/NimbleAppGenie\",\"https:\/\/www.instagram.com\/nimbleappgenie\/\",\"https:\/\/www.linkedin.com\/company\/nimble-appgenie\",\"https:\/\/www.pinterest.co.uk\/nimbleappgenie1\/\",\"https:\/\/www.youtube.com\/@nimbleappgenie\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/person\/dc7db7dbfd08b8ae9e3852f509526537\",\"name\":\"Niketan Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/litespeed\/avatar\/3f6cd3a0525c6c55cb863bdc84c3b68a.jpg?ver=1785758151\",\"contentUrl\":\"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/litespeed\/avatar\/3f6cd3a0525c6c55cb863bdc84c3b68a.jpg?ver=1785758151\",\"caption\":\"Niketan Sharma\"},\"description\":\"Niketan Sharma, CTO, Nimble AppGenie, is a tech enthusiast with more than a decade of experience in delivering high-value solutions that allow a brand to penetrate the market easily. With a strong hold on mobile app development, he is actively working to help businesses identify the potential of digital transformation by sharing insightful statistics, guides &amp; blogs.\",\"sameAs\":[\"https:\/\/x.com\/nimbleappgenie\"],\"url\":\"https:\/\/www.nimbleappgenie.com\/blogs\/author\/nimbleappgenie\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"API Error: Rate Limit Reached\" (Claude, Gemini, GitHub","description":"Hitting \"API error: rate limit reached\"? Learn why it happens on Claude, Claude Code, Gemini, GitHub & Notion, & how API rate limiting works.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/posts\/62272","og_locale":"en_US","og_type":"article","og_title":"API Error: Rate Limit Reached\" (Claude, Gemini, GitHub","og_description":"Hitting \"API error: rate limit reached\"? Learn why it happens on Claude, Claude Code, Gemini, GitHub & Notion, & how API rate limiting works.","og_url":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/","og_site_name":"nimbleappgenie","article_publisher":"https:\/\/www.facebook.com\/nimbleappgenielondon","article_published_time":"2026-08-03T13:52:32+00:00","og_image":[{"width":1080,"height":617,"url":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Error_-Rate-Limit-Reached.png","type":"image\/png"}],"author":"Niketan Sharma","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/API-Error_-Rate-Limit-Reached.png","twitter_creator":"@nimbleappgenie","twitter_site":"@NimbleAppGenie","twitter_misc":{"Written by":"Niketan Sharma","Est. reading time":"19 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#article","isPartOf":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/"},"author":{"name":"Niketan Sharma","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/person\/dc7db7dbfd08b8ae9e3852f509526537"},"headline":"\u201cAPI Error: Rate Limit Reached\u201d &#8211; Why It Happens on Claude, Gemini, GitHub &#038; Notion (And How to Fix It)","datePublished":"2026-08-03T13:52:32+00:00","dateModified":"2026-08-03T13:52:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/"},"wordCount":3850,"publisher":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#organization"},"image":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp","articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/","url":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/","name":"API Error: Rate Limit Reached\" (Claude, Gemini, GitHub","isPartOf":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage"},"image":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp","datePublished":"2026-08-03T13:52:32+00:00","dateModified":"2026-08-03T13:52:32+00:00","description":"Hitting \"API error: rate limit reached\"? Learn why it happens on Claude, Claude Code, Gemini, GitHub & Notion, & how API rate limiting works.","breadcrumb":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#primaryimage","url":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp","contentUrl":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/uploads\/2026\/08\/Feature_image-12.webp","width":1080,"height":617,"caption":"api rate limit error fix"},{"@type":"BreadcrumbList","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/api-rate-limit-error-fix\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nimbleappgenie.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"\u201cAPI Error: Rate Limit Reached\u201d &#8211; Why It Happens on Claude, Gemini, GitHub &#038; Notion (And How to Fix It)"}]},{"@type":"WebSite","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#website","url":"https:\/\/www.nimbleappgenie.com\/blogs\/","name":"nimbleappgenie","description":"Expert Insights on Fintech, AI &amp; Mobile App Development","publisher":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nimbleappgenie.com\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#organization","name":"Nimble AppGenie","url":"https:\/\/www.nimbleappgenie.com\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"Nimble AppGenie"},"image":{"@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nimbleappgenielondon","https:\/\/x.com\/NimbleAppGenie","https:\/\/www.instagram.com\/nimbleappgenie\/","https:\/\/www.linkedin.com\/company\/nimble-appgenie","https:\/\/www.pinterest.co.uk\/nimbleappgenie1\/","https:\/\/www.youtube.com\/@nimbleappgenie"]},{"@type":"Person","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/person\/dc7db7dbfd08b8ae9e3852f509526537","name":"Niketan Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.nimbleappgenie.com\/blogs\/#\/schema\/person\/image\/","url":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/litespeed\/avatar\/3f6cd3a0525c6c55cb863bdc84c3b68a.jpg?ver=1785758151","contentUrl":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-content\/litespeed\/avatar\/3f6cd3a0525c6c55cb863bdc84c3b68a.jpg?ver=1785758151","caption":"Niketan Sharma"},"description":"Niketan Sharma, CTO, Nimble AppGenie, is a tech enthusiast with more than a decade of experience in delivering high-value solutions that allow a brand to penetrate the market easily. With a strong hold on mobile app development, he is actively working to help businesses identify the potential of digital transformation by sharing insightful statistics, guides &amp; blogs.","sameAs":["https:\/\/x.com\/nimbleappgenie"],"url":"https:\/\/www.nimbleappgenie.com\/blogs\/author\/nimbleappgenie\/"}]}},"_links":{"self":[{"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/posts\/62272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/comments?post=62272"}],"version-history":[{"count":5,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/posts\/62272\/revisions"}],"predecessor-version":[{"id":62285,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/posts\/62272\/revisions\/62285"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/media\/62280"}],"wp:attachment":[{"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/media?parent=62272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/categories?post=62272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nimbleappgenie.com\/blogs\/wp-json\/wp\/v2\/tags?post=62272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}