rules_v1. It applies versioned rules to fresh
operational measurements and reports the deductions behind the score. A learned
estimator remains on the roadmap while Polymorfa collects production
measurements and trusted account-state labels.
Open Safety in Console, or call GET /platform/bansafe/health and
GET /platform/bansafe/health/{session} with a sessions:read credential.
Collection freshness and the source measurements have their own read surface.
See Telemetry and collection.
What the response means
A valid estimate includes:health, from 0 to 100;band, derived from that estimate;healthEstimatorVersionandhealthEvaluatedAt;healthFeatureCoverage, from 0 to 1;healthSource: "rules_v1"andhealthReliability: "rules_based"; andhealthExplanation, with bounded deductions and the evidence groups that were measured or missing.
rules_v1, healthModelVersion, healthProbabilities, and
mostLikelyHealthState are null. They remain in the response for a future
validated learned estimator. Do not treat rules_based as model confidence.
The displayed estimate can be older than the page load time. Read
healthEvaluatedAt as the time Polymorfa last estimated Health.
When Health is unavailable
health is null and band is unknown when Polymorfa cannot return a
supported present estimate. The response sets healthSource: "unavailable",
healthReliability: "unavailable", and an unavailable reason when known:
A response for a number that has never been evaluated has null Health metadata
and no unavailable reason. Do not render null as zero: zero is the lowest valid
Health estimate.
Observed account state is separate
observedAccountState reports a state Polymorfa directly observed through an
account check or restriction event. It contains state, observedAt, and a
customer-readable source. It is not inferred from Health, and Health is not
replaced by the observed state.
Recorded findings and Polymorfa restrictions are separate diagnostics. The
rules-v1 Health runtime does not refresh retained finding rows, so read each
finding’s lastSeenAt before acting on it. Their former point values are not
presented as current Health.
Health history
GET /platform/bansafe/health/{session}/history returns accepted evaluations for
that number. Each point carries the same source, estimator version, coverage,
reliability, explanation, and observed-state fields. It does not join retired
scores or warm-up send totals into the series.
Project Health rules
A project Health rule can act when a fresh, available Health estimate is lower than the chosen threshold. Equality does not trigger it. Available actions are:- stop the session while retaining linked credentials;
- slow sending to a configured rate;
- log out and require pairing again; and
- send an email or
bansafe.health_thresholdwebhook. The webhook option requires an enabled project-wide native endpoint subscribed to this event or to all events.
GET /platform/bansafe/health-actions?projectId={projectId} returns what each rule
action did. It reports the action, public status and outcome, triggering Health
and threshold, estimator provenance, and completion time. It does not expose
worker leases, retries, runtime identifiers, or free-form internal outcomes.
Reporting a ban yourself
If WhatsApp restricts a number and Polymorfa did not observe it, use Report a ban on the Safety page orPOST /platform/bansafe/incidents. The report becomes an
observed incident; it does not directly set or replace Health. Use a stable
Idempotency-Key when retrying the request.
Privacy boundary
Polymorfa uses operational counts, timing distributions, connection outcomes, and account-state checks from your own linked session. It does not use message text, media, recipient identifiers, or chat history to estimate Health. Optional device evidence can be unavailable when a report reaches collection limits. Absence of that evidence does not establish which device caused an outcome, so Polymorfa does not infer confident attribution from the absence.Webhooks
bansafe.health_threshold is emitted when a configured project rule queues an
action for a fresh Health estimate below its threshold. The payload carries the
session and project, Health and threshold, estimator, model, and policy versions, evaluation
time, and stable episode and action IDs. Deduplicate retries by the webhook
envelope ID, which is the action ID.
Provider enforcement, incident, claim, and Polymorfa action events remain
separate facts. See Webhooks.