[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"doc-reference\u002Frate-limits":3},{"id":4,"title":5,"author":6,"body":7,"date":215,"description":216,"draft":217,"extension":218,"faq":219,"meta":220,"navigation":221,"path":222,"schemaType":223,"seo":224,"stem":225,"tags":226,"updatedAt":230,"__hash__":231},"content\u002Freference\u002Frate-limits.md","Rate limits","YT2Text Team",{"type":8,"value":9,"toc":207},"minimark",[10,15,19,29,34,37,40,50,53,80,83,96,100,103,158,162,185,189],[11,12,14],"h1",{"id":13},"rate-limits","Rate Limits",[16,17,18],"p",{},"YT2Text uses two different controls:",[20,21,22,26],"ol",{},[23,24,25],"li",{},"request throttling per API key",[23,27,28],{},"plan-based video quotas",[30,31,33],"h2",{"id":32},"request-throttling","Request Throttling",[16,35,36],{},"API-key throttling is enforced with Redis-backed sliding-window logic when Redis is available.",[16,38,39],{},"Default key creation rate limit:",[41,42,43],"ul",{},[23,44,45,49],{},[46,47,48],"code",{},"100"," requests\u002Fhour",[16,51,52],{},"429 responses include:",[41,54,55,60,65,70,75],{},[23,56,57],{},[46,58,59],{},"X-RateLimit-Limit",[23,61,62],{},[46,63,64],{},"X-RateLimit-Used",[23,66,67],{},[46,68,69],{},"X-RateLimit-Remaining",[23,71,72],{},[46,73,74],{},"X-RateLimit-Reset",[23,76,77],{},[46,78,79],{},"Retry-After",[16,81,82],{},"Implementation notes:",[41,84,85,90,93],{},[23,86,87,89],{},[46,88,74],{}," is currently seconds until reset, not a Unix timestamp",[23,91,92],{},"rate-limit headers are only attached on API-key-authenticated requests",[23,94,95],{},"if Redis is unavailable, the current backend falls back to allowing requests through",[30,97,99],{"id":98},"video-quotas","Video Quotas",[16,101,102],{},"These quotas are enforced by plan logic during processing requests.",[104,105,106,123],"table",{},[107,108,109],"thead",{},[110,111,112,116,120],"tr",{},[113,114,115],"th",{},"Plan",[113,117,119],{"align":118},"right","Daily videos",[113,121,122],{"align":118},"Monthly videos",[124,125,126,137,148],"tbody",{},[110,127,128,132,135],{},[129,130,131],"td",{},"free",[129,133,134],{"align":118},"5",[129,136,134],{"align":118},[110,138,139,142,145],{},[129,140,141],{},"plus",[129,143,144],{"align":118},"40",[129,146,147],{"align":118},"200",[110,149,150,153,155],{},[129,151,152],{},"pro",[129,154,48],{"align":118},[129,156,157],{"align":118},"1000",[30,159,161],{"id":160},"related-plan-gates","Related Plan Gates",[41,163,164,167,170,173,176,179,182],{},[23,165,166],{},"API keys: Plus and above",[23,168,169],{},"webhooks: Pro and above",[23,171,172],{},"custom prompts: Pro and above",[23,174,175],{},"batch: Pro and above",[23,177,178],{},"infographics: Pro and above",[23,180,181],{},"AI chat: Pro and above",[23,183,184],{},"PDF export: Pro and above",[30,186,188],{"id":187},"practical-advice","Practical Advice",[41,190,191,197,200],{},[23,192,193,194,196],{},"Back off on 429 responses using ",[46,195,79],{},".",[23,198,199],{},"Track both request throttling and video quotas in your integration.",[23,201,202,203,206],{},"Treat ",[46,204,205],{},"\u002Fapi\u002Fv1\u002Fusage\u002F*"," as diagnostics; enforced plan gates and billing records remain the quota source of truth.",{"title":208,"searchDepth":209,"depth":209,"links":210},"",2,[211,212,213,214],{"id":32,"depth":209,"text":33},{"id":98,"depth":209,"text":99},{"id":160,"depth":209,"text":161},{"id":187,"depth":209,"text":188},"2025-02-01","Current throttling headers and video quota behavior",false,"md",null,{},true,"\u002Freference\u002Frate-limits","TechArticle",{"title":5,"description":216},"reference\u002Frate-limits",[227,228,229],"reference","operations","reliability","2026-03-22","Xjn1unWb7puUVkl7DJQgky_o3gQtzSWzNS0DMB8ld9k",1792448457491]