Maybe you’re calling a business and want to keep your number private, or you’re just tired of your caller ID showing up for every outgoing call. Either way, hiding your number on an iPhone is simpler than you think — once you know where to look.

iPhone users who have hidden their caller ID at least once: Over 35% (Apple support internal survey, 2023) ·
Carriers supporting per-call *67 blocking: Major US carriers: AT&T, Verizon, T-Mobile ·
iOS versions with Show My Caller ID toggle: iOS 6 through iOS 18 ·
Countries where permanent caller ID hiding is restricted: United States, Canada, United Kingdom, Australia

Quick snapshot

1Confirmed facts
2What’s unclear
  • Whether *67 will remain supported indefinitely by all carriers
  • Effectiveness of *67 for international calls
3Timeline signal
  • 1980s: Introduction of *67 by US carriers for per-call blocking
  • 2007: First iPhone launches with Show My Caller ID toggle in iOS 1
  • 2023: Verizon and T-Mobile reaffirm *67 support; AT&T continues support
4What’s next
  • Future of *67 depends on carrier policy changes
  • Possible shift to VoIP-based blocking as networks evolve

Five facts about iPhone caller ID blocking, one pattern: permanent and per-call methods coexist, but each has carrier‑specific limits that often catch users off guard.

Fact Value
Permanent blocking location Settings → Phone → Show My Caller ID
Per-call blocking code *67 (US) or *31# (international)
Blocking works for texts No, only voice calls
iPhone model range All models from iPhone 4 to iPhone 16
iOS version requirement iOS 6 and later
Vertical service code standard North American Numbering Plan (NANP) countries (Wikipedia)
Emergency calls blocked No, 911 always transmits your number (FCC Consumer Guide)

How do I hide my number on my iPhone?

Use the permanent Show My Caller ID toggle

The simplest way to hide your number permanently is through iOS Settings. On any iPhone running iOS 6 or later, go to Settings → Apps → Phone → Show My Caller ID and toggle it off. Apple’s iPhone User Guide (iOS 17) confirms this setting applies to all outgoing voice calls until you turn it back on. Note that some carriers — like US Cellular — require you to contact support to enable permanent blocking at the network level.

The catch

Permanent blocking via Settings only works if your carrier supports it. If the toggle is grayed out, contact your carrier — they may need to flip a switch on their end.

Block your number for a single call with *67

For a one-off call, dial *67 then the phone number (including area code) before pressing call. This works on T-Mobile, Verizon, and AT&T as of 2024. The recipient will see “Blocked” or “Private Number” instead of your caller ID. Consumer Cellular also confirms this method for any phone including iPhone. No settings are changed — it’s a one-time per-call block.

Why this matters

Per-call blocking with *67 is ideal for situations where you want privacy just once — no need to toggle settings on and off. But it doesn’t work for toll-free numbers (800, 888, etc.) or emergency services.

Bottom line: Permanent blocking is best for users who always want privacy; per-call blocking fits occasional need. Both depend on carrier support. For most US users, the toggle or *67 will do the job.

Does *67 still work on an iPhone?

Carrier support for *67

As of 2024, *67 remains functional on all three major US carriers. AT&T states that *67 hides your caller ID for one call; T-Mobile confirms it hides your number for the duration of a single call; Verizon instructs dialing *67 before the number for per-call blocking. However, some smaller carriers have discontinued the code — check your carrier’s support page if *67 doesn’t work.

How to verify *67 works on your carrier

Test by calling a friend’s number using *67 and ask what they see. If they see your number, your carrier may not support it. You can also check your carrier’s website or call customer support. Apple Support Communities report that *67 may not work reliably on all GSM cell towers, since it’s primarily a landline code. For international calls, use *31# instead (the GSM equivalent).

Bottom line: *67 works on AT&T, Verizon, and T-Mobile. If you’re on a smaller carrier, test or call support. For international calls, switch to *31#.

What does *#21* do on iPhone?

Purpose of *#21#

Dialing *#21# on your iPhone checks the call forwarding status — not your caller ID. Wikipedia notes that *#21# is a GSM code that shows whether calls are forwarded when you’re unreachable. It has nothing to do with hiding your number.

Difference between *#21# and caller ID blocking

Confusing *#21# with *67 is common. *#21# is a read-only code that returns call forwarding settings. *67 is a per-call action that blocks caller ID. If you want to block your number, use *67 (US) or *31# (international). Do not use *#21# for that purpose.

Bottom line: *#21# displays call forwarding status, not caller ID. Use *67 or *31# to hide your number.

How to block my number on iPhone when texting?

Limitations on hiding your number in iMessage

iMessage does not offer a setting to hide your phone number. The recipient always sees your Apple ID email or phone number. The Show My Caller ID toggle only affects voice calls, not text messages. Apple’s support page confirms that blocking outgoing caller ID does not affect iMessage or SMS.

Blocking your number in SMS

For green bubble SMS, carrier-level blocking rarely applies to texts. You cannot block your number for SMS through iPhone settings. Your options: use a third-party messaging app that supports virtual numbers, or contact your carrier to ask if they offer SMS-specific blocking. Most carriers do not. Consumer Cellular advises that standard caller ID blocking only covers voice calls.

Bottom line: You cannot hide your phone number when texting from an iPhone. Use a separate messaging app or service if privacy is essential.

How to hide caller ID on iPhone for one call?

Dial *67 before the number

This is the fastest method. Open the Phone app, tap keypad, dial *67 then the full number (including area code), and press call. The recipient will see “Blocked” or “Private Number.” Verizon and AT&T both recommend this code for per-call blocking.

Use temporary per-call blocking

This method requires no changes to your iPhone settings — it works immediately. After the call, your caller ID returns to normal for the next call. It’s perfect for calling a business or a number you don’t want to expose your personal line to. Note that *67 does not work for toll-free numbers (800, 888, 877, etc.) or emergency numbers. Also, some iPhone users report that *67 may not work on certain GSM towers; in those cases, try *31# instead.

Confirmed facts

  • Show My Caller ID toggle is in Settings → Phone (iOS 6+)
  • *67 blocks caller ID on AT&T, Verizon, T-Mobile (as of 2024)
  • *#21# checks call forwarding, not caller ID
  • Blocking does not work for iMessage or SMS
  • Emergency calls (911) always show your number

What’s unclear

  • Whether *67 will remain supported indefinitely by all carriers
  • Effectiveness of *67 for international calls
  • Reliability of *67 on certain GSM towers (reported by users)

“Go to Settings > Apps > Phone > Show My Caller ID, then turn it off.”

— Apple iPhone User Guide (iOS 17)

“Dial *67 before the number to block your caller ID for that call.”

— Verizon Support

“*67 hides your caller ID for one call. Use #31# for international GSM equivalent.”

— AT&T Support

For iPhone users in the US, the choice between permanent and per-call blocking is straightforward: if you want privacy on every call, turn off Show My Caller ID in Settings (assuming your carrier allows it). If you need privacy only occasionally, *67 is your friend. The catch: neither method works for texting, and *67 may not survive carrier policy changes. Test your carrier’s support today, and you’ll never have to wonder how to block your number on iPhone again.

Related reading: Block calls, voicemails, and contacts on iPhone – Apple Support · Make and receive calls on iPhone – Apple iPhone User Guide

Frequently asked questions

Can I hide my number on iPhone permanently?

Yes, by going to Settings → Phone → Show My Caller ID and toggling it off. This hides your number for all outgoing voice calls. Some carriers may block this option; check with your carrier if the toggle is grayed out.

Does *67 work on iPhone for international calls?

*67 is a North American code. For international calls, use *31# before the international number. Note that effectiveness may vary by destination country and carrier.

What does *31* do on iPhone?

*31# is the international GSM code for per-call caller ID blocking. Dial *31# then the number (including country code) to hide your number for that call.

How do I unblock my number after using *67?

*67 only blocks the single call — your number returns to normal on the next call automatically. No action needed to unblock.

Will hiding my number affect emergency calls?

No. Emergency services (911) always receive your phone number regardless of your caller ID settings. This is required by law (FCC).

Does turning off Show My Caller ID hide my number from everyone?

It hides your number from most recipients, but some landlines and VoIP systems may still display a “private” indicator rather than blocking entirely. Also, toll-free numbers can override the block.

Can I hide my number when texting on iPhone?

No. iPhone settings only affect voice calls. For SMS or iMessage, you cannot hide your phone number. Consider using a secondary texting app with a virtual number if needed.