[{"data":1,"prerenderedAt":467},["ShallowReactive",2],{"blog:post:how-to-avoid-whatsapp-bans":3},{"id":4,"title":5,"author":6,"body":7,"date":448,"description":449,"extension":450,"links_to":451,"meta":456,"navigation":457,"path":458,"seo":459,"stem":460,"tags":461,"updated":465,"__hash__":466},"blog\u002Fblog\u002Fhow-to-avoid-whatsapp-bans.md","How to Avoid WhatsApp Bans When You Automate","Wapito team",{"type":8,"value":9,"toc":428},"minimark",[10,25,30,42,45,49,52,63,69,75,81,96,100,103,108,119,123,137,141,155,159,170,173,177,188,192,198,213,219,228,232,239,249,255,261,277,288,292,295,325,335,339,342,357,360,364,378,385,389],[11,12,13,14,19,20,24],"p",{},"Every unofficial WhatsApp API — Wapito, its competitors, the open-source libraries underneath all\nof them — links a real WhatsApp account and drives it the way the phone does. That is what makes\n",[15,16,18],"a",{"href":17},"\u002Fwhatsapp-api\u002Fsend-message-without-template\u002F","messaging without a template",", creating groups and\nposting to Channels possible at all. It is also why the account can be banned, and why the\nmarketing around \"ban-proof\" numbers is the most dishonest corner of this industry. This is the\nlong version of our anti-ban advice: how WhatsApp seems to decide, what the numbers in our\ncontrols are and why they are what they are, a day-by-day plan for a new number, and what to do\nwhen the ban arrives anyway. The short version lives in the ",[15,21,23],{"href":22},"\u002Fdocs\u002Fanti-ban-guide\u002F","docs",".",[26,27,29],"h2",{"id":28},"start-with-the-premise-nobody-puts-on-a-pricing-page","Start with the premise nobody puts on a pricing page",[11,31,32,33,37,38,41],{},"WhatsApp's terms do not permit automated or bulk messaging through the consumer app, and every\nlinked-number API is, as far as WhatsApp is concerned, a very well-behaved consumer app. The\nplatform is not trying to detect ",[34,35,36],"em",{},"software","; it cannot tell a Python script from a fast typist,\nand it does not need to. It is trying to detect ",[34,39,40],{},"spam",", and it does that with the signals spam\nproduces: complaints, one-directional traffic, sudden volume from young accounts, identical\ncontent, and people being put into groups they never asked to join.",[11,43,44],{},"That framing matters because it tells you what a provider can and cannot do. A provider can\nmake the traffic it sends look like a person's — paced, varied, reactive, respectful of the\nwarnings WhatsApp sends back. A provider cannot make unwanted messages wanted. So the honest\npromise is a narrow one: good defaults you cannot switch off, limits that refuse a bad idea\nbefore WhatsApp notices it, and fast, clear signals when the number is in trouble. Anything\nbroader is a promise about WhatsApp's decisions, which nobody outside Meta gets to make.",[26,46,48],{"id":47},"how-the-ban-decision-seems-to-work","How the ban decision seems to work",[11,50,51],{},"Meta does not publish the rules, and they change. What follows is consistent with what teams\nrunning linked numbers have observed for years, and with our own logs.",[11,53,54,58,59,62],{},[55,56,57],"strong",{},"Reports dominate."," When a recipient taps ",[34,60,61],{},"Report",", WhatsApp receives the last several messages\nyou sent them, and a report is a human saying \"I did not want this\". A young number can be gone\nafter a handful; an old number with a long history of two-way conversations absorbs far more. The\npractical corollary: the messages most likely to be reported are the ones to people who do not\nknow you, and the most reported action of all is adding someone to a group.",[11,64,65,68],{},[55,66,67],{},"Ratios matter more than totals."," A number that sends 500 messages a day and receives 400\nreplies looks like a busy shop. A number that sends 500 and receives 4 looks like a broadcaster.\nThe absolute number matters less than the share of conversations the other side started or\ncontinued.",[11,70,71,74],{},[55,72,73],{},"Age and history are a buffer."," Accounts accumulate trust: time since registration, contacts\nsaved, groups joined, calls made, a profile name and photo, the same device, a stable network. A\nfreshly bought virtual number linked from a datacenter with an empty profile has none of that\nbuffer and is judged on its first hundred messages.",[11,76,77,80],{},[55,78,79],{},"Timing and shape are secondary signals."," Perfectly regular intervals, sends at 3 a.m. local\ntime, no \"typing…\" indicator, identical text with a link in the first line — none of these ban a\nnumber alone, but each one lowers the number of reports it takes.",[11,82,83,86,87,90,91,95],{},[55,84,85],{},"WhatsApp warns before it bans, sometimes."," The ",[34,88,89],{},"timelock"," — a state in which the number may\nreply but may not start new conversations for a period — is a warning shot. So is a burst of\n",[92,93,94],"code",{},"failed"," delivery receipts. Numbers that respond to the warning by slowing down usually survive;\nnumbers that route around it usually do not.",[26,97,99],{"id":98},"the-four-controls-and-where-the-numbers-come-from","The four controls, and where the numbers come from",[11,101,102],{},"Wapito applies four controls to every channel, on every plan, and none of them can be raised by\npaying more. Here is each one with its numbers and the reasoning behind them.",[104,105,107],"h3",{"id":106},"_1-send-pacing-15-seconds-plus-jitter","1. Send pacing: 1.5 seconds plus jitter",[11,109,110,111,114,115,118],{},"Every channel has one send queue. Messages leave it about ",[92,112,113],{},"send_delay_ms"," apart — 1,500 ms by\ndefault, never below 500 ms on Sandbox — plus a random 0–1,500 ms of jitter, so the gaps are\nnever identical. A human on a phone sends a short message every few seconds at most, and rarely\nat a metronome's rhythm; the queue reproduces that. A producer that pushes faster than the queue\ndrains is refused with ",[92,116,117],{},"429 send_rate_limited"," once a call would wait more than twenty seconds,\nwhich is the platform's way of saying the number is at its natural ceiling.",[104,120,122],{"id":121},"_2-typing-simulation-60-ms-per-character-capped-at-8-seconds","2. Typing simulation: 60 ms per character, capped at 8 seconds",[11,124,125,126,129,130,133,134,136],{},"With ",[92,127,128],{},"typing_simulation: \"auto\"",", or a ",[92,131,132],{},"typing_time"," on an individual send, the recipient sees\n\"typing…\" for a duration proportional to the message before it arrives, and a reply to an\ninbound message marks it read first. Sixty milliseconds a character is roughly a fast phone\ntypist; the eight-second cap keeps long messages from stalling the queue. On Sandbox, a channel\nsending more than twenty messages a minute without ",[92,135,132],{}," has typing switched on for it.",[104,138,140],{"id":139},"_3-the-warm-up-ladder-50-100-200-350-500-750-1000","3. The warm-up ladder: 50 → 100 → 200 → 350 → 500 → 750 → 1,000",[11,142,143,144,147,148,151,152,24],{},"A newly linked number may send fifty messages on its first day, a hundred on the second, then\n200, 350, 500, 750 and 1,000, and only from the eighth day is it bound by the plan alone. The\ncurve is what a genuinely growing account looks like — roughly doubling early, then flattening —\nand it follows the ",[34,145,146],{},"phone number",", not the channel: a disconnect, a reconnect or an engine switch\ndoes not reset it, and a different number linked to the same channel starts from day zero. A send\npast the day's rung answers ",[92,149,150],{},"429 warmup_limit"," with the rung and the day in ",[92,153,154],{},"details",[104,156,158],{"id":157},"_4-the-cold-send-guard-10-20-then-60-or-20-an-hour","4. The cold-send guard: 10, 20, then 60 or 20 an hour",[11,160,161,162,165,166,169],{},"A recipient is cold when they have never messaged the number, or when your first message to them\nis less than 24 hours old and they have not replied. Each hour a channel may ",[34,163,164],{},"start"," only so many\ncold conversations: ten on days 0–1, twenty on days 2–6, then sixty on Premium and twenty on\nSandbox. Follow-ups to a cold recipient you already wrote to this hour cost nothing; once the\nhour's budget is spent, every cold send — follow-ups included — answers ",[92,167,168],{},"429 cold_send_limit","\nuntil it resets, while replies to people who wrote to you flow unchanged. Groups and Channels are\nnever cold, because nobody reports a broadcast they subscribed to.",[11,171,172],{},"This is the control that makes \"reply-first\" a property of the platform rather than a line in a\nguide, and it is the one that surprises teams arriving from a library. It is set where it is\nbecause sixty new conversations an hour is already a lot for a human, and because the first\nmessage to a stranger is the message most likely to be reported.",[104,174,176],{"id":175},"and-the-one-whatsapp-applies-itself","And the one WhatsApp applies itself",[11,178,179,180,183,184,187],{},"When WhatsApp timelocks a number, Wapito reads it from the engine, exposes it in\n",[92,181,182],{},"GET \u002Fchannel\u002Flimits",", answers cold sends with ",[92,185,186],{},"423 reachout_timelocked"," and lets replies through.\nThe right response to a timelock is to send less for a few days, not to find a way to send the\nsame amount.",[26,189,191],{"id":190},"a-plan-for-a-new-number-day-by-day","A plan for a new number, day by day",[11,193,194,197],{},[55,195,196],{},"A week before linking."," Use a real SIM with some history if you can; a number that has made\ncalls and received texts is not a number bought this morning. Install WhatsApp on a real phone,\nset a profile name and photo, save a few dozen contacts, join a group or two, exchange messages\nwith people who know you. Give the account a life before it gets a job.",[11,199,200,203,204,208,209,212],{},[55,201,202],{},"Day 0."," Link the number by ",[15,205,207],{"href":206},"\u002Fwhatsapp-api\u002Fconnect-number-qr-pairing\u002F","pairing code or QR",",\nthen send fewer messages than you are allowed to — and only to people who already have a\nconversation with the number. Test the webhooks. Subscribe to the ",[92,210,211],{},"channel"," event now, so a ban\nreaches your on-call rather than your inbox.",[11,214,215,218],{},[55,216,217],{},"Days 1–6."," Let the ladder climb without pushing it. Answer every reply promptly; two-way\ntraffic is the buffer you are building. Keep the phone itself in use: reading, replying, calling.\nIf you must reach people who have not written to you, keep to the hourly cold budget and vary\nthe wording of every message.",[11,220,221,224,225,227],{},[55,222,223],{},"Week 2 onward."," Bring production traffic in gradually. Watch the ratio of failed delivery\nreceipts, the volume of inbound messages, and ",[92,226,89],{}," in the limits endpoint. If any of the\nthree moves the wrong way, halve the volume for a few days.",[26,229,231],{"id":230},"designing-the-traffic-so-it-is-wanted","Designing the traffic so it is wanted",[11,233,234,235,238],{},"The controls bound the shape of the traffic. What is ",[34,236,237],{},"in"," the messages is up to you, and it\ndecides the report rate.",[11,240,241,244,245,248],{},[55,242,243],{},"Make the customer speak first."," A ",[92,246,247],{},"wa.me"," link on the website, a QR code on the receipt, a\nkeyword in an ad, a \"message us on WhatsApp\" button at the end of a form — anything that makes the\ncustomer's message the trigger. Once they have written, the cold-send guard never applies to\nthat conversation, and the traffic is exactly the kind WhatsApp likes.",[11,250,251,254],{},[55,252,253],{},"Ask, and honour \"stop\"."," People who opted in report far less, and people whose \"STOP\" was\nobeyed almost never do. Record opt-outs against the account identifier, not just the phone\nnumber, so a later message from the same person's LID is caught.",[11,256,257,260],{},[55,258,259],{},"Write like a person, every time."," Use the name, vary the sentences, put the link in the\nsecond message if you need a link at all, avoid sending outside the recipient's waking hours,\nand never send the same paragraph to a thousand people. If a message would look like spam on\nyour own phone, it looks like spam on theirs.",[11,262,263,266,267,271,272,276],{},[55,264,265],{},"Prefer invitations to adds."," For groups, share an ",[15,268,270],{"href":269},"\u002Fwhatsapp-api\u002Fgroup-invite-link\u002F","invite link","\nand let people join rather than adding them yourself; a member who chose to join does not report\nthe group. Keep ",[15,273,275],{"href":274},"\u002Fwhatsapp-api\u002Fsend-group-message\u002F","what you send to a group"," to what its members\nsigned up for.",[11,278,279,282,283,287],{},[55,280,281],{},"Check numbers the way the platform paces them."," Bulk ",[15,284,286],{"href":285},"\u002Fwhatsapp-api\u002Fcheck-number\u002F","number checks","\nare throttled — fifty per request, low concurrency, a daily quota — because verifying a large\nlist of strangers is itself a signal that a list of strangers is about to be messaged. Check what\nyou need, when you need it.",[26,289,291],{"id":290},"watching-the-number","Watching the number",[11,293,294],{},"Three signals tell you the number is in trouble before WhatsApp does, and all three are in the\nAPI:",[296,297,298,310,313],"ul",{},[299,300,301,302,305,306,309],"li",{},"The share of ",[92,303,304],{},"messages.status"," events with ",[92,307,308],{},"status: \"failed\"",". A few are normal; a rising share\nmeans messages are not being accepted for delivery.",[299,311,312],{},"Inbound volume. A number that used to receive replies and suddenly does not has either lost\nits audience or lost its standing.",[299,314,315,318,319,321,322,324],{},[92,316,317],{},"timelock.active"," in ",[92,320,182],{},", and ",[92,323,186],{}," in your error logs.",[11,326,327,328,330,331,334],{},"And the one signal that tells you it is over: the ",[92,329,211],{}," event with ",[92,332,333],{},"reason: \"banned\"",". Wapito\nstops the session, marks the channel banned and e-mails the account owner within about a minute\nof the engine reporting it.",[26,336,338],{"id":337},"when-it-happens-anyway","When it happens anyway",[11,340,341],{},"Sometimes it will. WhatsApp bans numbers that did nothing on this list, and it bans them for\nthings nobody has yet identified; anyone who says their customers never get banned is either\nnew or not telling you.",[11,343,344,345,348,349,352,353,356],{},"A ",[55,346,347],{},"temporary ban"," shows a countdown in the app, usually hours to a few days. Wait it out, link\nthe number again, and come back at a fraction of the old volume; the ladder does not restart for\nthe same number, so the restraint is yours to apply. A ",[55,350,351],{},"permanent ban"," shows a ",[34,354,355],{},"Request a\nreview"," button. The review is between you and WhatsApp — a provider has no channel to Meta and\nno appeal to run for you — and it rarely succeeds for numbers that were, in fact, broadcasting.\nMove the channel to a new number, which restarts the ladder, and change the behaviour that led\nhere first.",[11,358,359],{},"Do not respond to a ban by buying ten numbers and rotating through them. Number farms are the\npattern the platform is best at recognising, they burn faster with each generation, and they\nconvert a recoverable situation into a permanent one for every number involved.",[26,361,363],{"id":362},"what-no-provider-can-promise-you","What no provider can promise you",[296,365,366,369,372,375],{},[299,367,368],{},"That your number will not be banned. Not with a proxy, not with \"warmed\" numbers, not with an\n\"anti-ban algorithm\". The judgement is WhatsApp's.",[299,370,371],{},"That a ban can be reversed. There is no back channel.",[299,373,374],{},"That bulk cold outreach can be made safe. It can be made slower, which helps; it cannot be made\nwanted, which is what matters.",[299,376,377],{},"That a control can be switched off for the right price. If a provider offers to lift its\npacing for a premium tier, it is selling you a faster ban.",[11,379,380,381,384],{},"What a provider ",[34,382,383],{},"can"," promise — what Wapito promises — is that every one of the controls above is\non for every channel, that the limits say no before WhatsApp does, that a timelock or a ban is\nreported to you within a minute, and that this page will keep saying so.",[26,386,388],{"id":387},"the-checklist","The checklist",[390,391,392,395,401,404,407,410,413,416,422],"ol",{},[299,393,394],{},"A real number with history, a profile name and photo, used by a human before it is linked.",[299,396,397,398,400],{},"Linked by pairing code, tested with your own second phone, ",[92,399,211],{}," event subscribed.",[299,402,403],{},"Traffic that the customer starts: links, QR codes, keywords, forms.",[299,405,406],{},"Opt-in recorded, opt-out honoured, keyed on the account identifier.",[299,408,409],{},"Varied wording, no link in the first message, sends in waking hours.",[299,411,412],{},"Invite links instead of group adds; announcements members asked for.",[299,414,415],{},"Number checks only for numbers you are about to message.",[299,417,418,419,421],{},"Failed-receipt ratio, inbound volume and ",[92,420,89],{}," on a dashboard someone looks at.",[299,423,424,425,427],{},"A plan for the ban: who gets the ",[92,426,211],{}," event, what stops, which number takes over.",{"title":429,"searchDepth":430,"depth":430,"links":431},"",2,[432,433,434,442,443,444,445,446,447],{"id":28,"depth":430,"text":29},{"id":47,"depth":430,"text":48},{"id":98,"depth":430,"text":99,"children":435},[436,438,439,440,441],{"id":106,"depth":437,"text":107},3,{"id":121,"depth":437,"text":122},{"id":139,"depth":437,"text":140},{"id":157,"depth":437,"text":158},{"id":175,"depth":437,"text":176},{"id":190,"depth":430,"text":191},{"id":230,"depth":430,"text":231},{"id":290,"depth":430,"text":291},{"id":337,"depth":430,"text":338},{"id":362,"depth":430,"text":363},{"id":387,"depth":430,"text":388},"2026-09-15","The honest anti-ban guide: warm-up ladders, cold-send limits, typing simulation, timelocks, and what no unofficial WhatsApp API provider can promise you.","md",[452,453,454,455],"send-message-without-template","connect-number-qr-pairing","check-number","send-group-message",{},true,"\u002Fblog\u002Fhow-to-avoid-whatsapp-bans",{"title":5,"description":449},"blog\u002Fhow-to-avoid-whatsapp-bans",[462,463,464],"anti-ban","operations","honesty",null,"jlO6ugSiwNTEg6knr-z6nl2TpJEmegh-miHDw987dJ8",1790464894221]