A phone carrier lookup by number queries the number portability database to find the carrier that currently serves the number. It also returns the line type: mobile, landline or VoIP. You can do one number for free on a lookup website, or check a whole list through a validation API before you text it.

If you only want to know who carries one number, the first sentence covers it. The rest of this post is for people who text for a living. For them, the carrier name matters less than the line type. Line type decides whether a text arrives, gets refused, or quietly disappears.

How a phone carrier lookup by number actually works

A US phone number used to tell you its carrier. The area code and the next three digits (the NPA-NXX) were assigned in blocks to specific carriers. If you knew the block, you knew the phone company.

Number portability broke that. Since people could keep their number when they switched carriers, the original block assignment only tells you who the number started with. A number issued by AT&T in 2012 may be on T-Mobile today, ported again to a cable company's mobile service, and then to a VoIP provider.

So a real carrier lookup takes two steps:

  1. Check the porting database. The industry keeps a record of every number that has moved, along with the carrier currently responsible for routing it. If the number was ported, that record wins.
  2. Fall back to the block assignment. If the number was never ported, the original NPA-NXX assignment still points to the right carrier.

Most lookup tools return the same core fields: current carrier name, line type, and sometimes whether the number was ported. Some international lookups also query the mobile network directly to see whether a handset is reachable. That is more common outside the US and not something to count on here.

What a lookup can't tell you

A carrier lookup tells you how a number is wired. It does not tell you who owns it, whether that person agreed to hear from you, or whether the number was reassigned to someone new last month. Those are separate checks: consent records, the FCC's reassigned numbers database, and DNC and litigator lists. Don't treat a clean carrier result as permission to text.

Line type: the field that matters for texting

Here is what each line type means for a business text:

Line typeCan it receive SMS?What to do
Mobile (wireless)YesText normally, assuming consent
Landline (fixed wireline)Almost neverDon't text; call or mail instead
Fixed VoIP (business phone systems, cable home phones)Sometimes, often notTreat as unreliable unless the contact confirmed texts work
Non-fixed VoIP (app-based numbers)UsuallyText, but expect more churn and reassignment
Toll-freeOnly if text-enabledRarely a recipient on a consumer list

The landline row is where money and reputation leak. A text to a landline doesn't bounce back like an email. Depending on the route, it fails, gets dropped, or in rare cases gets converted to a robotic voice call. In every case the recipient never reads it. You also learn nothing useful from it, other than that your list has bad rows in it.

VoIP is the gray area. A contact who typed their office number into a web form may have handed you a desk phone on a hosted PBX that has never had texting turned on. The lookup flags it as VoIP. Whether it can take a text depends on the provider. If your list is mostly people who signed up on their phones, VoIP rows are a small minority. If it came from B2B forms, there are more of them.

Why carrier and line type affect deliverability

Line type is the obvious one. Carrier identity matters in quieter ways.

Carriers cap and throttle differently. T-Mobile applies a daily brand cap tied to your trust score: roughly ~2,000, ~10,000, ~40,000, ~100,000 or ~200,000 messages a day, from the lowest trust score up. AT&T throttles per second or per minute instead of using a hard daily ceiling. If a campaign is mostly T-Mobile subscribers and your brand sits at the lowest tier, the daily cap is the number to plan around. A carrier breakdown of your list tells you that before you hit it.

Failed sends look like a dirty list. Carriers watch error rates. A campaign that keeps hitting landlines and disconnected numbers looks like what it is: a list nobody cleaned. That doesn't help when your content is already close to a filter threshold. We wrote about the content side of filtering in your campaign got approved but messages still get filtered. List hygiene is the other half.

Lists rot. People port to new carriers, drop landlines, and give up numbers that get reassigned. A list you checked once isn't permanently clean. The same decay we describe in how fast each list source rots and when to re-scrub applies to line type too.

Free ways to look up one number

For a single number, the free options are fine:

  • Free carrier lookup websites. Type the number and you get the carrier and usually the line type. Quality varies, because some sites only read the original block assignment and miss ported numbers. If a site shows the carrier but never mentions porting, be skeptical.
  • Your own carrier's tools. Some carriers let you check whether a number is on their network, mostly for porting purposes.
  • Ask the person. For a contact you already talk to, "is this a cell?" is the most accurate lookup there is.

None of these scale. Pasting 5,000 numbers into a website one by one isn't a plan, and scraping lookup sites usually breaks their terms. For lists you need an API, or a platform that checks numbers as part of sending.

For the broader version of this question (is the number real at all, and can it take a text?), see how to check if a phone number is real and can receive texts.

How number validation works in Ready

We make Ready, a messaging platform and API that handles the parts of texting that sit around the send itself. Number checks are one of those parts. Here's what we do and what we don't.

What Ready does

  • A validation endpoint. GET /v1/validate/:phone checks a single number, at $0.003 per number checked. Use it at the point of capture, such as a signup form or a CRM import, so bad numbers never make it into your contact list.
  • Landlines refused before the send. When you send through the API, opt-outs, numbers on your Ban list and known landlines are refused up front and not charged.
  • Landline validation as an account setting. It's off by default. When you switch it on, it adds $0.003 per segment on top of the normal rate.
  • A deliverability check for AI agents. Our MCP server (docs at docs.tryready.com/api/mcp) lets agents like Claude or Cursor check number deliverability alongside sending texts and managing contacts.

A minimal validation request looks like this:

curl https://api.tryready.com/v1/validate/+12125550199 \
  -H "X-API-Key: YOUR_API_KEY"

We're not going to list the response fields here, because the docs are the source of truth and they change less often than blog posts get updated. Check docs.tryready.com/api/validate-numbers for the current shape. Don't build a feature on a field you haven't seen in the docs.

What Ready doesn't do

Ready isn't a bulk carrier-lookup database for resale. Validation is billed per number: $0.003 for each number that gets an answer (malformed numbers aren't billed). If you need carrier names for a million rows for analytics or fraud scoring, a dedicated lookup provider is the right tool, and that's fine. Our validation exists to keep your texts going to numbers that can receive them.

What it costs: a worked example

Assumptions: a 5,000-contact opted-in list, and 10% of rows are landlines. That's an illustrative figure, not a benchmark. The message is a single-segment reminder of 140 plain characters with no emoji. Landline validation is switched on.

  • Landlines refused up front: 500 numbers, not charged.
  • Texts that send: 4,500 × 1 segment.
  • Standard rate: 4,500 × $0.0075 = $34
  • Carrier fee: 4,500 × $0.0045, itemized separately on the bill
  • Landline validation surcharge: 4,500 × $0.003 = $13.50

Add an emoji and the message drops to a 70-character segment limit, so the same 140 characters become 3 segments. The math shifts a lot. The rate, the carrier fee and the $0.003 surcharge all apply per segment, so a 3-segment message triples every line above. Keep validated sends plain-text where you can.

Whether the $0.003 surcharge pays for itself depends on your list. For numbers you collected yourself through a mobile signup flow, it may not. For imported B2B lists or older CRM data, it usually earns its keep. Rates for everything else are on the pricing page.

Line type is one check of several

A clean line type doesn't make a number safe to text. A sensible order for any list:

  1. Consent first. Only text people who opted in or replied to you. Cold contact belongs on the phone or in the mail, not in SMS.
  2. Validate line type. Remove landlines and flag questionable VoIP numbers.
  3. Scrub DNC and known litigators. Ready's standalone TCPA and DNC litigator scrub is $0.005 per contact. The same scrub is in the API as GET /v1/scrub/:phone, at the same $0.005 per number. Scrubbing at send time is a separate account setting: a $0.003 per-segment surcharge when switched on, and it's off by default. TCPA exposure runs $500 to $1,500 per text, which is why scrubbing is cheap insurance. It reduces risk but doesn't remove it, and compliance stays your responsibility.
  4. Send on a registered route. All of this assumes a registered A2P 10DLC brand and campaign. Unregistered traffic gets filtered regardless of how clean the list is.

Ready also holds texts during the recipient's quiet hours and honors STOP across all campaigns. Those protections apply to the send, not to the list, so they don't replace any of the steps above. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.

The practical takeaway

For one number, a free lookup site is enough. Just confirm it checks porting and not only the original block. For anything you text at volume, the carrier name matters less than the line type. Landlines don't receive texts, VoIP is a coin flip, and a list full of both looks careless to the carriers deciding whether to filter you.

To try validation on your own numbers, see docs.tryready.com/api/validate-numbers. You can create an account with a card on file. Your first 20 one-to-one texts are free, so use them to test before you register.

FAQ

Can I do a phone carrier lookup by number for free? Yes, for individual numbers. Several free websites return carrier and line type. Check that the tool accounts for ported numbers, or it may show the number's original carrier instead of its current one.

Does a carrier lookup tell me who owns the number? No. It tells you the carrier and line type, not the subscriber's name. Reverse ownership lookups are a different, more restricted kind of data.

Can VoIP numbers receive text messages? Some can. App-based VoIP numbers usually take texts. Business phone system numbers often don't unless texting was enabled. When the lookup says VoIP, treat delivery as uncertain.

Does Ready charge for texts to landlines? Known landlines are refused up front and not charged. Optional landline validation adds $0.003 per segment when switched on for an account, and it's off by default.

Will a clean carrier lookup keep me compliant? No. Line type tells you whether a text can arrive, not whether you're allowed to send it. You still need recorded consent, DNC and litigator scrubbing, quiet hours and a registered 10DLC campaign. Compliance remains the sender's responsibility.