{"id":511,"date":"2026-10-28T16:05:10","date_gmt":"2026-10-28T16:05:10","guid":{"rendered":"https:\/\/vectalk.com.br\/blog\/whatsapp-api-rate-limit-throughput\/"},"modified":"2026-10-28T16:05:23","modified_gmt":"2026-10-28T16:05:23","slug":"whatsapp-api-rate-limit-throughput","status":"publish","type":"post","link":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/","title":{"rendered":"WhatsApp API throughput and rate limits: messages per second and error 131056"},"content":{"rendered":"\n<p><em>Updated on October 28, 2026<\/em><\/p>\n\n\n\n<p>The WhatsApp Cloud API supports, by default, up to <strong>80 messages per second (mps) per registered phone number<\/strong>, counting inbound and outbound traffic, and eligible numbers are upgraded automatically to up to 1,000 mps. Go above that pace and the API returns error <code>130429<\/code>. Error <code>131056<\/code> is a different thing: it is the <em>pair rate limit<\/em>, triggered when you send too many messages from the same number to the <strong>same recipient<\/strong> in a short time.<\/p>\n\n\n\n<p>This article explains how throughput, the pair rate limit, API call limits and the 24-hour messaging limit differ, which error codes each one returns, and shows a send queue with backoff in Node.js and Python.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Four limits that get mixed up<\/h2>\n\n\n\n<p>Developers new to the WhatsApp Business API tend to call everything a &#8220;rate limit&#8221;. In Meta&#8217;s documentation these are separate limits, with different causes and fixes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Limit<\/th><th>What it measures<\/th><th>Error<\/th><th>What to do<\/th><\/tr><\/thead><tbody><tr><td>Throughput<\/td><td>Messages per second for one phone number<\/td><td><code>130429<\/code><\/td><td>Slow down and retry<\/td><\/tr><tr><td>Pair rate limit<\/td><td>Messages from your number to the same user in a short window<\/td><td><code>131056<\/code><\/td><td>Wait before messaging that user again<\/td><\/tr><tr><td>API call limits<\/td><td>Requests from the app or account to the API<\/td><td><code>4<\/code> (app) and <code>80007<\/code> (WhatsApp Business account)<\/td><td>Reduce call frequency<\/td><\/tr><tr><td>Messaging limit<\/td><td>Unique recipients outside the customer service window in 24 hours, per business portfolio<\/td><td>Sends rejected above the limit<\/td><td>Move up tiers through quality and volume<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>The last one is about daily reach, not speed; see <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-phone-number-quality-rating\/\">WhatsApp phone number quality rating<\/a> for how quality affects it. This article focuses on the first three.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Throughput: messages per second<\/h2>\n\n\n\n<p>According to <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/throughput\" target=\"_blank\" rel=\"noreferrer noopener\">Meta&#8217;s throughput page<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each phone number registered on Cloud API supports <strong>up to 80 mps by default<\/strong>.<\/li>\n\n\n<li>Throughput counts <strong>inbound and outbound messages of all types<\/strong>. A number that receives a lot of messages has less headroom to send.<\/li>\n\n\n<li><strong>WhatsApp Business app numbers connected to the API<\/strong> (coexistence) have a fixed throughput of <strong>20 mps<\/strong>.<\/li>\n\n\n<li>Above the limit, the API returns <code>130429<\/code> until you are back within your allowed level.<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic upgrade to 1,000 mps<\/h3>\n\n\n\n<p>A number is upgraded automatically to up to 1,000 mps, free of charge and with no pricing change, when it meets all three conditions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The business portfolio has an <strong>unlimited<\/strong> messaging limit.<\/li>\n\n\n<li>The number has messaged <strong>100,000 or more<\/strong> unique WhatsApp user numbers outside a customer service window within a moving 24-hour period.<\/li>\n\n\n<li>The number&#8217;s <code>quality_score<\/code> is <strong>yellow (medium quality) or higher<\/strong>.<\/li>\n\n<\/ol>\n\n\n\n<p>During the upgrade, which can take up to 1 minute, the number is unavailable and the API returns error <code>131057<\/code>. When it finishes, a <code>phone_number_quality_update<\/code> webhook arrives with <code>event<\/code> set to <code>THROUGHPUT_UPGRADE<\/code>. To check a number&#8217;s current level:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-bash\">curl \"https:\/\/graph.facebook.com\/v26.0\/PHONE_NUMBER_ID?fields=throughput\" \\\n  -H \"Authorization: Bearer $TOKEN\"<\/code><\/pre>\n\n\n\n<p>The same page gives two practical tips for high-volume senders. First, your webhook server should handle roughly <strong>3x your outgoing message traffic<\/strong> (each sent message produces status events) <strong>plus 1x your expected incoming traffic<\/strong>, with median latency under 250 ms and fewer than 1% of requests above 1 second. Second, for media messages, use media IDs from a prior upload instead of links to files hosted on your own servers, to get the full benefit of higher throughput.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pair rate limit and error 131056<\/h2>\n\n\n\n<p>Throughput is designed for campaigns that reach <strong>many different users<\/strong>. If you send many messages to <strong>the same user<\/strong>, you hit a different limit. <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/support\/error-codes\" target=\"_blank\" rel=\"noreferrer noopener\">Meta&#8217;s error code table<\/a> describes <code>131056<\/code> as too many messages sent from the sender phone number to the same recipient phone number in a short period of time. The suggested fix is to wait and retry, if you really intend to send more messages to that number.<\/p>\n\n\n\n<p>Meta does not publish an exact figure for the pair rate limit in that documentation, so do not code against a fixed value. Typical scenarios that trigger <code>131056<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A bot that splits one long answer into ten consecutive messages.<\/li>\n\n\n<li>An integration stuck in a loop resending the same notification.<\/li>\n\n\n<li>Load tests aimed at a single test phone number.<\/li>\n\n\n<li>A broadcast with a duplicated list, sending the same template twice to every contact.<\/li>\n\n<\/ul>\n\n\n\n<p>The fix is almost always design, not infrastructure: merge content into one message, deduplicate the list, and space out sends to the same contact. For load tests, spread sends across several test recipients.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Call errors: 4, 80007 and 131048<\/h2>\n\n\n\n<p>On top of message limits, the API also limits <strong>calls<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>4<\/code>: the app has reached its API call rate limit. Meta suggests checking the app&#8217;s rate limit section in the App Dashboard and reducing the frequency or number of queries.<\/li>\n\n\n<li><code>80007<\/code>: the WhatsApp Business account has reached its rate limit. Same fix: try later and reduce frequency.<\/li>\n\n\n<li><code>131048<\/code>: not about speed. It means the number has sending restrictions due to quality; Meta&#8217;s advice is to check quality status in WhatsApp Manager. Retrying only makes it worse.<\/li>\n\n<\/ul>\n\n\n\n<p>Query errors (<code>4<\/code> and <code>80007<\/code>) are common in integrations that poll, such as checking template or phone number status every few seconds. Use webhooks instead; they tell you when something changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Queue with backoff: the recommended design<\/h2>\n\n\n\n<p>To respect all of these limits at once, the simplest design is a queue with three rules:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Global pace per number<\/strong>: a limiter that releases at most N sends per second, with N below the number&#8217;s throughput (for example 60 for a standard 80 mps number, leaving room for inbound messages).<\/li>\n\n\n<li><strong>Retry with exponential backoff and jitter<\/strong> for <code>130429<\/code>, <code>4<\/code> and <code>80007<\/code>: wait 1 s, 2 s, 4 s, 8 s&#8230; with some randomness, up to a cap.<\/li>\n\n\n<li><strong>Per-recipient deferral<\/strong> for <code>131056<\/code>: the send goes back into that contact&#8217;s queue with a delay, without blocking everyone else.<\/li>\n\n<\/ol>\n\n\n\n<p>Non-transient errors such as <code>131048<\/code> should not be retried. Stop, log and investigate.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Node.js example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-js\">const GRAPH = 'https:\/\/graph.facebook.com\/v26.0';\nconst GLOBAL_RETRY = new Set([130429, 4, 80007]);\nconst MPS = 60; \/\/ below the default 80 mps\n\nconst sleep = (ms) =&gt; new Promise((r) =&gt; setTimeout(r, ms));\n\nasync function send(phoneNumberId, token, payload) {\n  const res = await fetch(`${GRAPH}\/${phoneNumberId}\/messages`, {\n    method: 'POST',\n    headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application\/json' },\n    body: JSON.stringify(payload),\n  });\n  const json = await res.json();\n  if (res.ok) return { ok: true, id: json.messages?.[0]?.id };\n  return { ok: false, code: json.error?.code };\n}\n\nexport async function processQueue(queue, phoneNumberId, token) {\n  const interval = 1000 \/ MPS;\n  while (queue.length) {\n    const item = queue.shift();\n    if (item.notBefore &amp;&amp; item.notBefore &gt; Date.now()) {\n      queue.push(item); \/\/ not this contact's turn yet\n      await sleep(interval);\n      continue;\n    }\n\n    const r = await send(phoneNumberId, token, item.payload);\n    if (r.ok) {\n      item.onSuccess?.(r.id);\n    } else if (GLOBAL_RETRY.has(r.code) &amp;&amp; (item.attempts ?? 0) &lt; 6) {\n      item.attempts = (item.attempts || 0) + 1;\n      const wait = Math.min(2 ** item.attempts * 1000, 60000) + Math.random() * 500;\n      await sleep(wait); \/\/ hold the whole number\n      queue.unshift(item);\n    } else if (r.code === 131056) {\n      item.notBefore = Date.now() + 30000; \/\/ defer this recipient only\n      queue.push(item);\n    } else {\n      item.onFailure?.(r.code); \/\/ 131048 and others: do not retry\n    }\n    await sleep(interval);\n  }\n}<\/code><\/pre>\n\n\n\n<p>The 30-second delay for <code>131056<\/code> is a starting point, not a Meta figure: tune it from your own logs. In production, replace the array with a persistent queue (Redis, SQS, RabbitMQ) so sends survive a process crash.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Python example<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"language-python\">import asyncio\nimport random\n\nimport httpx\n\nGRAPH = \"https:\/\/graph.facebook.com\/v26.0\"\nGLOBAL_RETRY = {130429, 4, 80007}\nMPS = 60\n\n\nasync def send(client, phone_number_id, payload, attempts=0):\n    r = await client.post(f\"{GRAPH}\/{phone_number_id}\/messages\", json=payload)\n    if r.status_code == 200:\n        return r.json()[\"messages\"][0][\"id\"]\n\n    code = r.json().get(\"error\", {}).get(\"code\")\n    if code in GLOBAL_RETRY and attempts &lt; 6:\n        await asyncio.sleep(min(2 ** attempts, 60) + random.random() \/ 2)\n        return await send(client, phone_number_id, payload, attempts + 1)\n    if code == 131056:\n        await asyncio.sleep(30)  # defer this recipient only\n        return await send(client, phone_number_id, payload, attempts + 1)\n    raise RuntimeError(f\"permanent failure: {code}\")\n\n\nasync def broadcast(phone_number_id, token, payloads):\n    headers = {\"Authorization\": f\"Bearer {token}\"}\n    async with httpx.AsyncClient(headers=headers, timeout=30) as client:\n        tasks = []\n        for p in payloads:\n            tasks.append(asyncio.create_task(send(client, phone_number_id, p)))\n            await asyncio.sleep(1 \/ MPS)  # global pace\n        return await asyncio.gather(*tasks, return_exceptions=True)<\/code><\/pre>\n\n\n\n<p>A <code>200<\/code> response only means the message was accepted. Later failures arrive in the status webhook with <code>status: \"failed\"<\/code> and the code under <code>errors<\/code>; handle the same codes in both places. See <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-message-status-webhook\/\">WhatsApp API message status webhooks<\/a> for the format, and <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-error-codes\/\">WhatsApp API error codes<\/a> for the rest of the list.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Checklist before a large send<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Know the number&#8217;s throughput (<code>?fields=throughput<\/code>) and set your limiter below it.<\/li>\n\n\n<li>If the number uses coexistence, plan for 20 mps.<\/li>\n\n\n<li>Deduplicate the list so no contact gets the same message twice.<\/li>\n\n\n<li>Make sure the volume fits your 24-hour messaging limit.<\/li>\n\n\n<li>Size the webhook for roughly 3x your outgoing traffic.<\/li>\n\n\n<li>Upload media in advance and send by ID.<\/li>\n\n\n<li>Log error codes so you can tune the pace with real data.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How to do this with Vectalk<\/h2>\n\n\n\n<p>Vectalk is a proxy for Meta&#8217;s official Cloud API, so the limits in this article are Meta&#8217;s own: 80 mps per number by default, 20 mps with coexistence, and the same error codes, returned in the response body and in webhooks in the official format. Sends go through <code>POST https:\/\/apis.vectalk.com.br\/api\/messages<\/code>, and the number&#8217;s throughput level shows up in the <code>GET \/phone-numbers<\/code> response of the <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/phone-numbers\/get\">Vectalk API<\/a>. The queue and backoff logic shown here works unchanged. Sign up at <a href=\"https:\/\/apps.vectalk.com.br\/register\">apps.vectalk.com.br\/register<\/a> or read the <a href=\"https:\/\/docs.vectalk.com.br\/quickstart\">quickstart<\/a>.<\/p>\n\n\n\n<p>If you are still building the foundation of your integration, see how to <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-webhook-signature-validation\/\">validate the webhook signature<\/a> and how to <a href=\"https:\/\/vectalk.com.br\/blog\/en\/register-phone-number-whatsapp-cloud-api\/\">register the phone number on Cloud API<\/a>. The big picture is in our <a href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-cloud-api-en\/\">WhatsApp Cloud API guide<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">How many messages per second can the WhatsApp API send?<\/h3>\n\n\n\n<p>Up to 80 per second per registered number by default, counting inbound and outbound. Eligible numbers are upgraded automatically to up to 1,000 mps. Numbers in coexistence with the WhatsApp Business app are fixed at 20 mps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is the difference between error 130429 and 131056?<\/h3>\n\n\n\n<p><code>130429<\/code> is throughput: the number exceeded its total allowed pace, regardless of recipient. <code>131056<\/code> is the pair rate limit: too many messages to the same recipient in a short time. The first calls for a slower global pace; the second for spacing out sends to that contact.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do multiple phone numbers increase speed?<\/h3>\n\n\n\n<p>Throughput is per number, so several numbers add up in speed. But the 24-hour unique-recipient limit belongs to the business portfolio and is shared by all of its numbers, and each number&#8217;s quality is still assessed. More numbers do not fix a reach limit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Am I charged for a message rejected by a rate limit?<\/h3>\n\n\n\n<p>Meta charges for delivered messages. A message rejected with <code>130429<\/code> or <code>131056<\/code> never reaches the recipient and should not be billed; always reconcile against status webhooks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I know if my number already has 1,000 mps?<\/h3>\n\n\n\n<p>Call <code>GET \/PHONE_NUMBER_ID?fields=throughput<\/code>. When the upgrade happens, Meta also sends a <code>phone_number_quality_update<\/code> webhook with the <code>THROUGHPUT_UPGRADE<\/code> event.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Official sources consulted on October 28, 2026:<\/strong> <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/throughput\" target=\"_blank\" rel=\"noreferrer noopener\">Throughput (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/support\/error-codes\" target=\"_blank\" rel=\"noreferrer noopener\">Cloud API error codes (Meta)<\/a>, <a href=\"https:\/\/developers.facebook.com\/documentation\/business-messaging\/whatsapp\/messaging-limits\" target=\"_blank\" rel=\"noreferrer noopener\">Messaging limits (Meta)<\/a>, <a href=\"https:\/\/docs.vectalk.com.br\/api-reference\/phone-numbers\/get\">Phone numbers in the Vectalk API<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How many messages per second the WhatsApp Cloud API accepts, what errors 130429 and 131056 mean, and how to build a send queue with backoff that stays within the limits.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-511","post","type-post","status-publish","format-standard","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WhatsApp API Rate Limits: Throughput and Error 131056<\/title>\n<meta name=\"description\" content=\"WhatsApp API rate limits: 80 messages per second per number, upgrade to 1,000, errors 130429 and 131056, and how to build a send queue with backoff.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WhatsApp API Rate Limits: Throughput and Error 131056\" \/>\n<meta property=\"og:description\" content=\"WhatsApp API rate limits: 80 messages per second per number, upgrade to 1,000, errors 130429 and 131056, and how to build a send queue with backoff.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Vectalk\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-28T16:05:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-28T16:05:23+00:00\" \/>\n<meta name=\"author\" content=\"wanderleyfcunha\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"wanderleyfcunha\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/\"},\"author\":{\"name\":\"wanderleyfcunha\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"headline\":\"WhatsApp API throughput and rate limits: messages per second and error 131056\",\"datePublished\":\"2026-10-28T16:05:10+00:00\",\"dateModified\":\"2026-10-28T16:05:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/\"},\"wordCount\":1436,\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/\",\"name\":\"WhatsApp API Rate Limits: Throughput and Error 131056\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-28T16:05:10+00:00\",\"dateModified\":\"2026-10-28T16:05:23+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\"},\"description\":\"WhatsApp API rate limits: 80 messages per second per number, upgrade to 1,000, errors 130429 and 131056, and how to build a send queue with backoff.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/en\\\/whatsapp-api-rate-limit-throughput\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WhatsApp API throughput and rate limits: messages per second and error 131056\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/\",\"name\":\"Blog Vectalk\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vectalk.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/ff36ecd9d8257856f227f8e5d639db2b\",\"name\":\"wanderleyfcunha\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g\",\"caption\":\"wanderleyfcunha\"},\"sameAs\":[\"https:\\\/\\\/vectalk.com.br\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WhatsApp API Rate Limits: Throughput and Error 131056","description":"WhatsApp API rate limits: 80 messages per second per number, upgrade to 1,000, errors 130429 and 131056, and how to build a send queue with backoff.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/","og_locale":"en_US","og_type":"article","og_title":"WhatsApp API Rate Limits: Throughput and Error 131056","og_description":"WhatsApp API rate limits: 80 messages per second per number, upgrade to 1,000, errors 130429 and 131056, and how to build a send queue with backoff.","og_url":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/","og_site_name":"Blog Vectalk","article_published_time":"2026-10-28T16:05:10+00:00","article_modified_time":"2026-10-28T16:05:23+00:00","author":"wanderleyfcunha","twitter_card":"summary_large_image","twitter_misc":{"Written by":"wanderleyfcunha","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/#article","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/"},"author":{"name":"wanderleyfcunha","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"headline":"WhatsApp API throughput and rate limits: messages per second and error 131056","datePublished":"2026-10-28T16:05:10+00:00","dateModified":"2026-10-28T16:05:23+00:00","mainEntityOfPage":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/"},"wordCount":1436,"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/","url":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/","name":"WhatsApp API Rate Limits: Throughput and Error 131056","isPartOf":{"@id":"https:\/\/vectalk.com.br\/blog\/#website"},"datePublished":"2026-10-28T16:05:10+00:00","dateModified":"2026-10-28T16:05:23+00:00","author":{"@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b"},"description":"WhatsApp API rate limits: 80 messages per second per number, upgrade to 1,000, errors 130429 and 131056, and how to build a send queue with backoff.","breadcrumb":{"@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vectalk.com.br\/blog\/en\/whatsapp-api-rate-limit-throughput\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vectalk.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"WhatsApp API throughput and rate limits: messages per second and error 131056"}]},{"@type":"WebSite","@id":"https:\/\/vectalk.com.br\/blog\/#website","url":"https:\/\/vectalk.com.br\/blog\/","name":"Blog Vectalk","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vectalk.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/vectalk.com.br\/blog\/#\/schema\/person\/ff36ecd9d8257856f227f8e5d639db2b","name":"wanderleyfcunha","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21c37077f1731eb558973f27a7b647d55f72fde5200a843ac5f5345b247ea725?s=96&d=mm&r=g","caption":"wanderleyfcunha"},"sameAs":["https:\/\/vectalk.com.br\/blog"]}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/comments?post=511"}],"version-history":[{"count":1,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/511\/revisions"}],"predecessor-version":[{"id":514,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/posts\/511\/revisions\/514"}],"wp:attachment":[{"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/media?parent=511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/categories?post=511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vectalk.com.br\/blog\/wp-json\/wp\/v2\/tags?post=511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}