35+ countries live across 4 regions

For your reviewers

Elsewhere

Get your coverage map

churn_tracker

churn_tracker returns the lifecycle events recorded for a phone number: deactivations, number swaps, suspensions and reactivations, each with the operator that recorded it and when.

A number that was recently deactivated and given to someone else is a common source of misdirected one-time codes and account takeovers. The event history tells you whether the number you hold for a customer may now belong to someone else.

Request

Send the number and churn_tracker in commands. No other input is needed.

{
  "number": "+12025550143",
  "commands": ["churn_tracker"]
}

churn_tracker is not available in every country. Where it is not available, see Billing.

Response

The churn_tracker block is a list of events:

{
  "status": 0,
  "status_message": "Response from one supplier",
  "churn_tracker": [
    {
      "operator": "Verizon Wireless",
      "action": "DE",
      "ts": "2026-06-14T09:12:00.000Z",
      "number": 12025550143
    },
    {
      "operator": "Verizon Wireless",
      "action": "SW",
      "ts": "2026-02-03T17:40:00.000Z",
      "number": 12025550143,
      "number2": 12025550178
    }
  ],
  "version": "..."
}
FieldTypeMeaning
operator string The operator that recorded the event.
action string The kind of event. See the table below.
ts string When the event happened, ISO 8601 in UTC, for example 2026-06-14T09:12:00.000Z.
number integer The phone number the event refers to, in international format without the +.
number2 integer For a number swap, the new number the subscriber moved to. Absent for other events.

action values

ValueMeaning
DEDeactivated.
SWNumber swap: the subscriber moved to number2.
SUSuspended.
REReactivated.

Do not assume the list is sorted: order the events by ts before reading the most recent one.

When there is no churn_tracker block

If no event is recorded for the number, or the source could not be reached, the response has no churn_tracker block. An empty list is never returned. The status is 4, and the status_message names churn_tracker among the commands that returned no data. If the number's country is not covered, the status is 2, or 4 when other commands were served.

Billing

A response with a churn_tracker block is charged. A response without it, including a number with no recorded events, is not charged.

Read this in the portal, with search and the reference beside it: Churn Tracker