[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fapi\u002Frate-limits":3},{"_path":4,"title":5,"description":6,"navigation":7,"image":13,"head":18,"body":32},"\u002Fdocs\u002Fapi\u002Frate-limits","API Rate Limits · Waitlister Documentation","Learn about Waitlister API rate limits and best practices for handling them in your applications.",{"title":8,"parent":9,"group":10,"description":11,"order":12},"Rate Limits","API Reference","Advanced","Understand API rate limits and best practices for handling them.",3,{"src":14,"width":15,"height":16,"alt":17},"https:\u002F\u002Ffirebasestorage.googleapis.com\u002Fv0\u002Fb\u002Fwaitinglist-app-c24fc.appspot.com\u002Fo\u002Fdocs-og-image.png?alt=media&token=85e60b24-c882-4f84-aa9e-ef85e1ae4bb5",400,300,"Waitlister API Rate Limits",{"meta":19},[20,23,26,29],{"name":21,"content":22},"keywords","api rate limits, request throttling, rate limiting, api best practices",{"name":24,"content":25},"robots","index, follow",{"name":27,"content":28},"author","Waitlister",{"name":30,"content":31},"copyright","© 2026 Waitlister",{"type":33,"children":34,"toc":539},"root",[35,48,55,60,67,72,79,181,188,271,276,294,300,305,378,383,393,399,404,450,456,461,484,490,534],{"type":36,"tag":37,"props":38,"children":39},"element","p",{},[40],{"type":36,"tag":41,"props":42,"children":45},"span",{"className":43},[44],"secondary-heading",[46],{"type":47,"value":9},"text",{"type":36,"tag":49,"props":50,"children":52},"h1",{"id":51},"api-rate-limits",[53],{"type":47,"value":54},"API Rate Limits",{"type":36,"tag":37,"props":56,"children":57},{},[58],{"type":47,"value":59},"To ensure a consistent experience for all users, the Waitlister API implements rate limiting. This page explains our rate limits and provides best practices for handling them in your applications.",{"type":36,"tag":61,"props":62,"children":64},"h2",{"id":63},"rate-limit-overview",[65],{"type":47,"value":66},"Rate Limit Overview",{"type":36,"tag":37,"props":68,"children":69},{},[70],{"type":47,"value":71},"Rate limits vary based on your plan and endpoint type. The limits are based on requests per minute (RPM) from a single API key.",{"type":36,"tag":73,"props":74,"children":76},"h3",{"id":75},"rate-limits-by-plan-and-endpoint-type",[77],{"type":47,"value":78},"Rate Limits by Plan and Endpoint Type",{"type":36,"tag":80,"props":81,"children":82},"table",{},[83,107],{"type":36,"tag":84,"props":85,"children":86},"thead",{},[87],{"type":36,"tag":88,"props":89,"children":90},"tr",{},[91,97,102],{"type":36,"tag":92,"props":93,"children":94},"th",{},[95],{"type":47,"value":96},"Plan",{"type":36,"tag":92,"props":98,"children":99},{},[100],{"type":47,"value":101},"Subscriber Endpoints",{"type":36,"tag":92,"props":103,"children":104},{},[105],{"type":47,"value":106},"Log View Endpoint",{"type":36,"tag":108,"props":109,"children":110},"tbody",{},[111,129,145,163],{"type":36,"tag":88,"props":112,"children":113},{},[114,120,125],{"type":36,"tag":115,"props":116,"children":117},"td",{},[118],{"type":47,"value":119},"Free",{"type":36,"tag":115,"props":121,"children":122},{},[123],{"type":47,"value":124},"No API access",{"type":36,"tag":115,"props":126,"children":127},{},[128],{"type":47,"value":124},{"type":36,"tag":88,"props":130,"children":131},{},[132,137,141],{"type":36,"tag":115,"props":133,"children":134},{},[135],{"type":47,"value":136},"Launch",{"type":36,"tag":115,"props":138,"children":139},{},[140],{"type":47,"value":124},{"type":36,"tag":115,"props":142,"children":143},{},[144],{"type":47,"value":124},{"type":36,"tag":88,"props":146,"children":147},{},[148,153,158],{"type":36,"tag":115,"props":149,"children":150},{},[151],{"type":47,"value":152},"Growth (Standard API)",{"type":36,"tag":115,"props":154,"children":155},{},[156],{"type":47,"value":157},"60 RPM",{"type":36,"tag":115,"props":159,"children":160},{},[161],{"type":47,"value":162},"200 RPM",{"type":36,"tag":88,"props":164,"children":165},{},[166,171,176],{"type":36,"tag":115,"props":167,"children":168},{},[169],{"type":47,"value":170},"Business (Priority API)",{"type":36,"tag":115,"props":172,"children":173},{},[174],{"type":47,"value":175},"120 RPM",{"type":36,"tag":115,"props":177,"children":178},{},[179],{"type":47,"value":180},"400 RPM",{"type":36,"tag":182,"props":183,"children":185},"h4",{"id":184},"endpoint-categories",[186],{"type":47,"value":187},"Endpoint Categories",{"type":36,"tag":189,"props":190,"children":191},"ul",{},[192,255],{"type":36,"tag":193,"props":194,"children":195},"li",{},[196,201,203],{"type":36,"tag":197,"props":198,"children":199},"strong",{},[200],{"type":47,"value":101},{"type":47,"value":202},": All endpoints related to managing subscribers, including:",{"type":36,"tag":189,"props":204,"children":205},{},[206,220,232,244],{"type":36,"tag":193,"props":207,"children":208},{},[209,211,218],{"type":47,"value":210},"Adding subscribers (",{"type":36,"tag":212,"props":213,"children":215},"code",{"className":214},[],[216],{"type":47,"value":217},"\u002Fsign-up",{"type":47,"value":219},")",{"type":36,"tag":193,"props":221,"children":222},{},[223,225,231],{"type":47,"value":224},"Listing subscribers (",{"type":36,"tag":212,"props":226,"children":228},{"className":227},[],[229],{"type":47,"value":230},"\u002Fsubscribers",{"type":47,"value":219},{"type":36,"tag":193,"props":233,"children":234},{},[235,237,243],{"type":47,"value":236},"Getting subscriber details (",{"type":36,"tag":212,"props":238,"children":240},{"className":239},[],[241],{"type":47,"value":242},"\u002Fsubscribers\u002F{id-or-email}",{"type":47,"value":219},{"type":36,"tag":193,"props":245,"children":246},{},[247,249,254],{"type":47,"value":248},"Updating subscribers (",{"type":36,"tag":212,"props":250,"children":252},{"className":251},[],[253],{"type":47,"value":242},{"type":47,"value":219},{"type":36,"tag":193,"props":256,"children":257},{},[258,262,264,270],{"type":36,"tag":197,"props":259,"children":260},{},[261],{"type":47,"value":106},{"type":47,"value":263},": The analytics endpoint for logging page views (",{"type":36,"tag":212,"props":265,"children":267},{"className":266},[],[268],{"type":47,"value":269},"\u002Flog-view",{"type":47,"value":219},{"type":36,"tag":37,"props":272,"children":273},{},[274],{"type":47,"value":275},"These limits help in the following ways:",{"type":36,"tag":189,"props":277,"children":278},{},[279,284,289],{"type":36,"tag":193,"props":280,"children":281},{},[282],{"type":47,"value":283},"Consistent performance for all users",{"type":36,"tag":193,"props":285,"children":286},{},[287],{"type":47,"value":288},"Protection against accidental infinite loops",{"type":36,"tag":193,"props":290,"children":291},{},[292],{"type":47,"value":293},"Prevention of API abuse",{"type":36,"tag":61,"props":295,"children":297},{"id":296},"rate-limit-headers",[298],{"type":47,"value":299},"Rate Limit Headers",{"type":36,"tag":37,"props":301,"children":302},{},[303],{"type":47,"value":304},"When you make an API request, we include headers that provide information about your current rate limit status.",{"type":36,"tag":80,"props":306,"children":307},{},[308,324],{"type":36,"tag":84,"props":309,"children":310},{},[311],{"type":36,"tag":88,"props":312,"children":313},{},[314,319],{"type":36,"tag":92,"props":315,"children":316},{},[317],{"type":47,"value":318},"Header",{"type":36,"tag":92,"props":320,"children":321},{},[322],{"type":47,"value":323},"Description",{"type":36,"tag":108,"props":325,"children":326},{},[327,344,361],{"type":36,"tag":88,"props":328,"children":329},{},[330,339],{"type":36,"tag":115,"props":331,"children":332},{},[333],{"type":36,"tag":212,"props":334,"children":336},{"className":335},[],[337],{"type":47,"value":338},"X-RateLimit-Limit",{"type":36,"tag":115,"props":340,"children":341},{},[342],{"type":47,"value":343},"The maximum number of requests allowed per minute",{"type":36,"tag":88,"props":345,"children":346},{},[347,356],{"type":36,"tag":115,"props":348,"children":349},{},[350],{"type":36,"tag":212,"props":351,"children":353},{"className":352},[],[354],{"type":47,"value":355},"X-RateLimit-Remaining",{"type":36,"tag":115,"props":357,"children":358},{},[359],{"type":47,"value":360},"The number of requests remaining in the current rate limit window",{"type":36,"tag":88,"props":362,"children":363},{},[364,373],{"type":36,"tag":115,"props":365,"children":366},{},[367],{"type":36,"tag":212,"props":368,"children":370},{"className":369},[],[371],{"type":47,"value":372},"X-RateLimit-Reset",{"type":36,"tag":115,"props":374,"children":375},{},[376],{"type":47,"value":377},"The time at which the current rate limit window resets (Unix timestamp)",{"type":36,"tag":37,"props":379,"children":380},{},[381],{"type":47,"value":382},"For example:",{"type":36,"tag":384,"props":385,"children":387},"pre",{"code":386},"X-RateLimit-Limit: 60\nX-RateLimit-Remaining: 45\nX-RateLimit-Reset: 1683741600\n",[388],{"type":36,"tag":212,"props":389,"children":391},{"__ignoreMap":390},"",[392],{"type":47,"value":386},{"type":36,"tag":61,"props":394,"children":396},{"id":395},"increasing-your-rate-limits",[397],{"type":47,"value":398},"Increasing Your Rate Limits",{"type":36,"tag":37,"props":400,"children":401},{},[402],{"type":47,"value":403},"If you need higher rate limits:",{"type":36,"tag":405,"props":406,"children":407},"ol",{},[408,431],{"type":36,"tag":193,"props":409,"children":410},{},[411,416,418],{"type":36,"tag":197,"props":412,"children":413},{},[414],{"type":47,"value":415},"Upgrade Your Plan",{"type":47,"value":417},":",{"type":36,"tag":189,"props":419,"children":420},{},[421,426],{"type":36,"tag":193,"props":422,"children":423},{},[424],{"type":47,"value":425},"The Growth plan provides standard API access with 60 RPM",{"type":36,"tag":193,"props":427,"children":428},{},[429],{"type":47,"value":430},"The Business plan provides priority API access with double the rate limits",{"type":36,"tag":193,"props":432,"children":433},{},[434,439,441,448],{"type":36,"tag":197,"props":435,"children":436},{},[437],{"type":47,"value":438},"Contact Support",{"type":47,"value":440},": For enterprise-level needs, contact us through the ",{"type":36,"tag":442,"props":443,"children":445},"a",{"href":444},"\u002Fcontact",[446],{"type":47,"value":447},"public contact form",{"type":47,"value":449}," to discuss custom rate limits.",{"type":36,"tag":61,"props":451,"children":453},{"id":452},"monitoring-your-api-usage",[454],{"type":47,"value":455},"Monitoring Your API Usage",{"type":36,"tag":37,"props":457,"children":458},{},[459],{"type":47,"value":460},"To prevent hitting rate limits, monitor your API usage regularly.",{"type":36,"tag":189,"props":462,"children":463},{},[464,469,474,479],{"type":36,"tag":193,"props":465,"children":466},{},[467],{"type":47,"value":468},"Check rate limit headers in your API responses",{"type":36,"tag":193,"props":470,"children":471},{},[472],{"type":47,"value":473},"Implement logging of API calls and response headers",{"type":36,"tag":193,"props":475,"children":476},{},[477],{"type":47,"value":478},"Set up alerts when approaching rate limits",{"type":36,"tag":193,"props":480,"children":481},{},[482],{"type":47,"value":483},"Review your API usage patterns to identify optimization opportunities",{"type":36,"tag":73,"props":485,"children":487},{"id":486},"best-practices-for-rate-limit-management",[488],{"type":47,"value":489},"Best Practices for Rate Limit Management",{"type":36,"tag":405,"props":491,"children":492},{},[493,514,524],{"type":36,"tag":193,"props":494,"children":495},{},[496,501,503],{"type":36,"tag":197,"props":497,"children":498},{},[499],{"type":47,"value":500},"Implement Exponential Backoff",{"type":47,"value":502},": When receiving a 429 error, wait and retry with increasing delays",{"type":36,"tag":384,"props":504,"children":509},{"code":505,"language":506,"meta":390,"className":507},"function fetchWithBackoff(url, options, attempt = 1) {\n  return fetch(url, options)\n    .then(response => {\n      if (response.status === 429 && attempt \u003C= 5) {\n        const delay = Math.min(Math.pow(2, attempt) * 1000, 30000);\n        return new Promise(resolve => setTimeout(resolve, delay))\n          .then(() => fetchWithBackoff(url, options, attempt + 1));\n      }\n      return response;\n    });\n}\n","javascript",[508],"language-javascript",[510],{"type":36,"tag":212,"props":511,"children":512},{"__ignoreMap":390},[513],{"type":47,"value":505},{"type":36,"tag":193,"props":515,"children":516},{},[517,522],{"type":36,"tag":197,"props":518,"children":519},{},[520],{"type":47,"value":521},"Batch Requests When Possible",{"type":47,"value":523},": Instead of making many small requests, batch operations where appropriate",{"type":36,"tag":193,"props":525,"children":526},{},[527,532],{"type":36,"tag":197,"props":528,"children":529},{},[530],{"type":47,"value":531},"Cache Responses",{"type":47,"value":533},": Store responses locally to reduce the number of API calls needed",{"type":36,"tag":37,"props":535,"children":536},{},[537],{"type":47,"value":538},"By following these best practices, you can make sure your application interacts smoothly with the Waitlister API while respecting the rate limits.",{"title":390,"searchDepth":12,"depth":12,"links":540},[541,548,549,550],{"id":63,"depth":542,"text":66,"children":543},2,[544],{"id":75,"depth":12,"text":78,"children":545},[546],{"id":184,"depth":547,"text":187},4,{"id":296,"depth":542,"text":299},{"id":395,"depth":542,"text":398},{"id":452,"depth":542,"text":455,"children":551},[552],{"id":486,"depth":12,"text":489}]