OCN (Operating Company Number) is a 4-character alphanumeric identifier assigned by NECA (National Exchange Carrier Association) to each US telecommunications carrier. It uniquely identifies the company currently serving a phone number and is more reliable than carrier name strings for any programmatic use — routing tables, 10DLC registration, billing rate lookups, and analytics.
OCN vs. Carrier Name
Carrier names are inconsistent across data sources. The same Verizon Wireless appears as “Verizon Wireless,” “Verizon,” “VZW,” and “Cellco Partnership DBA Verizon Wireless” depending on which system reports it. String matching on carrier names breaks silently — routing logic passes, but the wrong gateway gets the traffic.
The OCN is fixed: Verizon Wireless is always 6006. AT&T Mobility is always
6664. Using OCN in routing tables and registration payloads eliminates
name-format mismatches entirely.
| Identifier | Format | Reliable for code? | Example |
|---|---|---|---|
| Carrier name | Free text | No — varies by source | “Verizon Wireless,” “VZW,” “Verizon” |
| OCN | 4-char alphanumeric | Yes — stable, unique per carrier | 6006 |
How OCN Is Used in NPAC and LRN Routing
NPAC (the Number Portability Administration Center) is the authoritative database for all US phone number assignments. Every record in NPAC includes the serving carrier’s OCN. When a carrier routes a call or SMS, it queries NPAC for the LRN (Local Routing Number) and OCN to determine which network handles delivery.
For ported numbers, the OCN reflects the current serving carrier, not the original assignee. A number originally issued by AT&T and later ported to T-Mobile will return T-Mobile’s OCN. Prefix-based lookup (NPA-NXX) gives you the original assignment only — irrelevant after a port. Over 30% of US numbers have been ported at least once.
SMS aggregators and CPaaS providers use OCN to route outbound messages through the correct inter-carrier gateway. Routing to the wrong gateway is a primary cause of increased filtering and delivery failures on high-volume A2P campaigns.
Why OCN Matters for 10DLC Campaign Registration
The Campaign Registry (TCR) and carrier vetting systems require accurate carrier data for each phone number registered to a 10DLC campaign. Submitting a carrier name string that doesn’t match the format expected by TCR can cause registration rejection or delayed throughput approval.
When registering phone numbers with a messaging service provider for A2P throughput, the registration must align with the number’s actual serving carrier. OCN is the stable, format-agnostic identifier that eliminates manual carrier-name reconciliation errors. For SMS aggregators processing thousands of numbers, automating OCN lookup at registration time is the only scalable approach.
Additionally, MVNOs (Mobile Virtual Network Operators) ride on the infrastructure of a major carrier but have their own OCN. A number on Cricket (an AT&T MVNO) has a different OCN than a number on AT&T Mobility directly. Carrier name alone does not distinguish these; OCN does.
Key OCN Codes for Major US Carriers
| OCN | Carrier | Line Type |
|---|---|---|
6006 |
Verizon Wireless | Wireless |
6529 |
T-Mobile USA | Wireless |
6664 |
AT&T Mobility | Wireless |
7018 |
AT&T (wireline) | Landline |
9208 |
Bandwidth.com | VoIP / CLEC |
7850 |
Twilio | VoIP / CPaaS |
The full NECA OCN table contains thousands of entries covering regional carriers, MVNOs, and VoIP resellers. VRI maintains a current OCN mapping refreshed from live NPAC data.
OCN in VeriRoute Intel API Responses
VRI returns the OCN with every LRN lookup as part of the enhanced_lrn object.
No additional parameter is required — pass include_enhanced_lrn: true and
OCN is included automatically.
curl -X POST https://api-service.verirouteintel.io/api/v1/lrn \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"phone_number": "13364086644", "include_enhanced_lrn": true}'
# Response
{
"phone_number": "13364086644",
"lrn": "13364086644",
"lrn_activated_at": "2019-03-15T00:00:00Z",
"enhanced_lrn": {
"carrier": "Verizon Wireless",
"carrier_type": "WIRELESS",
"ocn": "6006",
"lata": "424",
"rate_center": "WINSTN SAL",
"state": "NC"
}
}
The ocn field returns the 4-character OCN for the current serving carrier.
Use this value directly in routing tables and 10DLC registration payloads instead of the
carrier name string to avoid format-mismatch errors.
Building Carrier-Agnostic Routing Logic with OCN
A reliable routing pattern for SMS aggregators is to key the routing table on OCN rather than on carrier name. This handles carrier name variations and ported numbers automatically:
import httpx
def get_ocn(phone: str, api_key: str) -> str:
resp = httpx.post(
"https://api-service.verirouteintel.io/api/v1/lrn",
headers={"Authorization": f"Bearer {api_key}"},
json={"phone_number": phone, "include_enhanced_lrn": True},
)
return resp.json()["enhanced_lrn"]["ocn"]
CARRIER_ROUTES = {
"6006": "verizon_gateway",
"6529": "tmobile_gateway",
"6664": "att_gateway",
}
ocn = get_ocn("13364086644", API_KEY)
gateway = CARRIER_ROUTES.get(ocn, "default_gateway")
Because VRI queries NPAC in real time, this pattern is correct even for recently ported numbers. The OCN reflects the current serving carrier, not the number’s origin.
Look up the carrier OCN for any US phone number. LRN + OCN + carrier name + line type in one API call. $0.0009/lookup, no minimum.
Get Free API Key