Carrier IntelligenceNovember 12, 2026 · 18 min read

MVNO Carrier Visibility: See Beyond Verizon, AT&T, and T-Mobile

If your carrier lookup keeps returning Verizon, AT&T, or T-Mobile when you know half your list is on Cricket, TracFone, or Mint, your vendor is not broken — you are seeing the structural limit of block-level carrier data. This guide explains exactly why that happens, what can and cannot be known about MVNO numbers, and how to build call and SMS suppression logic that works with the physics of the data instead of against it.

The scenario we will use throughout: a health insurance distribution agency running large-scale ACA outreach. They pay for calls to numbers their suppression list should have blocked, because MVNO customers rotate numbers faster than the list updates. Sound familiar? Every number, block count, and response below comes from real lookups against our production carrier dataset.

Why your lookup says Verizon when the phone is on Cricket

Every US phone number belongs to a thousand-block — a slice of an exchange (NPA-NXX) identified by the seventh digit. Each block is registered to one Operating Company Number (OCN), and standard carrier lookup — including the basic Twilio lookup — reports that registration.

Here is the critical fact: MVNOs do not own blocks. Cricket, TracFone, Mint, Boost, Metro, Visible, Ting, and US Mobile collectively own zero of the 1,516,579 active NANP block assignments in our January 2026 dataset. Their numbers are issued from three places:

Block ownerActive blocksWhat runs on it
AT&T262,337Host network — includes most Cricket and other AT&T-family MVNO numbers
T-Mobile237,950Host network — includes Mint, Metro, and most T-Mobile-family MVNO numbers
Verizon Wireless159,942Host network — includes Visible, TracFone, and Verizon-family MVNO numbers
Onvoy (wholesale)157,988Enabling carrier — VoIP apps, second-number services, many MVNO eSIMs
Bandwidth.com (wholesale)80,817Enabling carrier — Google Voice, TextNow-style services, CPaaS numbers
Cricket, TracFone, Mint, Boost, Metro, Visible, Ting, US Mobile0MVNO brands own no rate-center blocks at all

So when your prospect's Cricket number comes back as AT&T, that is not an error — the number genuinely lives in an AT&T-owned block. The MVNO relationship exists at the subscriber-line level, inside the host network's HLR, and in number-portability records. No block-level database from any vendor can name the MVNO brand for a specific number, because that mapping is not in the block data. Anyone who tells you otherwise is selling you per-line data with a block-level label.

What you CAN know at block level — and it is a lot

While the MVNO brand is invisible, four block-level signals drive real suppression and routing decisions, and all four come back in a single Phone-Check lookup:

  1. Line type. Each block carries a utilization type: standard landline, cellular, VoIP, or pager. This is the foundation for blocking VoIP and landlines — the exact filtering your TCPA exposure depends on.
  2. Operating carrier and corporate family. The OCN, its common name, and the holding company behind it. Knowing a number sits with Onvoy rather than Verizon Wireless / Verizon Communications changes how you treat it.
  3. Wholesale-hosted flag. Blocks operated by wholesale and enabling carriers — Onvoy, Bandwidth.com, Neutral Tandem, Peerless, Inteliquent, iBasis, Voxbeam — plus wireless-reseller (WRSL) OCNs. This is where MVNO eSIMs, second-number apps, and burner traffic concentrate. It is the closest honest signal to "likely prepaid or reseller" that block data supports.
  4. Exchange carrier mix. Who operates every block in the exchange, not just the queried one. An exchange split between a host MNO and Bandwidth.com tells you which thousand-number segments carry reseller inventory.

The lookup that returns all of it

Our premium endpoint /v2-get-phone-details resolves the number's block, joins the full carrier registry onto it, and computes the wholesale and exchange-mix context in one call:

curl -G "https://api.phone-check.app/v2-get-phone-details" \
  --header "x-api-key: YOUR_API_KEY" \
  --data-urlencode "phone=+12122001234"

The response (trimmed to the carrier-context fields — the full payload also includes wire center, switch CLLI, rate center, coordinates, timezone, and county/CBSA/MSA geography):

{
  "number": "+12122001234",
  "valid": true,
  "country": "US",
  "type": "FIXED_LINE",
  "carrier": "Onvoy",
  "ocn": "384C",
  "ocnType": "CLEC",
  "ltype": "S",
  "ocnCategory": "C",
  "portable": "Y",
  "isWholesaleHosted": true,
  "nxxCarrierMix": [
    { "carrier": "Onvoy", "ocn": "384C", "ocnType": "CLEC", "blocks": 1, "isWholesaleHosted": true }
  ],
  "state": "NY",
  "rateCenterLong": "New York City Zone 1",
  "wireCenter": "NYC MANHATTAN-67 BROAD ST",
  "switchClli": "NYCMNYBXDSL",
  "latitude": 40.7394,
  "longitude": -73.991,
  "olsonTz": "America/New_York"
}
FieldWhat it tells youSample
typeLine type resolved from block LTYPE and OCN category: MOBILE, VOIP, FIXED_LINE, or PAGERFIXED_LINE
carrierOperating carrier common name for the blockOnvoy
ocn / ocnTypeOperating Company Number and its class (CLEC, WIRELESS, RBOC, IPES, WRSL)384C / CLEC
ocnHoldingCorporate family that owns the operatorAT&T Inc
isWholesaleHostedTrue when the block is operated by a wholesale or reseller carrier — where MVNO SIMs and VoIP apps concentratetrue
nxxCarrierMixEvery carrier operating blocks in this exchange, with block counts and wholesale flags[{ carrier: "Onvoy", blocks: 1 }]
portableWhether the block participates in local number portabilityY

For high-volume list cleaning where you only need line type and carrier, /v1-get-phone-extra-details returns the same carrier context at standard lookup cost, and bulk CSV validation applies it to entire files through the same pipeline.

The decision logic, end to end

Here is the routing policy the signals above support — the same shape our insurance-agency scenario needs for "block VoIP and landlines, treat MVNO-hosted traffic carefully":

function routeNumber(lookup) {
  // Line-type gates — the blocking your compliance team already requires
  if (lookup.type === 'VOIP' || lookup.type === 'PAGER') return 'BLOCK';
  if (lookup.type === 'FIXED_LINE') return 'VOICE_QUEUE';

  // Mobile: check where the block lives
  if (lookup.isWholesaleHosted) {
    // Onvoy / Bandwidth / WRSL-hosted block — wireless, but reseller
    // infrastructure. Route to review, not auto-dial.
    return 'REVIEW';
  }

  // Host-MNO block (AT&T / T-Mobile / Verizon Wireless)
  return 'ALLOW';
}
DecisionSignalsReal example from our dataset
Allowtype = MOBILE, isWholesaleHosted = false212-203 block operated by AT&T Wireless (OCN 4036)
Allow with contexttype = MOBILE, isWholesaleHosted = trueBlocks operated by Onvoy or Bandwidth.com — wireless, but reseller-hosted
Route to voice or reviewtype = FIXED_LINE212-200 block operated by Onvoy (OCN 384C), line type S
Block for SMS and OTPtype = VOIP206-201 block operated by Comcast (OCN 318J), line type V
Suppresstype = PAGER, or invalid number201-202 block operated by USA Mobility (OCN 6630), line type P

Note what the review tier buys you: wireless numbers on wholesale blocks are exactly the population where MVNO SIMs, prepaid rotations, and app-based numbers concentrate. You are not guessing a brand — you are isolating the infrastructure segment where the churn behavior you are fighting actually lives, and routing it to a human or a softer touch instead of your paid-dial queue.

Two real responses, side by side

Both are live lookups from our production dataset. First, a number on a Bandwidth.com block in Teaneck, NJ — the exchange mix tells the whole story in one payload: this exchange is one-third wholesale-hosted inventory, exactly where second-number apps and MVNO eSIMs concentrate:

{
  "number": "+12013570123",
  "valid": true,
  "type": "VOIP",
  "carrier": "Bandwidth.com",
  "ocn": "118F",
  "ocnType": "CLEC",
  "ocnHolding": "Bandwidth Inc",
  "ltype": "V",
  "portable": "Y",
  "isWholesaleHosted": true,
  "nxxCarrierMix": [
    { "carrier": "Bandwidth.com",   "ocn": "118F", "ocnType": "CLEC", "blocks": 4, "isWholesaleHosted": true },
    { "carrier": "CSC Voice",       "ocn": "612K", "ocnType": "IPES", "blocks": 4, "isWholesaleHosted": false },
    { "carrier": "Onvoy",           "ocn": "637C", "ocnType": "CLEC", "blocks": 3, "isWholesaleHosted": true }
  ],
  "state": "NJ",
  "geo": "Teaneck, NJ"
}

Now its opposite: a number on an AT&T wireless block in Manhattan — host-MNO mobile, 8 of the exchange's 11 blocks operated by AT&T. This is the segment that behaves like a normal postpaid wireless list:

{
  "number": "+12122031567",
  "valid": true,
  "type": "MOBILE",
  "carrier": "AT&T",
  "ocn": "4036",
  "ocnType": "WIRELESS",
  "ocnHolding": "AT&T Inc",
  "ltype": "C",
  "portable": "Y",
  "isWholesaleHosted": false,
  "nxxCarrierMix": [
    { "carrier": "AT&T",       "ocn": "4036", "ocnType": "WIRELESS", "blocks": 8, "isWholesaleHosted": false },
    { "carrier": "Centurylink","ocn": "4006", "ocnType": "CLEC",     "blocks": 3, "isWholesaleHosted": false }
  ],
  "state": "NY",
  "geo": "New York City Zone 1, NY"
}

Read the difference the way an analyst would: same country, both valid, both geographically precise — but the first number sits on infrastructure you pay to avoid, and the second does not. That contrast is the entire product decision, delivered in one field each.

The field taxonomy: what each code means

Two coded fields drive line-type decisions. ltype is the block's utilization record; ocnCategory is the carrier-class view. The API resolves them into the type field for you, preferring ltype as the more specific signal:

ltypeLine typeHow to treat it
SStandard landlineRoute to voice queue or suppress for SMS; never auto-dial
CCellular / wirelessEligible for SMS and dialing — then apply carrier context
VVoIPSuppress for OTP and promotional traffic; high churn and fraud concentration
PPagerSuppress outright

ocnType classifies the operating carrier itself — this is where the MVNO story lives. Counts are from our January 2026 dataset (1,516,579 active blocks):

ocnTypeCarrier classActive blocksHow to treat it
WIRELESSFacilities-based mobile network operator496,992Host MNO block — AT&T, T-Mobile, Verizon families; includes their MVNO inventory
CLECCompetitive local exchange carrier490,091Mixed — includes wholesale enablers (Onvoy, Bandwidth) and fiber CLECs (Centurylink); check the wholesale flag
RBOCRegional Bell operating company165,097Incumbent landline (Verizon, AT&T regions) — treat as landline
IPESIP-enabled service155,334VoIP service providers (cable voice, Comcast) — block for SMS
PCSPersonal communications service129,291Second wireless class — older GSM/PCS licenses
ILECIncumbent local exchange carrier71,325Incumbent landline (CenturyLink, Frontier regions)
WRSLWireless reseller9True MVNO-registered OCNs — rare but unambiguous; always flag

The taxonomy is why the "just tell me the MVNO" request has no block-level answer: the 496,992 WIRELESS blocks belong to host networks, and the MVNO's own registration (WRSL) covers 9 blocks nationwide. Everything in between is a business relationship, not a database column. The wholesale-hosted flag exists precisely because where a block sits in that taxonomy predicts how the number behaves — which is what your dialer and SMS gateway actually act on.

What to look for, in order

When you inspect a lookup response, walk this checklist top to bottom — each answer narrows the next decision:

  1. Is the number valid at all? valid: false ends everything — suppress and move on.
  2. What is the line type? VOIP and PAGER go to suppression; FIXED_LINE goes to the voice queue; MOBILE continues.
  3. Is the block wholesale-hosted? isWholesaleHosted: true on a mobile means reseller infrastructure — review tier, not auto-dial. On a landline it usually just confirms a VoIP-enabling CLEC.
  4. Who operates the block and who owns them? carrier + ocnHolding tell you the corporate family. A "Verizon Wireless" block and a "TracFone"-family outcome share a parent — useful for offer targeting, not for blocking.
  5. What does the whole exchange look like? nxxCarrierMix with 30%+ wholesale-hosted blocks means the surrounding thousand-number segment carries elevated churn risk — worth remembering when the same exchange reappears in future lists.
  6. Is the number portable? portable: Y (almost always in the US) is your reminder that block data describes the original assignment — ported numbers are the edge case, and volume ported traffic is the moment a per-line MNP tier earns its price.

The honest part: suppression lists and number churn

The scenario that motivated this guide — "people with MVNO plans consistently change their phone numbers, so our suppression list misses them" — is not fully a carrier-data problem, and we will not pretend it is. A new number is a new number; no carrier registry links it to the old one. What actually works:

  • Scheduled re-verification. Run the full prospect list through validation on a cadence (weekly for hot lists, monthly for the master database). Invalid numbers and line-type flips fall out automatically — a mobile that becomes VoIP is a churn signal in itself.
  • Validate before every paid action. A lookup before a call campaign costs a fraction of the call, and removes the landline, VoIP, and pager records that inflate connect rates.
  • Write results back to the CRM. Carrier, line type, wholesale flag, and decision reason belong on the record, so sales, compliance, and revops operate one suppression policy instead of three.

For naming the MVNO brand per line, the only legitimate source is a number-portability dip (MNP/HLR). When that requirement is hard, it belongs in a premium per-line tier — and it is on our roadmap — but the block-level context above already covers the decisions a dialer or SMS gateway actually makes.

FAQ

Why does Twilio show Verizon or AT&T instead of the MVNO my prospect actually uses?

Standard carrier lookup reports the company that owns the number’s rate-center block (its OCN). MVNOs like Cricket, TracFone, and Mint do not own blocks — their numbers are assigned from host-network pools operated by AT&T, T-Mobile, and Verizon, or from wholesale carriers. Any block-level lookup, from any vendor, reports the host. We verified this across more than 1.5 million NANP block assignments: zero blocks are registered to the major MVNO brands.

Can any database tell me the exact MVNO brand behind a specific number?

Only a per-line query against number-portability records (an MNP or HLR dip) can do that, because the number-to-MVNO mapping exists per subscriber line, not per block. Block-level data can tell you the host network, the operating carrier, the corporate holding company, and whether the number sits on wholesale infrastructure where MVNO and VoIP traffic concentrates — which is what suppression and routing logic actually needs.

What is the wholesale-hosted signal, exactly?

A number block whose serving OCN is a wholesale or enabling carrier — Onvoy, Bandwidth.com, Neutral Tandem, Peerless Network, Inteliquent, iBasis, Voxbeam — or a wireless reseller (OCN type WRSL). These carriers host the majority of VoIP apps, second-number services, and MVNO eSIM inventory, so the flag marks the segment of a list where prepaid and app-based numbers concentrate. It is a block-level signal, and it should drive review rules rather than automatic blocking.

How do we handle prospects who keep changing MVNO numbers?

Carrier data alone cannot link a new number to a previous one — that is an identity problem, not a carrier problem. The working pattern is a re-verification cadence: validate the full list on a schedule, suppress invalid and line-type mismatches, and append fresh validation results back to the CRM record so the suppression list stays current as numbers churn. Pairing a block-level carrier context with number-level validity checks catches most of the drift.

Does this replace our Twilio integration?

No — it front-runs it. Validate and classify numbers before you spend on calls or messages. Teams typically run list-level filtering first, then send only the cleaned mobile segment through their existing calling and OTP infrastructure.

Run it against your own list

Validate a sample of your traffic through the premium lookup and see exactly what each tier returns — line type, operating carrier, holding company, wholesale hosting, and exchange mix — before you commit to anything. Validation runs across 232 countries with 99.6% accuracy, and every NANP lookup carries the full carrier context described above.

Related articles