BanSafe
Stop bans before they happen
BanSafe protects every Linked Devices number from the moment it pairs: human-paced sending, a warm-up for new numbers, and Health from our own AI model, with rules that act when it drops. Pro numbers carry BanSafe Pro Insurance.
Illustrative values, not live data.
- Health, with every deduction explained
- 0 to 100
- Daily warm-up allowance over 14 days
- 20 to 2,000
- Rule actions: slow down, stop or log out
- 3
- Of usage returned after a covered Pro ban
- 30 days
Safe Mode and warm-up
Send at a human pace.
Safe Mode adds presence, typing, read receipts and varied gaps between sends. The warm-up plan gives new numbers a daily allowance that grows. Both come with Standard and Pro and stay off until you turn them on.
BanSafe model
An AI model that knows a healthy number.
Our own model learns from what WhatsApp actually did to numbers, and scores each number's present condition from nearly 200 observed signals.
Health
A score with its reasons.
Until the model has enough evidence for a number, Health applies versioned rules to fresh operational counts, never message text, media or recipients. Every plan includes it for production Linked Devices numbers, Free too.
Project rules
Decide what happens below your line.
One rule per project. It acts only on a fresh score below your threshold, and checks Health again before it applies. Unknown or stale Health never triggers it.
- Slow down to a rate you set, up to the plan's limit
- Stop the number and keep its link for a restart
- Log it out so it must pair again
- Or only notify
- Email the team
- Send bansafe.health_threshold to your webhooks
- Every action and its outcome in the Console and the API
Incidents
A record of what WhatsApp did.
Polymorfa records each restriction it observes on a number, from a new conversation limit to a ban. Report one it missed so BanSafe learns from it.
Calls
BanSafe covers calls too.
WhatsApp restricts numbers whose calls draw reports, as it does for messages. BanSafe counts every call a number places and holds the calls a restriction would refuse.
BanSafe Pro Insurance
Banned on Pro? Your credits come back.
Included on every Pro number. You never file a claim.
In your code
BanSafe in your own code.
Settings, reads and webhooks use the Platform API with an organization key. Any HTTP client works too.
import { Client } from "@polymorfa/sdk";
const platform = new Client({
credential: { type: "organizationApiKey", value: process.env.POLYMORFA_KEY! },
});
await platform.projects.updateSafeMode(projectId, {
typing: "before_text",
pacing: "jittered",
});
await platform.projects.updateWarmupPlan(projectId, {
enabled: true,
dailyStart: 20,
warmupDays: 14,
});API surface
The BanSafe API.
Reads need sessions:read and changes need sessions:manage. The TypeScript SDK wraps every route below.
Protection settings
- PUT
/Set the project's Safe Mode ceilingplatform/ projects/ {projectId}/ safe-mode - PUT
/Override one numberplatform/ sessions/ {sessionId}/ safe-mode - PUT
/Set the warm-up planplatform/ projects/ {projectId}/ warmup-plan - PUT
/Set the project ruleplatform/ projects/ {projectId}/ health-policy - PUT
/Collect device evidence for claimsplatform/ projects/ {projectId}/ insurance-evidence
Health, incidents and claims
- GET
/Health for every numberplatform/ bansafe/ health - GET
/How a score changedplatform/ bansafe/ health/ {session}/ history - GET
/What each rule action didplatform/ bansafe/ health-actions - POST
/Report a ban Polymorfa missedplatform/ bansafe/ incidents - GET
/BanSafe Pro Insurance claimsplatform/ bansafe/ claims
Webhook events
- Event
bansafe.health_thresholdA rule fired below its threshold - Event
bansafe.actionA restriction changed or the allowance ran out - Event
bansafe.incidentA restriction was recorded or settled - Event
bansafe.claimA claim was filed or changed state - Event
session.restriction_updatedWhatsApp's limit on new chats started or ended
Start with a free number
Your first real number is free. Add more numbers on Pay-As-You-Go.