SmsManager vynucuje limity jak na počet příjemců, které můžete cílit v jednom API volání, tak na to, jak často můžete zahajovat ověřování telefonních čísel. Pochopení těchto limitů vám pomůže efektivně dávkovat požadavky.
Odesílací API obvykle nevynucuje pevný rate limit požadavků za sekundu pokud se jedná o účet, který je plně ověřen.V rámci jednoho HTTP požadavků můžete odeslat až:
Endpoint
API
Max příjemců na volání
Poznámky
POST /message
api.smsmngr.com
10 příjemců
Předejte až 10 telefonních čísel v poli to.
POST /messages
api.smsmngr.com
10 objektů zpráv × 10 příjemců = 100 celkem
Každý objekt zprávy v poli podporuje až 10 příjemců. Pozor, 100 příjemců efektivně využijete pokud máte vždy stejnou zprávu. Pokud je zpráva unikátní pro každého příjemce, budete moci odeslat jen 10 zpráv (každý s jedním příjemcem v poli to)
POST /messaging/url
rest-api.smsmngr.com
10 000+
Tímto voláním lze požádat o URL na kterou nahrajete JSONL obsahující až tisíce příjemců (každý řádek je jeden objekt tak jak je definován pro použití na endpointu /message v rámci api.smsmngr.com). Pozor, nehodí se pro průběžné odesílání zpráv, protože tento způsob odesílání je “multi-krokový” a zároveň je před zpracováním zprávy určitá latence (přibližně 10 sekund)
Pokud potřebujete typicky jednu zprávu pro jednoho příjemce použijte POST /message na api.smsmngr.com (nebo variance pro HTTP GET/POST na /simple/message). Zpráva je přijata okamžitě do fronty a je bezprostředně zahájeno její zpracování.
Pokud potřebujete nárazově velké počty zpráv, kde je zdrojem interní fronta nebo seznam událostí (který např. průběžně vzniká), dává smysl využít POST /messages na api.smsmngr.com, který je přizpůsoben na téměř neomezenou propustnost.
Pokud nárazově potřebujete odeslat velké množství zpráv (typicky kampaň nebo hromadná zpráva) použijte POST /messaging/url na rest-api.smsmngr.com protože máte možnost jednoduše si vygenerovat všechna odesílání a nahrát je jedním požadavkem. Drobné zpoždění začátku zpracování hraje ve velkém množství příjemců zanedbatelnou roli a odeslání požadavků je mnohem jednodušší. Podrobný postup najdete v návodu Hromadné nahrání souboru přes REST API. Pro vyhrazenou kapacitu kontaktujte podporu SmsManager.
Odpověď 200 neznamená, že každá zpráva byla odeslána. Zkontrolujte pole rejected v těle odpovědi pro identifikaci příjemců, kteří nebyli přijati v rámci volání.Úvodní potvrzení pouze potvrzuje přijetí zprávy. Asynchronně je kontrolován kredit, obsah zprávy nebo platnost příjemců. O výsledku odesílání se spolehlivě dozvíte výhradně z callback webhooku.
Verify API implementuje víceúrovňový rate limiting pro prevenci zneužití a ochranu vašeho účtu i jednotlivých uživatelů. Limity jsou vynucovány současně na dvou úrovních:
Per účet (tenant): Omezuje celkový počet nových validačních sessionů, které váš účet může zahájit v rolling okně. Chrání vaši celkovou kvotu.
Per telefonní číslo: Zabraňuje zahlcení jednoho telefonního čísla ověřovacími kódy omezením počtu sessionů, které lze zahájit pro dané číslo v časovém okně.
Při překročení kteréhokoli z těchto limitů API vrací odpověď HTTP 429 s jedním z následujících chybových kódů v těle odpovědi:
Když obdržíte odpověď 429, neměli byste ihned opakovat. Použijte exponenciální backoff s jitterem k rozprostření opakování a vyhnutí se stampede podmínkám.
Python — opakování s exponenciálním backoff
import timeimport randomimport requestsdef start_validation_with_retry(phone_number: str, api_key: str, max_retries: int = 5): url = "https://verify-api.smsmanager.com/v1/validations" headers = {"X-API-Key": api_key, "Content-Type": "application/json"} payload = {"phoneNumber": phone_number} for attempt in range(max_retries): response = requests.post(url, json=payload, headers=headers) if response.status_code == 200: return response.json() if response.status_code == 429: # Exponenciální backoff: 1s, 2s, 4s, 8s, 16s — plus náhodný jitter wait = (2 ** attempt) + random.uniform(0, 1) print(f"Rate limited. Retrying in {wait:.1f}s (attempt {attempt + 1}/{max_retries})") time.sleep(wait) continue # Pro chyby jiné než 429 ihned vyhod response.raise_for_status() raise Exception(f"Max retries exceeded for phone number {phone_number}")
Node.js — opakování s exponenciálním backoff
async function startValidationWithRetry(phoneNumber, apiKey, maxRetries = 5) { const url = "https://verify-api.smsmanager.com/v1/validations"; for (let attempt = 0; attempt < maxRetries; attempt++) { const response = await fetch(url, { method: "POST", headers: { "X-API-Key": apiKey, "Content-Type": "application/json", }, body: JSON.stringify({ phoneNumber }), }); if (response.ok) { return await response.json(); } if (response.status === 429) { // Exponenciální backoff: 1s, 2s, 4s, 8s, 16s — plus náhodný jitter const wait = (2 ** attempt + Math.random()) * 1000; console.log(`Rate limited. Retrying in ${(wait / 1000).toFixed(1)}s (attempt ${attempt + 1}/${maxRetries})`); await new Promise((resolve) => setTimeout(resolve, wait)); continue; } // Pro chyby jiné než 429 vyhod ihned const error = await response.json().catch(() => ({})); throw new Error(`API error ${response.status}: ${error.message ?? "unknown"}`); } throw new Error(`Max retries exceeded for phone number ${phoneNumber}`);}
Každá validační session (zahájená přes POST /v1/validations) povoluje omezený počet pokusů o ověření kódu před uzamčením.
Limit
Výchozí hodnota
Max ověřovacích pokusů na session
6
Vypršení session
~10 minut
Jakmile session dosáhne maximálního počtu neuspěšných pokusů, následující volání POST /v1/validations/{token}/verify vrací HTTP 429 se zprávou "Too many attempts". V tom okamžiku musíte zahájit novou validační session.
Zobrazte uživatelům počítadlo pokusů (pole attemptsRemaining je vraceno v chybových odpovědích), aby věděli, kolik pokusů zbývá před vypršením session. To snižuje frustraci a zbytečná API volání.
Neopakujte automaticky neuspěšné ověření kódu v těsné smyčce — každý neuspěšný pokus spotřebuje jeden z omezených pokusů session. Vyzvěte uživatele k ručnímu opětovnému zadání kódu.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SmsManager Developers","colors":{"primary":"#a81943","light":"#da2157","dark":"#76122f"},"logo":{"light":"https://media.brand.dev/ed8f86be-eb0f-4b70-973d-6b2d55ff3aa2.svg","dark":"https://media.brand.dev/ed8f86be-eb0f-4b70-973d-6b2d55ff3aa2.svg"},"favicon":"https://media.brand.dev/2f15212a-f2c6-4af0-9244-b9677cd91943.png","navbar":{"links":[{"href":"mailto:cc@smsmanager.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.smsmanager.com"}},"footer":{"socials":{"x":"https://x.com/smsmanagercz","github":"https://github.com/smsmngr"},"links":[{"header":"Produkt","items":[{"label":"SMS","href":"https://smsmanager.cz/sms"},{"label":"WhatsApp","href":"https://smsmanager.cz/whatsapp"},{"label":"Viber","href":"https://smsmanager.cz/viber"},{"label":"RCS","href":"https://smsmanager.cz/rcs"},{"label":"SMS PIN, 2FA","href":"https://smsmanager.cz/sms-pin"},{"label":"Příjem SMS","href":"https://smsmanager.cz/prijem-sms"},{"label":"SIM hosting","href":"https://smsmanager.cz/sim-hosting"}]},{"header":"Pro vývojáře","items":[{"label":"SMS API","href":"https://smsmanager.cz/sms-api"},{"label":"Jak funguje API","href":"https://smsmanager.cz/jak-funguje-api"},{"label":"SDK knihovny","href":"https://smsmanager.cz/api-sdk"},{"label":"Integrace","href":"https://smsmanager.cz/integrace"},{"label":"Partnerské řešení","href":"https://smsmanager.cz/partneri"},{"label":"Příklady kódu","href":"https://github.com/smsmngr/dev-examples"},{"label":"AI skills","href":"https://smsmanager.cz/docs/ai/skills"},{"label":"MCP server","href":"https://smsmanager.cz/docs/ai/mcp-server"}]},{"header":"Zdroje","items":[{"label":"Nápověda","href":"https://smsmanager.cz/support/category/help"},{"label":"FAQ","href":"https://smsmanager.cz/faq"},{"label":"Blog","href":"https://smsmanager.cz/blog"},{"label":"Délka SMS","href":"https://smsmanager.cz/tool/delka-sms"},{"label":"Validace čísla","href":"https://smsmanager.cz/tool/validace-cisla"},{"label":"Ověřování čísel","href":"https://smsmanager.cz/sms-check"},{"label":"SMS opt-out","href":"https://smsmanager.cz/sms-opt-out"}]},{"header":"Společnost","items":[{"label":"Ceník","href":"https://smsmanager.cz/ceny"},{"label":"Registrace","href":"https://smsmanager.cz/start"},{"label":"Dashboard","href":"https://app.smsmanager.com"},{"label":"Kontakt","href":"https://smsmanager.cz/support/kontakt"},{"label":"Stav služeb","href":"https://smsmanager.statuspage.io"},{"label":"Čeština","href":"https://smsmanager.cz/docs"},{"label":"English","href":"https://smsmanager.com/docs"}]}]},"fonts":{"heading":{"family":"GothamRounded","weight":700,"source":"fonts/GothamRounded.woff2","format":"woff2"}},"contextual":{"options":["copy","view","assistant","chatgpt","claude","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"smsmanager-4a5d5c47","hasAudioNarration":false,"actualSubdomain":"smsmanager-4a5d5c47","customDomains":["smsmanager.cz"],"gitSource":{"type":"github","owner":"smsmngr","repo":"dev-doc","deployBranch":"main","contentDirectory":"cs","isPrivate":false,"mountPath":"","label":""},"feedback":{"issues":true,"edits":true,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae489fcbfaae13da36b06d0","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API reference","count":75},{"language":"default","tag":"REST API","count":36},{"language":"default","tag":"WhatsApp Partner API","count":17},{"language":"default","tag":"Návody","count":15},{"language":"default","tag":"Koncepty","count":14},{"language":"default","tag":"Základní pojmy","count":14},{"language":"default","tag":"Kredit","count":9},{"language":"default","tag":"JSON API v2","count":7},{"language":"default","tag":"Referenční tabulky","count":7},{"language":"default","tag":"Odesílání zpráv","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"body{font-family:system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif!important}#navbar{color:#e5e7eb!important}#navbar>div[class*=\"bg-background-light\"]{background-color:#0f1115!important}#navbar>div[class*=\"border-b\"]{border-color:rgba(255, 255, 255, 0.08)!important}#navbar a,#navbar .navbar-link{color:#d1d5db!important}#navbar .navbar-link{font-weight:600;font-size:0.9375rem}#navbar a:hover,#navbar .navbar-link:hover{color:#ffffff!important}#search-bar-entry,#search-bar-entry-mobile{background-color:rgba(255, 255, 255, 0.06)!important;color:#9ca3af!important}#topbar-cta-button,#topbar-cta-button>*{border-radius:0.4rem!important;color:#ffffff!important}#theme-preference-menu-trigger{color:#d1d5db!important}#navbar a[href^=\"mailto:\"]{border:1px solid rgba(255, 255, 255, 0.28)!important;border-radius:0.4rem!important;padding:0.25rem 0.7rem!important}#navbar a[href^=\"mailto:\"]:hover{border-color:rgba(255, 255, 255, 0.55)!important}#navbar>div:last-child{padding-top:0.75rem!important;padding-bottom:0.75rem!important}#sidebar-content,#table-of-contents-layout{top:4.5rem!important}#navbar a:has(>.nav-logo){display:flex!important;align-items:center!important}#navbar img.nav-logo{margin-top:4px!important}#navbar a:has(>.nav-logo)::after{content:\"DEVELOPERS SITE\";margin-left:0.7rem;padding-left:0.7rem;border-left:1px solid rgba(255, 255, 255, 0.28);color:#9ca3af;font-size:0.6875rem;font-weight:700;letter-spacing:0.09em;white-space:nowrap}@media (min-width: 1024px){#sidebar-content{width:18rem!important}}#footer p{text-transform:uppercase;letter-spacing:0.09em}#footer a{color:rgba(3, 7, 18, 0.72)}#footer a:hover{color:rgba(3, 7, 18, 0.95)}.dark #footer a{color:rgba(255, 255, 255, 0.72)}.dark #footer a:hover{color:rgba(255, 255, 255, 0.95)}#footer a[href$=\"smsmanager.cz/docs\"],#footer a[href$=\"smsmanager.com/docs\"]{font-weight:600}"}],"page":{"pagePath":"reference/rate-limits","slug":"/reference/rate-limits","pageMetadata":{"title":null,"description":null,"href":"/reference/rate-limits"},"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`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Table,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`SmsManager vynucuje limity jak na počet příjemců, které můžete cílit v jednom API volání, tak na to, jak často můžete zahajovat ověřování telefonních čísel. Pochopení těchto limitů vám pomůže efektivně dávkovat požadavky.`}),`\n`,_jsx(Heading,{level:`2`,id:`limity-odesílacího-api`,children:`Limity odesílacího API`}),`\n`,_jsx(_components.p,{children:`Odesílací API obvykle nevynucuje pevný rate limit požadavků za sekundu pokud se jedná o účet, který je plně ověřen.`}),`\n`,_jsx(_components.p,{children:`V rámci jednoho HTTP požadavků můžete odeslat až:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Endpoint`}),_jsx(_components.th,{children:`API`}),_jsx(_components.th,{children:`Max příjemců na volání`}),_jsx(_components.th,{children:`Poznámky`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`POST /message`})}),_jsx(_components.td,{children:`api.smsmngr.com`}),_jsx(_components.td,{children:`10 příjemců`}),_jsxs(_components.td,{children:[`Předejte až 10 telefonních čísel v poli `,_jsx(_components.code,{children:`to`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`POST /messages`})}),_jsx(_components.td,{children:`api.smsmngr.com`}),_jsxs(_components.td,{children:[`10 objektů zpráv × 10 příjemců = `,_jsx(_components.strong,{children:`100 celkem`})]}),_jsxs(_components.td,{children:[`Každý objekt zprávy v poli podporuje až 10 příjemců. Pozor, 100 příjemců efektivně využijete pokud máte vždy stejnou zprávu. Pokud je zpráva unikátní pro každého příjemce, budete moci odeslat jen 10 zpráv (každý s jedním příjemcem v poli `,_jsx(_components.code,{children:`to`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`POST /messaging/url`})}),_jsx(_components.td,{children:`rest-api.smsmngr.com`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`10 000+`}),_jsxs(_components.td,{children:[`Tímto voláním lze požádat o URL na kterou nahrajete JSONL obsahující až tisíce příjemců (každý řádek je jeden objekt tak jak je definován pro použití na endpointu `,_jsx(_components.code,{children:`/message`}),` v rámci `,_jsx(_components.code,{children:`api.smsmngr.com`}),`). Pozor, nehodí se pro průběžné odesílání zpráv, protože tento způsob odesílání je “multi-krokový” a zároveň je před zpracováním zprávy určitá latence (přibližně 10 sekund)`]})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Pokud potřebujete typicky jednu zprávu pro jednoho příjemce použijte `,_jsx(_components.code,{children:`POST /message`}),` na `,_jsx(_components.code,{children:`api.smsmngr.com`}),` (nebo variance pro HTTP GET/POST na `,_jsx(_components.code,{children:`/simple/message`}),`). Zpráva je přijata okamžitě do fronty a je bezprostředně zahájeno její zpracování.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Pokud potřebujete nárazově velké počty zpráv, kde je zdrojem interní fronta nebo seznam událostí (který např. průběžně vzniká), dává smysl využít `,_jsx(_components.code,{children:`POST /messages`}),` na `,_jsx(_components.code,{children:`api.smsmngr.com`}),`, který je přizpůsoben na téměř neomezenou propustnost.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Pokud nárazově potřebujete odeslat velké množství zpráv (typicky kampaň nebo hromadná zpráva) použijte `,_jsx(_components.code,{children:`POST /messaging/url`}),` na `,_jsx(_components.code,{children:`rest-api.smsmngr.com`}),` protože máte možnost jednoduše si vygenerovat všechna odesílání a nahrát je jedním požadavkem. Drobné zpoždění začátku zpracování hraje ve velkém množství příjemců zanedbatelnou roli a odeslání požadavků je mnohem jednodušší. Podrobný postup najdete v návodu `,_jsx(_components.a,{href:`/guides/batch-sending#hromadn%C3%A9-nahr%C3%A1n%C3%AD-souboru-p%C5%99es-rest-api`,children:`Hromadné nahrání souboru přes REST API`}),`. Pro vyhrazenou kapacitu kontaktujte `,_jsx(_components.a,{href:`mailto:cc@smsmanager.cz`,children:`podporu SmsManager`}),`.`]})}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`Odpověď `,_jsx(_components.code,{children:`200`}),` neznamená, že každá zpráva byla odeslána. Zkontrolujte pole `,_jsx(_components.code,{children:`rejected`}),` v těle odpovědi pro identifikaci příjemců, kteří nebyli přijati v rámci volání.`]}),_jsx(_components.p,{children:`Úvodní potvrzení pouze potvrzuje přijetí zprávy. Asynchronně je kontrolován kredit, obsah zprávy nebo platnost příjemců. O výsledku odesílání se spolehlivě dozvíte výhradně z callback webhooku.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limity-verify-api`,children:`Rate limity Verify API`}),`\n`,_jsx(_components.p,{children:`Verify API implementuje víceúrovňový rate limiting pro prevenci zneužití a ochranu vašeho účtu i jednotlivých uživatelů. Limity jsou vynucovány současně na dvou úrovních:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Per účet (tenant):`}),` Omezuje celkový počet nových validačních sessionů, které váš účet může zahájit v rolling okně. Chrání vaši celkovou kvotu.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Per telefonní číslo:`}),` Zabraňuje zahlcení jednoho telefonního čísla ověřovacími kódy omezením počtu sessionů, které lze zahájit pro dané číslo v časovém okně.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Při překročení kteréhokoli z těchto limitů API vrací odpověď `,_jsx(_components.code,{children:`HTTP 429`}),` s jedním z následujících chybových kódů v těle odpovědi:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Kód chyby`}),_jsx(_components.th,{children:`Typ limitu`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`TENANT_RATE_LIMIT`})}),_jsx(_components.td,{children:`Limit per účet překročen`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PHONE_RATE_LIMIT`})}),_jsx(_components.td,{children:`Limit per telefonní číslo překročen`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`zpracování-rate-limitů`,children:`Zpracování rate limitů`}),`\n`,_jsxs(_components.p,{children:[`Když obdržíte odpověď `,_jsx(_components.code,{children:`429`}),`, neměli byste ihned opakovat. Použijte exponenciální backoff s jitterem k rozprostření opakování a vyhnutí se stampede podmínkám.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Python — opakování s exponenciálním backoff`,id:`python-opakovanis-exponencialnim-backoff`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`26`,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:`26`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` time`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` random`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` start_validation_with_retry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`phone_number`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`api_key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`max_retries`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`int`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` url `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://verify-api.smsmanager.com/v1/validations\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` headers `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"X-API-Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: api_key, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` payload `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"phoneNumber\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: phone_number}`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` attempt `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` range`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(max_retries):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.post(url, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`payload, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`headers)`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response.status_code `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 200`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response.json()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response.status_code `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`==`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 429`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Exponenciální backoff: 1s, 2s, 4s, 8s, 16s — plus náhodný jitter`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` wait `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` **`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` attempt) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`+`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` random.uniform(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Rate limited. Retrying in `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`wait`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:.1f}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`s (attempt `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`attempt `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`+`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`max_retries`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},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:` time.sleep(wait)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` continue`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Pro chyby jiné než 429 ihned vyhod`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response.raise_for_status()`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` raise`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Exception`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Max retries exceeded for phone number `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`phone_number`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})}),_jsx(Accordion,{title:`Node.js — opakování s exponenciálním backoff`,id:`node-js-opakovanis-exponencialnim-backoff`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`32`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`32`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` startValidationWithRetry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`phoneNumber`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`apiKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`maxRetries`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\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:` url`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://verify-api.smsmanager.com/v1/validations\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`let`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` attempt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attempt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` maxRetries`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attempt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`++`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\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:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` method:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` headers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-API-Key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/json\"`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` body:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stringify`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`phoneNumber`}),_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`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ok`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_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`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ===`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 429`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Exponenciální backoff: 1s, 2s, 4s, 8s, 16s — plus náhodný jitter`})}),`\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:` wait`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` **`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` attempt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Math`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`random`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`*`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`Rate limited. Retrying in \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`wait`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` /`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1000`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toFixed`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`s (attempt `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`attempt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` +`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 1`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`maxRetries`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\")`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` Promise`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`resolve`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` setTimeout`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`resolve`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`wait`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`));`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` continue`}),_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`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Pro chyby jiné než 429 vyhod ihned`})}),`\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:` error`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ({}));`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` throw`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`API error \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`error`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ??`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"unknown\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},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`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` throw`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`Max retries exceeded for phone number \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`phoneNumber`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},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:`limity-pokusů-o-ověření`,children:`Limity pokusů o ověření`}),`\n`,_jsxs(_components.p,{children:[`Každá validační session (zahájená přes `,_jsx(_components.code,{children:`POST /v1/validations`}),`) povoluje omezený počet pokusů o ověření kódu před uzamčením.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Limit`}),_jsx(_components.th,{children:`Výchozí hodnota`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Max ověřovacích pokusů na session`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.strong,{children:`6`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Vypršení session`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`~10 minut`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Jakmile session dosáhne maximálního počtu neuspěšných pokusů, následující volání `,_jsx(_components.code,{children:`POST /v1/validations/{token}/verify`}),` vrací `,_jsx(_components.code,{children:`HTTP 429`}),` se zprávou `,_jsx(_components.code,{children:`\"Too many attempts\"`}),`. V tom okamžiku musíte zahájit novou validační session.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Zobrazte uživatelům počítadlo pokusů (pole `,_jsx(_components.code,{children:`attemptsRemaining`}),` je vraceno v chybových odpovědích), aby věděli, kolik pokusů zbývá před vypršením session. To snižuje frustraci a zbytečná API volání.`]})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Neopakujte automaticky neuspěšné ověření kódu v těsné smyčce — každý neuspěšný pokus spotřebuje jeden z omezených pokusů session. Vyzvěte uživatele k ručnímu opětovnému zadání kódu.`})})]})}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":null,"description":null,"href":"/reference/rate-limits"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Limity odesílacího API","slug":"limity-odesílacího-api","depth":2,"children":[]},{"title":"Rate limity Verify API","slug":"rate-limity-verify-api","depth":2,"children":[]},{"title":"Zpracování rate limitů","slug":"zpracování-rate-limitů","depth":2,"children":[]},{"title":"Limity pokusů o ověření","slug":"limity-pokusů-o-ověření","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"smsmanager-4a5d5c47","siteName":"SmsManager Developers","title":"Rate limits - SmsManager Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T12:14:01.626Z","originalFileLocation":"reference/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=\"system\"}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=\"application-name\" content=\"SmsManager Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://media.brand.dev/2f15212a-f2c6-4af0-9244-b9677cd91943.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://media.brand.dev/2f15212a-f2c6-4af0-9244-b9677cd91943.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://media.brand.dev/2f15212a-f2c6-4af0-9244-b9677cd91943.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://media.brand.dev/2f15212a-f2c6-4af0-9244-b9677cd91943.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Rate limits - SmsManager Developers\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SmsManager Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://smsmanager.cz/docs/reference/rate-limits\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://smsmanager-4a5d5c47.mintlify.site/docs/_mintlify/api/og/v2?division=Referen%C4%8Dn%C3%AD+tabulky\u0026amp;title=Rate+limits\u0026amp;theme=db94e80757a62a796ff5b234\u0026amp;signature=d60e4980d401e085201070d9265392bb60a1e6339d9a6a9978ef375ed157ac71\">\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 - SmsManager Developers\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://smsmanager-4a5d5c47.mintlify.site/docs/_mintlify/api/og/v2?division=Referen%C4%8Dn%C3%AD+tabulky\u0026amp;title=Rate+limits\u0026amp;theme=db94e80757a62a796ff5b234\u0026amp;signature=d60e4980d401e085201070d9265392bb60a1e6339d9a6a9978ef375ed157ac71\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/smsmanager-4a5d5c47/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SmsManager Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#a81943\">\u003clink data-mint-head rel=\"canonical\" href=\"https://smsmanager.cz/docs/reference/rate-limits\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/reference/rate-limits.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://smsmanager.cz/#organization\",\"name\":\"SmsManager Developers\",\"url\":\"https://smsmanager.cz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://media.brand.dev/ed8f86be-eb0f-4b70-973d-6b2d55ff3aa2.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://smsmanager.cz/docs#website\",\"name\":\"SmsManager Developers\",\"url\":\"https://smsmanager.cz/docs\",\"publisher\":{\"@id\":\"https://smsmanager.cz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://smsmanager.cz/docs/reference/rate-limits#webpage\",\"url\":\"https://smsmanager.cz/docs/reference/rate-limits\",\"name\":\"Rate limits\",\"dateModified\":\"2026-10-30T12:14:01.626Z\",\"isPartOf\":{\"@id\":\"https://smsmanager.cz/docs#website\"},\"breadcrumb\":{\"@id\":\"https://smsmanager.cz/docs/reference/rate-limits#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://smsmanager.cz/docs/reference/rate-limits#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Referenční tabulky\",\"item\":\"https://smsmanager.cz/docs/reference/errors\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rate limits\",\"item\":\"https://smsmanager.cz/docs/reference/rate-limits\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://smsmanager.cz/docs/reference/rate-limits#article\",\"headline\":\"Rate limits\",\"name\":\"Rate limits\",\"url\":\"https://smsmanager.cz/docs/reference/rate-limits\",\"mainEntityOfPage\":{\"@id\":\"https://smsmanager.cz/docs/reference/rate-limits#webpage\"},\"dateModified\":\"2026-10-30T12:14:01.626Z\",\"publisher\":{\"@id\":\"https://smsmanager.cz/#organization\"},\"isPartOf\":{\"@id\":\"https://smsmanager.cz/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SmsManager Developers\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"SmsManager Developers\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/reference/rate-limits.md","siteName":"SmsManager Developers","nav":{"global":null,"tabs":[{"tab":"Začínáme","groups":[{"group":"Začínáme","pages":[{"title":"Dokumentace SmsManager","sidebarTitle":"Úvod","href":""},{"title":"Začněte se SmsManagerem za 5 minut","sidebarTitle":"Rychlý start","href":"/quickstart"},{"title":"Registrace WhatsApp Business účtu pro vašeho klienta","sidebarTitle":"První registrace klienta","href":"/tutorials/whatsapp-business-registration"}]}]},{"tab":"Návody","groups":[{"group":"Odesílání zpráv","pages":[{"title":null,"href":"/guides/send-sms"},{"title":null,"href":"/guides/send-viber"},{"title":null,"href":"/guides/send-whatsapp"},{"title":"Jak nastavit SMS fallback pro WhatsApp zprávy","sidebarTitle":"WhatsApp s SMS fallbackem","href":"/guides/whatsapp-sms-fallback"},{"title":"Hromadné odesílání zpráv — endpoint /messages a nahrání JSONL souboru","sidebarTitle":"Hromadné odesílání","href":"/guides/batch-sending"},{"title":"Zkracování URL ve zprávách","sidebarTitle":"Zkracování URL","href":"/guides/url-shortening"}]},{"group":"Příjem a ověření","pages":[{"title":null,"href":"/guides/phone-verification"},{"title":null,"href":"/guides/webhooks"},{"title":"Automatické odpovědi a příchozí zprávy","sidebarTitle":"Automatické odpovědi","href":"/guides/auto-replies"}]},{"group":"Stav a statistiky","pages":[{"title":"Stav zpráv a statistiky","sidebarTitle":"Stav a statistiky","href":"/guides/message-status"}]},{"group":"Testování","pages":[{"title":"Testování API napojení","sidebarTitle":"Testování napojení","href":"/guides/testing"}]},{"group":"AI asistenti","pages":[{"title":"Skills pro AI coding agenty","sidebarTitle":"AI skills","href":"/ai/skills"},{"title":"SmsManager MCP server","sidebarTitle":"MCP server","href":"/ai/mcp-server"}]},{"group":"Přístup a klíče","pages":[{"title":null,"href":"/authentication"},{"title":"Objednání odesílatelů a čísel","sidebarTitle":"Objednání služeb","href":"/guides/order-services"}]}]},{"tab":"API reference","groups":[{"group":"JSON API v2","pages":[{"title":"JSON API v2 — Reference odesílání zpráv SmsManager","sidebarTitle":"Overview","href":"/api-reference/json-v2/overview"},{"title":"Odeslání zprávy","deprecated":null,"version":null,"sidebarTitle":"Odeslat zprávu","openapi":"/openapi/json/jsonapi_v2.yaml post /message","href":"/api-reference/sending/odeslání-zprávy"},{"title":"Odeslání prioritní zprávy","deprecated":null,"version":null,"sidebarTitle":"Prioritní zpráva","openapi":"/openapi/json/jsonapi_v2.yaml post /message/priority","href":"/api-reference/sending/odeslání-prioritní-zprávy"},{"title":"Odeslání více zpráv","deprecated":null,"version":null,"sidebarTitle":"Odeslat více","openapi":"/openapi/json/jsonapi_v2.yaml post /messages","href":"/api-reference/sending/odeslání-více-zpráv"},{"title":"Odeslání jednoduché zprávy (GET request)","deprecated":null,"version":null,"sidebarTitle":"Jednoduchá (GET)","openapi":"/openapi/json/jsonapi_v2.yaml get /simple/message","href":"/api-reference/sending/odeslání-jednoduché-zprávy-get-request"},{"title":"Odeslání jednoduché zprávy (POST request)","deprecated":null,"version":null,"sidebarTitle":"Jednoduchá (POST)","openapi":"/openapi/json/jsonapi_v2.yaml post /simple/message","href":"/api-reference/sending/odeslání-jednoduché-zprávy-post-request"},{"title":"Webhook výsledku odesílání","sidebarTitle":"Výsledek odesílání","href":"/api-reference/json-v2/sent-message-webhook"}]},{"group":"HTTP/XML API","pages":[{"title":"HTTP API — odeslání SMS","sidebarTitle":"HTTP API","href":"/api-reference/http-api/send"},{"title":"XML API — odeslání SMS","sidebarTitle":"XML API","href":"/api-reference/xml-api/send"},{"title":"HTTP/XML API — chybové kódy","sidebarTitle":"Chybové kódy","href":"/api-reference/xml-api/errors"}]},{"group":"REST API","pages":[{"title":"REST API — Referenční příručka správy účtu a zpráv","sidebarTitle":"Overview","href":"/api-reference/rest/overview"},{"group":"API klíče","expanded":true,"pages":[{"title":"Získat informace o aktuálním API klíči","deprecated":null,"version":null,"sidebarTitle":"Info o klíči","openapi":"/openapi/rest/restapi_v1.yaml get /apikey/me","href":"/api-reference/api/získat-informace-o-aktuálním-api-klíči"},{"title":"Vytvořit podřízený API klíč","deprecated":null,"version":null,"sidebarTitle":"Vytvořit sub-klíč","openapi":"/openapi/rest/restapi_v1.yaml post /apikey/add","href":"/api-reference/api/vytvořit-podřízený-api-klíč"},{"title":"Upravit API klíč","deprecated":null,"version":null,"sidebarTitle":"Upravit klíč","openapi":"/openapi/rest/restapi_v1.yaml post /apikey/update","href":"/api-reference/api/upravit-api-klíč"},{"title":"Vypsat podřízené API klíče","deprecated":null,"version":null,"sidebarTitle":"Vypsat sub-klíče","openapi":"/openapi/rest/restapi_v1.yaml get /apikey/list","href":"/api-reference/api/vypsat-podřízené-api-klíče"},{"title":"Změnit podřízený API klíč (zastaralé)","deprecated":true,"version":null,"sidebarTitle":"Změnit sub-klíč","openapi":"/openapi/rest/restapi_v1.yaml post /apikey/change","href":"/api-reference/api/změnit-podřízený-api-klíč-zastaralé"}]},{"group":"Kredit","expanded":true,"pages":[{"title":"Získat stav kreditu","deprecated":null,"version":null,"sidebarTitle":"Stav kreditu","openapi":"/openapi/rest/restapi_v1.yaml get /credit","href":"/api-reference/credit/získat-stav-kreditu"},{"title":"Získat katalog služeb","deprecated":null,"version":null,"sidebarTitle":"Katalog služeb","openapi":"/openapi/rest/restapi_v1.yaml get /credit/services","href":"/api-reference/credit/získat-katalog-služeb"},{"title":"Získat ceník","deprecated":null,"version":null,"sidebarTitle":"Ceník","openapi":"/openapi/rest/restapi_v1.yaml get /credit/prices","href":"/api-reference/credit/získat-ceník"},{"title":"Získat cenu pro destinaci","deprecated":null,"version":null,"sidebarTitle":"Cena pro destinaci","openapi":"/openapi/rest/restapi_v1.yaml post /credit/price","href":"/api-reference/credit/získat-cenu-pro-destinaci"},{"title":"Získat nastavení upozornění na nízký kredit","deprecated":null,"version":null,"sidebarTitle":"Nastavení upozornění","openapi":"/openapi/rest/restapi_v1.yaml get /credit/notify","href":"/api-reference/credit/získat-nastavení-upozornění-na-nízký-kredit"},{"title":"Nastavit upozornění na nízký kredit","deprecated":null,"version":null,"sidebarTitle":"Nastavit upozornění","openapi":"/openapi/rest/restapi_v1.yaml post /credit/notify","href":"/api-reference/credit/nastavit-upozornění-na-nízký-kredit"},{"title":"Vypsat objednané služby","deprecated":null,"version":null,"sidebarTitle":"Objednané služby","openapi":"/openapi/rest/restapi_v1.yaml get /credit/orders","href":"/api-reference/credit/vypsat-objednané-služby"},{"title":"Objednat placenou službu","deprecated":null,"version":null,"sidebarTitle":"Objednat službu","openapi":"/openapi/rest/restapi_v1.yaml post /credit/order","href":"/api-reference/credit/objednat-placenou-službu"},{"title":"Zrušit placenou službu","deprecated":null,"version":null,"sidebarTitle":"Zrušit službu","openapi":"/openapi/rest/restapi_v1.yaml post /credit/cancel","href":"/api-reference/credit/zrušit-placenou-službu"}]},{"group":"Fakturace","expanded":true,"pages":[{"title":"Získat fakturační kontakt","deprecated":null,"version":null,"sidebarTitle":"Fakturační kontakt","openapi":"/openapi/rest/restapi_v1.yaml post /billing/get","href":"/api-reference/billing/získat-fakturační-kontakt"},{"title":"Nastavit fakturační kontakt","deprecated":null,"version":null,"sidebarTitle":"Nastavit fakturaci","openapi":"/openapi/rest/restapi_v1.yaml post /billing/set","href":"/api-reference/billing/nastavit-fakturační-kontakt"},{"title":"Vypsat faktury","deprecated":null,"version":null,"sidebarTitle":"Seznam faktur","openapi":"/openapi/rest/restapi_v1.yaml post /billing/invoices/list","href":"/api-reference/billing/vypsat-faktury"},{"title":"Stáhnout fakturu v PDF","deprecated":null,"version":null,"sidebarTitle":"Faktura PDF","openapi":"/openapi/rest/restapi_v1.yaml post /billing/invoices/pdf","href":"/api-reference/billing/stáhnout-fakturu-v-pdf"},{"title":"Získat údaje pro dobití bankovním převodem","deprecated":null,"version":null,"sidebarTitle":"Údaje pro dobití","openapi":"/openapi/rest/restapi_v1.yaml get /billing/topup","href":"/api-reference/billing/získat-údaje-pro-dobití-bankovním-převodem"}]},{"group":"Stav zpráv","expanded":true,"pages":[{"title":"Získat stav zprávy","deprecated":null,"version":null,"sidebarTitle":"Stav zprávy","openapi":"/openapi/rest/restapi_v1.yaml get /message","href":"/api-reference/status/získat-stav-zprávy"},{"title":"Vypsat odeslané zprávy podle data","deprecated":null,"version":null,"sidebarTitle":"Seznam zpráv","openapi":"/openapi/rest/restapi_v1.yaml get /messages","href":"/api-reference/status/vypsat-odeslané-zprávy-podle-data"},{"title":"Získat statistiky požadavku","deprecated":null,"version":null,"sidebarTitle":"Statistiky požadavku","openapi":"/openapi/rest/restapi_v1.yaml get /request","href":"/api-reference/status/získat-statistiky-požadavku"},{"title":"Získat agregované statistiky podle data","deprecated":null,"version":null,"sidebarTitle":"Denní statistiky","openapi":"/openapi/rest/restapi_v1.yaml get /requests","href":"/api-reference/status/získat-agregované-statistiky-podle-data"}]},{"group":"Přijaté zprávy","expanded":true,"pages":[{"title":"Získat přijaté zprávy podle data","deprecated":null,"version":null,"sidebarTitle":"Přijaté zprávy","openapi":"/openapi/rest/restapi_v1.yaml get /inbox","href":"/api-reference/inbox/získat-přijaté-zprávy-podle-data"}]},{"group":"Blacklist a opt-out","expanded":true,"pages":[{"title":"Stáhnout blacklist","deprecated":null,"version":null,"sidebarTitle":"Stáhnout blacklist","openapi":"/openapi/rest/restapi_v1.yaml get /blacklist","href":"/api-reference/blacklist/stáhnout-blacklist"},{"title":"Přidat čísla na blacklist","deprecated":null,"version":null,"sidebarTitle":"Přidat na blacklist","openapi":"/openapi/rest/restapi_v1.yaml post /blacklist","href":"/api-reference/blacklist/přidat-čísla-na-blacklist"},{"title":"Odebrat čísla z blacklistu","deprecated":null,"version":null,"sidebarTitle":"Odebrat z blacklistu","openapi":"/openapi/rest/restapi_v1.yaml delete /blacklist","href":"/api-reference/blacklist/odebrat-čísla-z-blacklistu"},{"title":"Stáhnout opt-out seznam","deprecated":null,"version":null,"sidebarTitle":"Stáhnout opt-out","openapi":"/openapi/rest/restapi_v1.yaml get /optout","href":"/api-reference/blacklist/stáhnout-opt-out-seznam"},{"title":"Přidat čísla na opt-out seznam","deprecated":null,"version":null,"sidebarTitle":"Přidat na opt-out","openapi":"/openapi/rest/restapi_v1.yaml post /optout","href":"/api-reference/blacklist/přidat-čísla-na-opt-out-seznam"},{"title":"Odebrat čísla z opt-out seznamu","deprecated":null,"version":null,"sidebarTitle":"Odebrat z opt-out","openapi":"/openapi/rest/restapi_v1.yaml delete /optout","href":"/api-reference/blacklist/odebrat-čísla-z-opt-out-seznamu"}]},{"group":"Hromadné odesílání","expanded":true,"pages":[{"title":"Získat URL pro hromadné nahrání","deprecated":null,"version":null,"sidebarTitle":"URL pro nahrání","openapi":"/openapi/rest/restapi_v1.yaml post /messaging/url","href":"/api-reference/messaging/získat-url-pro-hromadné-nahrání"},{"title":"Ověřit zprávy bez odeslání","deprecated":null,"version":null,"sidebarTitle":"Ověřit zprávy","openapi":"/openapi/rest/restapi_v1.yaml post /messaging/validate","href":"/api-reference/messaging/ověřit-zprávy-bez-odeslání"},{"title":"Zrušit naplánovanou zprávu nebo hromadné nahrání","deprecated":null,"version":null,"sidebarTitle":"Zrušit plán","openapi":"/openapi/rest/restapi_v1.yaml post /messaging/cancel","href":"/api-reference/messaging/zrušit-naplánovanou-zprávu-nebo-hromadné-nahrání"}]},{"group":"Zařízení a příjemci","expanded":true,"pages":[{"title":"Registrovat push zařízení","deprecated":null,"version":null,"sidebarTitle":"Registrovat zařízení","openapi":"/openapi/rest/restapi_v1.yaml post /push/device","href":"/api-reference/partner/registrovat-push-zařízení"},{"title":"Registrovat příjemce","deprecated":null,"version":null,"sidebarTitle":"Registrovat příjemce","openapi":"/openapi/rest/restapi_v1.yaml post /recipient/register","href":"/api-reference/partner/registrovat-příjemce"}]}]},{"group":"Verify API","pages":[{"title":null,"href":"/api-reference/verify/overview"},{"title":"Verify HMAC proof","deprecated":null,"version":null,"sidebarTitle":"Verify proof","openapi":"/openapi/verify/verifyapi_v1.yaml post /v1/verify-proof","href":"/api-reference/validation/verify-hmac-proof"},{"title":"Start phone validation","deprecated":null,"version":null,"sidebarTitle":"Start validation","openapi":"/openapi/verify/verifyapi_v1.yaml post /v1/validations","href":"/api-reference/validation/start-phone-validation"},{"title":"Verify code","deprecated":null,"version":null,"sidebarTitle":"Verify code","openapi":"/openapi/verify/verifyapi_v1.yaml post /v1/validations/{token}/verify","href":"/api-reference/validation/verify-code"},{"title":"Verify proof (optional)","deprecated":null,"version":null,"sidebarTitle":"Proof (optional)","openapi":"/openapi/verify/verifyapi_v1.yaml patch /v1/validations/{token}","href":"/api-reference/validation/verify-proof-optional"}]},{"group":"WhatsApp Partner API","pages":[{"title":"WhatsApp Business Partner API — Přehled","sidebarTitle":"Overview","href":"/api-reference/waba/overview"},{"group":"WhatsApp účty","expanded":true,"pages":[{"title":"Zahájení vestavěné registrace WhatsApp","deprecated":null,"version":null,"sidebarTitle":"Zahájit registraci","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/signup","href":"/api-reference/waba/zahájení-vestavěné-registrace-whatsapp"},{"title":"Dokončení registrace WhatsApp","deprecated":null,"version":null,"sidebarTitle":"Dokončit registraci","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/registration","href":"/api-reference/waba/dokončení-registrace-whatsapp"},{"title":"Seznam připojených WhatsApp účtů","deprecated":null,"version":null,"sidebarTitle":"Seznam účtů","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/accounts/list","href":"/api-reference/waba/seznam-připojených-whatsapp-účtů"}]},{"group":"Telefonní čísla","expanded":true,"pages":[{"title":"Seznam telefonních čísel WABA","deprecated":null,"version":null,"sidebarTitle":"Seznam čísel","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/phone_numbers/list","href":"/api-reference/waba-numbers/seznam-telefonních-čísel-waba"},{"title":"Přeposlání ověřovacího kódu telefonního čísla","deprecated":null,"version":null,"sidebarTitle":"Ověřit číslo","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/phone_numbers/verify","href":"/api-reference/waba-numbers/přeposlání-ověřovacího-kódu-telefonního-čísla"},{"title":"Kontrola dostupnosti telefonního čísla","deprecated":null,"version":null,"sidebarTitle":"Zkontrolovat číslo","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/phone_numbers/check","href":"/api-reference/waba-numbers/kontrola-dostupnosti-telefonního-čísla"}]},{"group":"Šablony zpráv","expanded":true,"pages":[{"title":"Seznam šablon zpráv","deprecated":null,"version":null,"sidebarTitle":"Seznam šablon","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/templates/list","href":"/api-reference/waba-templates/seznam-šablon-zpráv"},{"title":"Vytvoření šablony zprávy","deprecated":null,"version":null,"sidebarTitle":"Vytvořit šablonu","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/templates/create","href":"/api-reference/waba-templates/vytvoření-šablony-zprávy"},{"title":"Vytvoření šablony z knihovny Meta","deprecated":null,"version":null,"sidebarTitle":"Vytvořit z knihovny","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/templates/library/create","href":"/api-reference/waba-templates/vytvoření-šablony-z-knihovny-meta"},{"title":"Úprava šablony zprávy","deprecated":null,"version":null,"sidebarTitle":"Upravit šablonu","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/templates/edit","href":"/api-reference/waba-templates/úprava-šablony-zprávy"},{"title":"Smazání šablony zprávy","deprecated":null,"version":null,"sidebarTitle":"Smazat šablonu","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/templates/delete","href":"/api-reference/waba-templates/smazání-šablony-zprávy"},{"title":"Odeslání testovací zprávy ze šablony","deprecated":null,"version":null,"sidebarTitle":"Otestovat šablonu","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/templates/test","href":"/api-reference/waba-templates/odeslání-testovací-zprávy-ze-šablony"}]},{"group":"Analytika","expanded":true,"pages":[{"title":"Získání analytiky zpráv","deprecated":null,"version":null,"sidebarTitle":"Analytika zpráv","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/analytics/messages","href":"/api-reference/waba-analytics/získání-analytiky-zpráv"},{"title":"Získání analytiky konverzací","deprecated":null,"version":null,"sidebarTitle":"Analytika konverzací","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/analytics/conversations","href":"/api-reference/waba-analytics/získání-analytiky-konverzací"},{"title":"Získání analytiky šablon","deprecated":null,"version":null,"sidebarTitle":"Analytika šablon","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/analytics/templates","href":"/api-reference/waba-analytics/získání-analytiky-šablon"},{"title":"Povolení statistik šablon","deprecated":null,"version":null,"sidebarTitle":"Povolit statistiky","openapi":"/openapi/waba_rest/waba_restapi_v1.yaml post /whatsapp/analytics/templates/enable","href":"/api-reference/waba-analytics/povolení-statistik-šablon"}]}]},{"group":"Referenční tabulky","pages":[{"title":null,"description":null,"href":"/reference/errors"},{"title":null,"href":"/reference/rate-limits"},{"title":null,"description":null,"href":"/reference/phone-numbers"},{"title":"Parametry WhatsApp šablon","sidebarTitle":"WhatsApp šablony","href":"/reference/whatsapp-templates"},{"title":"Parametry WhatsApp textových zpráv","sidebarTitle":"WhatsApp text","href":"/reference/whatsapp-text"},{"title":"Parametry RCS zpráv","sidebarTitle":"RCS","href":"/reference/rcs"},{"title":null,"href":"/api-reference/json-v2/webhooks"}]}]},{"tab":"Koncepty","groups":[{"group":"Základní pojmy","pages":[{"title":null,"href":"/introduction"},{"title":null,"href":"/concepts/message-flow"},{"title":"Příjem a zpracování požadavku","sidebarTitle":"Příjem požadavku","href":"/concepts/request-acceptance"},{"title":"Kredit a účtování","sidebarTitle":"Kredit a účtování","href":"/concepts/credit-billing"},{"title":"Účtování zpráv podle kanálu","sidebarTitle":"Účtování zpráv","href":"/concepts/message-billing"},{"title":"Dobíjení kreditu","sidebarTitle":"Dobíjení kreditu","href":"/concepts/credit-topup"},{"title":"Fronty odesílání a priorita","sidebarTitle":"Fronty a priorita","href":"/concepts/sending-queues"},{"title":null,"href":"/concepts/channels"},{"title":"Odesílatelé, aliasy a výchozí odesílatel","sidebarTitle":"Odesílatelé","href":"/concepts/senders"},{"title":null,"href":"/concepts/message-ids"},{"title":"Doručování webhooků","sidebarTitle":"Doručování webhooků","href":"/concepts/webhook-delivery"},{"title":"Normalizace telefonních čísel","sidebarTitle":"Normalizace čísel","href":"/concepts/phone-normalization"},{"title":null,"href":"/concepts/scheduling"},{"title":"Typy WhatsApp zpráv na SmsManageru","sidebarTitle":"Typy WhatsApp zpráv","href":"/concepts/whatsapp-message-types"}]}]}]},"basePath":"","title":"Rate limits - SmsManager Developers","buildId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","deploymentId":"dpl_6PxPD4Fj1JDU9BJxEHvfdUmxKThw","dynamics":[],"chunks":[]}