All three SDKs retry 429 automatically, up to three times, with exponential backoff. For most workloads you do not need to write any handling at all.If you are managing retries yourself, back off exponentially with jitter rather than retrying on a fixed interval — a fleet of workers retrying in lockstep will simply re-collide.
// Raise the retry budget for a bulk backfill.const client = new Moneyline({ maxRetries: 6 });
The most effective lever is usually not concurrency control but avoiding the requests entirely:
Use webhooks instead of polling. A worker polling submission.status every second burns the budget for one deal. Subscribing to submission.processed costs nothing. See webhooks.
Raise limit on list calls. One request at limit=100 does the work of four at the default 25. See pagination.
Batch transaction writes.POST /v1/transactions accepts an array.
Limits are per key, so a separate key for a bulk backfill keeps it from starving
your production traffic.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Moneyline","description":"Open-source, AI-native financial document intelligence. Ingest, classify, parse, enrich, and analyze financial documents through one API.","colors":{"primary":"#495233","light":"#dae9db","dark":"#3f7143"},"logo":{"light":"https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/logo/light.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=76b7fdfc56c24388683b4f0866d1e453","dark":"https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/logo/dark.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=d6d0e5806ff4eb3613fd563dc60f6e94","href":"https://moneyline.co"},"favicon":"https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/favicon.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=ad09942d3d71bbf3551b13b5c3f9e9ec","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","typescript","python","go"]}},"appearance":{"default":"light"},"background":{"color":{"light":"#f5f5f5","dark":"#14150f"}},"navbar":{"links":[{"href":"https://app.moneyline.co","label":"Dashboard"}],"primary":{"type":"github","href":"https://github.com/paragonhq/moneyline"}},"footer":{"socials":{"github":"https://github.com/paragonhq/moneyline","website":"https://moneyline.co"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"paragon-f28ba471","hasAudioNarration":false,"actualSubdomain":"paragon-f28ba471","customDomains":["docs.moneyline.co"],"gitSource":{"type":"github","owner":"moneyline-co","repo":"moneyline","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ab0d8047721a14a8904b30f","collectionId":"011b6cf4-0482-4f96-a8ea-0cf5814812ac","liveDeploymentHistoryId":"6ab0d8047721a14a8904b30f","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ab0d8047721a14a8904b30f","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API reference","count":311},{"language":"default","tag":"Core resources","count":83},{"language":"default","tag":"Submissions","count":48},{"language":"default","tag":"Analysis \u0026 decisioning","count":47},{"language":"default","tag":"Workflows \u0026 automation","count":38},{"language":"default","tag":"Integrations \u0026 events","count":35},{"language":"default","tag":"Partners \u0026 sharing","count":35},{"language":"default","tag":"Document processing","count":33},{"language":"default","tag":"Account \u0026 organization","count":31},{"language":"default","tag":"Studio","count":27}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes ml-horizon-draw{0%{--ml-horizon:0%}to{--ml-horizon:100%}}:root{--ml-paper:#f5f5f5;--ml-card:#ffffff;--ml-ink:#000000;--ml-ink-muted:#5c5c5c;--ml-accent:#495233;--ml-accent-soft:#dae9db;--ml-line:#e1dddb;--ml-lift:0 1px 2px rgb(0 0 0 / 0.04);--ml-float:0 8px 30px rgb(0 0 0 / 0.08)}:root:not([data-theme=light]){color-scheme:light}.dark,[data-theme=dark]{--ml-paper:#14150f;--ml-card:#1c1e16;--ml-ink:#f2f1ec;--ml-ink-muted:#a8a79f;--ml-accent:#dae9db;--ml-accent-soft:#2b3324;--ml-line:#2e3126;--ml-lift:0 1px 2px rgb(0 0 0 / 0.4);--ml-float:0 8px 30px rgb(0 0 0 / 0.5)}#content-area h1,#content-area h2,#content-area h3{font-weight:400;letter-spacing:.01em}#content-area h1{line-height:1.05}#content-area .eyebrow,#sidebar-content .group-title{font-family:ui-monospace,\"JetBrains Mono\",monospace;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ml-ink-muted)}#navbar{border-bottom:1px dashed var(--ml-line)}#sidebar-content{border-right:1px dashed var(--ml-line)}#table-of-contents{border-left:1px dashed var(--ml-line)}#content-area hr,#content-area::before,.ml-texture{background-color:var(--ml-ink);mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}#content-area hr{height:22px;border:0;border-top:1px dashed var(--ml-line);margin:3rem 0;opacity:.1;mask-image:var(--ml-ridge);-webkit-mask-image:var(--ml-ridge);mask-size:140% 300%;-webkit-mask-size:140% 300%;mask-position:bottom center;-webkit-mask-position:bottom center}#content-area .card,#content-area [data-component-name=Accordion],#content-area [data-component-name=Card]{background-color:var(--ml-card);border:1px dashed var(--ml-line);box-shadow:none}#content-area .card:hover,#content-area [data-component-name=Card]:hover{border-style:solid;border-color:var(--ml-accent)}#content-area::before,.ml-texture{position:absolute;pointer-events:none;z-index:0;mask-size:contain;-webkit-mask-size:contain}#content-area::before{content:\"\";top:0;right:0;width:480px;height:450px;opacity:.05;mask-image:url(/images/textures/corner-fade.webp);-webkit-mask-image:url(/images/textures/corner-fade.webp);mask-position:top right;-webkit-mask-position:top right}#content-area,#content-area>*{position:relative}#content-area>*{z-index:1}.ml-copy{display:inline-flex;align-items:center;gap:.375rem;padding:.125rem .25rem;border-radius:4px;font-family:ui-monospace,\"JetBrains Mono\",monospace;font-size:.8125rem;color:var(--ml-ink-muted);cursor:pointer;background:0 0;border:0;transition:color .15s ease}.ml-copy span{text-decoration:underline dotted;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,var(--ml-ink-muted) 60%,transparent)}.ml-copy:hover,.ml-copy[data-copied=true]{color:var(--ml-accent)}.ml-copy:hover span{text-decoration-color:var(--ml-accent)}.ml-copy:focus-visible{outline:2px solid var(--ml-accent);outline-offset:2px}.ml-lang{font-family:ui-monospace,\"JetBrains Mono\",monospace;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ml-ink-muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}:root{--ml-ridge:url(\"/images/textures/ridge.webp\");--ml-ridge-on-olive:#9aa38c;--ml-ridge-on-carbon:#8a8a8a;--ml-ridge-on-porcelain:#b4b1a9;--ml-ridge-fade:linear-gradient(\n to bottom,\n transparent 34%,\n rgb(0 0 0 / 0.25) 48%,\n rgb(0 0 0 / 0.75) 62%,\n #000 78%\n );--ml-panel-hero-bg:#495233;--ml-panel-hero-ridge:var(--ml-ridge-on-olive);--ml-panel-hero-ridge-alpha:0.5}.ml-panel{position:relative;isolation:isolate;overflow:hidden;border-radius:8px;padding:clamp(1.75rem,4vw,3rem);margin:2.5rem 0}.ml-panel::after{content:\"\";position:absolute;inset-inline:0;bottom:0;height:auto;aspect-ratio:1600/705;transform:translateY(10.4%);z-index:-1;pointer-events:none;mask-image:var(--ml-ridge),var(--ml-ridge-fade);-webkit-mask-image:var(--ml-ridge),var(--ml-ridge-fade);mask-composite:intersect;mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-position:bottom center;-webkit-mask-position:bottom center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}.ml-panel--hero{background-color:var(--ml-panel-hero-bg);color:#f2f1ec}.ml-panel--hero::after{background-color:var(--ml-panel-hero-ridge);opacity:var(--ml-panel-hero-ridge-alpha)}.ml-panel--carbon{background-color:#0b0b0b;color:#f2f1ec}.ml-panel--carbon::after{background-color:var(--ml-ridge-on-carbon);opacity:.4}.ml-panel--porcelain{background-color:var(--ml-card);border:1px dashed var(--ml-line);color:var(--ml-ink)}.ml-panel--porcelain::after{background-color:var(--ml-ridge-on-porcelain);opacity:.42}.ml-panel__kicker{font-family:ui-monospace,\"JetBrains Mono\",monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;opacity:.82;margin:0 0 .75rem}.ml-panel__title{font-family:Fraunces,Georgia,serif;font-weight:400;font-size:clamp(1.5rem,3.2vw,2.25rem);line-height:1.05;letter-spacing:.01em;margin:0 0 .5rem}.ml-panel__body{max-width:46ch;margin:0 0 1.5rem;opacity:.92;line-height:1.6}.ml-panel__actions{display:flex;flex-wrap:wrap;gap:.75rem}.ml-panel__cta{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;border-radius:10px;font-size:.875rem;letter-spacing:.02em;text-decoration:none;transition:opacity .15s ease,border-color .15s ease}.ml-panel__cta--primary{background-color:#f2f1ec;color:#14150f}.ml-panel--porcelain .ml-panel__cta--primary{background-color:var(--ml-accent);color:#fff}.ml-panel__cta--ghost{border:1px solid color-mix(in srgb,currentColor 55%,transparent)}.ml-panel__cta:hover{opacity:.9}.ml-panel__cta--ghost:hover{border-color:currentColor;opacity:1}.ml-panel__cta:focus-visible{outline:2px solid currentColor;outline-offset:3px}@property --ml-horizon{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}#content::after{content:\"\";display:block;height:clamp(64px,9vh,116px);margin-top:3rem;pointer-events:none;position:sticky;bottom:0;background-color:var(--ml-ink);opacity:.1;mask-image:var(--ml-ridge),linear-gradient(to top,#000 var(--ml-horizon),transparent var(--ml-horizon));-webkit-mask-image:var(--ml-ridge),linear-gradient(to top,#000 var(--ml-horizon),transparent var(--ml-horizon));mask-composite:intersect;mask-size:cover,cover;-webkit-mask-size:cover,cover;mask-position:bottom center;-webkit-mask-position:bottom center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}@supports (animation-timeline:scroll()){#content::after{animation:ml-horizon-draw linear both;animation-timeline:scroll(root block)}}@media (prefers-reduced-motion:reduce){#content::after{animation:none;--ml-horizon:100%}}#content-area .ml-panel__body,#content-area .ml-panel__kicker,#content-area .ml-panel__title{color:inherit}#content-area a.ml-panel__cta{color:inherit;text-decoration:none;font-weight:500}#content-area a.ml-panel__cta--primary{color:#14150f}#content-area .ml-panel--porcelain a.ml-panel__cta--primary{color:#fff}.dark,[data-theme=dark]{--ml-ridge-on-porcelain:#6b6f5e;--ml-panel-hero-bg:#0b0b0b;--ml-panel-hero-ridge:var(--ml-ridge-on-carbon);--ml-panel-hero-ridge-alpha:0.42}"}],"page":{"pagePath":"guides/rate-limits","slug":"/guides/rate-limits","pageMetadata":{"title":"Rate limits","description":"1000 requests per minute per key, and how to stay under it.","icon":"gauge","href":"/guides/rate-limits"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"1000 requests per minute per key, and how to stay under it.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The API allows `,_jsx(_components.strong,{children:`1000 requests per 60 seconds per API key`}),`. Exceeding it returns `,_jsx(_components.code,{children:`429`}),` with a `,_jsx(_components.code,{children:`rate_limit_error`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rate_limit_error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rate_limit_exceeded\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Too many requests. Retry after 12 seconds.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"request_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"req_abc123\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`handling-429`,children:`Handling 429`}),`\n`,_jsxs(_components.p,{children:[`All three SDKs retry `,_jsx(_components.code,{children:`429`}),` automatically, up to three times, with exponential backoff. For most workloads you do not need to write any handling at all.`]}),`\n`,_jsx(_components.p,{children:`If you are managing retries yourself, back off exponentially with jitter rather than retrying on a fixed interval — a fleet of workers retrying in lockstep will simply re-collide.`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,icon:`https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/images/lang/typescript.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=cba1e12257cdbf42b6c7a23031def04f`,numberOfLines:`2`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Raise the retry budget for a bulk backfill.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Moneyline`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`maxRetries:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,icon:`https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/images/lang/python.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=a9a026d5d8b16735c0cea1b7dd0ac6e5`,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Moneyline(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`max_retries`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,icon:`https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/images/lang/go.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=338b141516fd81c7c6c2302fdf1e318b`,numberOfLines:`1`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` moneyline`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`moneyline`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`WithMaxRetries`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`6`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`staying-under-the-limit`,children:`Staying under the limit`}),`\n`,_jsx(_components.p,{children:`The most effective lever is usually not concurrency control but avoiding the requests entirely:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Use webhooks instead of polling.`}),` A worker polling `,_jsx(_components.code,{children:`submission.status`}),` every second burns the budget for one deal. Subscribing to `,_jsx(_components.code,{children:`submission.processed`}),` costs nothing. See `,_jsx(_components.a,{href:`/guides/webhooks`,children:`webhooks`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Raise `,_jsx(_components.code,{children:`limit`}),` on list calls.`]}),` One request at `,_jsx(_components.code,{children:`limit=100`}),` does the work of four at the default 25. See `,_jsx(_components.a,{href:`/guides/pagination`,children:`pagination`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Batch transaction writes.`}),` `,_jsx(_components.code,{children:`POST /v1/transactions`}),` accepts an array.`]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Limits are per key, so a separate key for a bulk backfill keeps it from starving\nyour production traffic.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Rate limits","description":"1000 requests per minute per key, and how to stay under it.","icon":"gauge","href":"/guides/rate-limits"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Handling 429","slug":"handling-429","depth":2,"children":[]},{"title":"Staying under the limit","slug":"staying-under-the-limit","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/paragon-f28ba471/73ae5fe167007963/theme.js"],"subdomain":"paragon-f28ba471","siteName":"Moneyline","title":"Rate limits - Moneyline","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-10T13:49:49.829Z","originalFileLocation":"guides/rate-limits.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"1000 requests per minute per key, and how to stay under it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Moneyline\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Rate limits - Moneyline\">\u003cmeta data-mint-head property=\"og:description\" content=\"1000 requests per minute per key, and how to stay under it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moneyline\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moneyline.co/guides/rate-limits\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://paragon-f28ba471.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Rate+limits\u0026amp;description=1000+requests+per+minute+per+key%2C+and+how+to+stay+under+it.\u0026amp;theme=5916fdcc53572656515981f5\u0026amp;signature=fa706511a3ecbd04b6359a6786c1202e86a7c0a28c39f24670a5ebcdbd25cfb9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Rate limits - Moneyline\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"1000 requests per minute per key, and how to stay under it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://paragon-f28ba471.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Rate+limits\u0026amp;description=1000+requests+per+minute+per+key%2C+and+how+to+stay+under+it.\u0026amp;theme=5916fdcc53572656515981f5\u0026amp;signature=fa706511a3ecbd04b6359a6786c1202e86a7c0a28c39f24670a5ebcdbd25cfb9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/paragon-f28ba471/Ur23FqSxDFP6tAQm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Moneyline\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#495233\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.moneyline.co/guides/rate-limits\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/rate-limits.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.moneyline.co/#organization\",\"name\":\"Moneyline\",\"url\":\"https://docs.moneyline.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/paragon-f28ba471/UuDHN4B1J-v_DThS/logo/light.svg?fit=max\u0026auto=format\u0026n=UuDHN4B1J-v_DThS\u0026q=85\u0026s=76b7fdfc56c24388683b4f0866d1e453\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.moneyline.co#website\",\"name\":\"Moneyline\",\"url\":\"https://docs.moneyline.co\",\"publisher\":{\"@id\":\"https://docs.moneyline.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.moneyline.co/guides/rate-limits#webpage\",\"url\":\"https://docs.moneyline.co/guides/rate-limits\",\"name\":\"Rate limits\",\"description\":\"1000 requests per minute per key, and how to stay under it.\",\"dateModified\":\"2026-09-10T13:49:49.829Z\",\"isPartOf\":{\"@id\":\"https://docs.moneyline.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moneyline.co/guides/rate-limits#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moneyline.co/guides/rate-limits#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://docs.moneyline.co/guides/pagination\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rate limits\",\"item\":\"https://docs.moneyline.co/guides/rate-limits\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.moneyline.co/guides/rate-limits#article\",\"headline\":\"Rate limits\",\"name\":\"Rate limits\",\"description\":\"1000 requests per minute per key, and how to stay under it.\",\"url\":\"https://docs.moneyline.co/guides/rate-limits\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moneyline.co/guides/rate-limits#webpage\"},\"dateModified\":\"2026-09-10T13:49:49.829Z\",\"publisher\":{\"@id\":\"https://docs.moneyline.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.moneyline.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Moneyline\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Moneyline","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"Moneyline","sidebarTitle":"Introduction","mode":"wide","href":""},{"title":"Quickstart","icon":"rocket","href":"/get-started/quickstart"},{"title":"Authentication","icon":"key-round","href":"/get-started/authentication"},{"title":"Concepts","icon":"shapes","href":"/get-started/concepts"},{"title":"Errors","icon":"triangle-alert","href":"/get-started/errors"}]},{"group":"Guides","icon":"book-open","pages":[{"title":"Pagination","icon":"list","href":"/guides/pagination"},{"title":"Idempotency","description":"Retry a write safely — the same key returns the original result instead of creating a duplicate.","icon":"repeat","href":"/guides/idempotency"},{"title":"Rate limits","icon":"gauge","href":"/guides/rate-limits"},{"title":"Webhooks","description":"Receive real-time notifications when events occur in Moneyline.","icon":"webhook","href":"/guides/webhooks"},{"title":"Self-Hosting","icon":"server","href":"/guides/self-hosting"},{"title":"Migration from Heron Data","icon":"arrow-right-left","href":"/guides/migration-from-heron"}]},{"group":"Tools","icon":"terminal","pages":[{"title":"CLI Reference","icon":"terminal","href":"/tools/cli"},{"title":"MCP Server","icon":"https://mintlify.s3.us-west-1.amazonaws.com/paragon-f28ba471/images/lang/claude.svg","href":"/tools/mcp"}]}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"title":"Rate limits - Moneyline","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}