Guides

Tanzania phone numbers: format, 06 and 07 prefixes, validation and messaging rules

Tanzania phone number format: +255 and 9-digit 06/07 mobiles, TCRA operator prefixes (Vodacom, Yas, Airtel, Halotel, TTCL), tested code, porting and SMS rules.

By Published 20 min readHow we research and fact-check

On this page

Tanzanian numbers use the country code +255. Mobile numbers have 9 digits after the code and start with 6 or 7 (06X or 07X when dialled at home), so in E.164 they look like +255 7XX XXX XXX or +255 6XX XXX XXX. The first three digits show which operator the Tanzania Communications Regulatory Authority (TCRA) gave the range to (Vodacom, Yas, Airtel, Halotel or TTCL), but numbers can be ported, so they don't prove the current network. Marketing SMS needs the customer's consent under TCRA's consumer protection rules.

This guide is part of our phone numbers by country series. The tables are generated from libphonenumber's metadata, our MNP atlas and our public catalog. Example numbers are masked with X, or are the example numbers published in libphonenumber. We read TCRA's numbering plan, regulations and statistics, the portability regulations and the data protection law on 2026-11-07. Where we rely on press reports, we say so. This is a summary, not legal advice.

What does a Tanzanian phone number look like?

A mobile number is 07XX XXX XXX or 06XX XXX XXX at home: the trunk prefix 0 and nine digits. From abroad it is +255 7XX XXX XXX or +255 6XX XXX XXX. TCRA's National Numbering and Signaling Point Codes Plan (version 1.16, June 2026) says numbers "have a total length of 9 digits (i.e. excluding country code), except for M2M, which has 12 digits" (section 4.1). The plan writes mobile numbers as 06YA XXXXXX and 07YA XXXXXX, where the first three digits are the operator's code (TCRA numbering plan, section 4.2.5).

ItemValue
Country calling code+255
International call prefix (dialling out)00[056] (pattern: more than one prefix is used)
Trunk prefix (dialling at home)0
Mobile: digits after +2559
Fixed line: digits after +2559
Toll-free: digits after +2559
Premium rate: digits after +2559
Shared cost: digits after +2559
VoIP: digits after +2559
Mobile, national format (masked)062X XXX XXX
Mobile, international (masked)+255 62X XXX XXX
Mobile, E.164 (masked)+25562XXXXXXX
Fixed line, national format (masked)022 XXX XXXX
Fixed line, international (masked)+255 22 XXX XXXX
Fixed line, E.164 (masked)+25522XXXXXXX

Store only the E.164 form, +2557XXXXXXXX or +2556XXXXXXXX, with no spaces and no 0 after 255. Tanzanian forms often collect 07XXXXXXXX, 2557XXXXXXXX without a plus, +255 07… with a stray zero, or 00255…. A numbering-plan library with the default region TZ handles most of these. The 00255 form needs one extra step.

Why does 00255 fail validation, and what is 000?

Tanzania's international access code is 000, not 00. TCRA's plan defines the international prefix as "000 for Tanzania" and also lists short regional codes for East Africa: 005 Kenya, 006 Uganda, 004 Rwanda and 003 Burundi (definitions and table 2). libphonenumber accepts 000, 005 and 006 as exit codes for Tanzania. So when it is told a number comes from Tanzania, 00255 7XX XXX XXX doesn't start with an exit code, and both ports we test read the whole string as one long national number, which isn't valid. Row 3 of the test table below shows the result.

People still type 00255, because 00 is the exit code in most countries. The fix is one line: rewrite a leading 00 followed by 255 to + before parsing. Don't rewrite every 00: 005… is a real Tanzanian exit code, and 000255… already parses.

A tall card with a +255 pill and nine digit dots over two columns of ten cells headed 06 and 07, one empty dashed cell with an x badge; a timeline marked 2017, 2020, 2023; a SIM card with an ID tile; a document under a shield.A tall card with a +255 pill and nine digit dots over two columns of ten cells headed 06 and 07, one empty dashed cell with an x badge; a timeline marked 2017, 2020, 2023; a SIM card with an ID tile; a document under a shield.
Nine digits after +255, TCRA's 06 and 07 blocks, and the porting, SIM and data rules.

Which prefixes are mobile numbers?

Every mobile number starts with 06 or 07. For each 2-digit block, the generator counted every 9-digit number that libphonenumber's mobile pattern for TZ accepts:

National prefixInternationalShare of the block that is mobile (9-digit numbers)3-digit sub-blocks that aren't fully mobile
060+255 60100%—
061+255 61100%—
062+255 62100%—
063+255 63100%—
065+255 65100%—
066+255 66100%—
067+255 67100%—
068+255 68100%—
069+255 69100%—
070+255 70100%—
071+255 71100%—
072+255 72100%—
073+255 73100%—
074+255 74100%—
075+255 75100%—
076+255 76100%—
077+255 77100%—
078+255 78100%—
079+255 79100%—

The library treats all of 06 and 07 as mobile except 064. The regulator's view differs in two places. TCRA lists 064 as assigned to Telxer Enterprise Limited but "Not Operational", and it lists 060 as reserved, not assigned. libphonenumber accepts 060 as mobile. We found no TCRA document that explains the gap, so treat a 060 number as unusual and log it rather than trust it.

06 and 07 prefixes by operator

TCRA's plan names the holder of each code (table 9). As of version 1.16, June 2026:

National prefixInternationalRange holder in the TCRA planBrand
072, 074, 075, 076, 079+255 72, 74–76, 79Vodacom Tanzania PLCVodacom
065, 067, 070, 071, 077+255 65, 67, 70, 71, 77Honora Tanzania PLCYas (formerly Tigo and Zantel)
066, 068, 069, 078+255 66, 68, 69, 78Airtel Tanzania PLCAirtel
061, 062, 063+255 61–63Viettel Tanzania PLCHalotel
073+255 73Tanzania Telecommunications CorporationTTCL
064+255 64Telxer Enterprise Limitednot operational
060+255 60reserved—

The plan lists every code above except 064 and 060 as "Operational". The mobile network codes (MCC-MNC) in the same plan are 640-04 Vodacom, 640-05 Airtel, 640-02 and 640-03 Honora, 640-07 TTCL and 640-09 Viettel (table 20). Our MCC-MNC lookup decodes them.

Tigo, Zantel and Yas: one company, same numbers

Two brand changes explain most of the confusion in old prefix lists:

  • Zantel's code moved. Old lists show 077 as Zantel's own code. TCRA's current plan puts it under Honora Tanzania PLC, together with the former Tigo codes.
  • Tigo became Yas. Tigo Tanzania rebranded to Yas on 26 November 2024, and Tigo Pesa became Mixx by Yas (The Citizen, 2024). Yas says existing SIM cards keep working on the Yas network (Yas), and the licensee in TCRA's plan is Honora Tanzania PLC.

Nobody's number changed. If your CRM maps 065 or 071 to "Tigo", the mapping is still right about the network, only the brand is old. Halotel is the brand of Viettel Tanzania, so "Viettel" and "Halotel" in two different lists mean the same range holder.

TCRA's quarterly report for April to June 2026 counts 116.9 million mobile subscriptions: Vodacom 33.0%, Yas 28.6%, Airtel 20.5%, Halotel 16.4% and TTCL 1.5% (TCRA sector report, June 2026).

What do the library's carrier names say?

libphonenumber also ships a carrier prefix file. For Tanzania it agrees with TCRA's plan on the operational codes when we checked it on 2026-11-07 with the Python port, version 9.0.40: "Vodacom", "Yas", "Airtel", "Viettel" and "Tanzania Telecom". It also names 060 "Airtel", although the plan lists 060 as reserved. In any case the carrier name is the original range holder, never the current network. For that you need a live lookup.

What do 022, 0800 and the other ranges mean?

TCRA's plan gives every service its own first digits after the 0 (table 1):

National prefixWhat it is
022Fixed line, Dar es Salaam
023Fixed line, Coast, Lindi, Morogoro and Mtwara
024Fixed line, Zanzibar
025Fixed line, Katavi, Mbeya, Rukwa, Ruvuma and Songwe
026Fixed line, Dodoma, Iringa, Njombe, Singida and Tabora
027Fixed line, Arusha, Kilimanjaro, Manyara and Tanga
028Fixed line, Geita, Kagera, Kigoma, Mara, Mwanza, Shinyanga and Simiyu
03Machine-to-machine (M2M), 12 digits after +255
04Corporate and VoIP numbers
0800National toll-free
0840, 0860, 0861Shared-cost and other special services
090Premium rate

None of these is an ordinary mobile, so a MOBILE check correctly leaves them out. The short codes are worth knowing too: 112 police and emergency, 106 to check that a SIM is registered, and 15040 to report fraud.

How do I validate a Tanzanian number in code?

Use a libphonenumber port with full metadata and the default region TZ, rewrite 00255 to +255 first, then keep only mobiles. To try a batch of inputs without writing code, paste them into our free phone number validator.

Python (pip install phonenumbers):

tz_normalize.py
import re

import phonenumbers


def normalize_tz(raw: str) -> str | None:
    """E.164 for a Tanzanian mobile number (06X or 07X), or None."""
    s = re.sub(r"^\s*00(?=255)", "+", raw)  # 00255… is foreign-style dialling; Tanzania uses 000
    try:
        n = phonenumbers.parse(s, "TZ")
    except phonenumbers.NumberParseException:
        return None
    if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != "TZ"
            or phonenumbers.number_type(n) != phonenumbers.PhoneNumberType.MOBILE):
        return None
    return phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.E164)


for raw in ["0621 234 567", "+255 621 234 567", "255621234567", "00255 621 234 567",
            "000255 621 234 567", "0641 234 567", "022 234 5678", "0800 123 456"]:
    print(f"{raw!r:22} -> {normalize_tz(raw)}")

JavaScript (npm install libphonenumber-js):

tz-normalize.mjs
import { parsePhoneNumberFromString } from "libphonenumber-js/max";

/** "0621 …", "+255 6…", "255…", "00255…" or "000255…" → E.164 for a Tanzanian mobile, or null. */
export function normalizeTz(raw) {
  const s = String(raw).replace(/^\s*00(?=255)/, "+"); // 00255… → +255…
  const phone = parsePhoneNumberFromString(s, "TZ");
  return phone?.isValid() && phone.country === "TZ" && phone.getType() === "MOBILE" ? phone.number : null;
}

for (const raw of ["0621 234 567", "+255 621 234 567", "255621234567", "00255 621 234 567",
  "000255 621 234 567", "0641 234 567", "022 234 5678", "0800 123 456"]) {
  console.log(JSON.stringify(raw).padEnd(22), "->", normalizeTz(raw));
}

The inputs are libphonenumber's own example numbers for Tanzania (mobile 0621 234 567, fixed line 022 234 5678, toll-free 0800 123 456) plus one number in the non-operational 064 block, not real subscribers. We ran both on 2026-11-07 (Python 3.12 with phonenumbers 9.0.40, Node.js 24 with libphonenumber-js 1.13.13). Both printed the same answers:

Text
'0621 234 567'         -> +255621234567
'+255 621 234 567'     -> +255621234567
'255621234567'         -> +255621234567
'00255 621 234 567'    -> +255621234567
'000255 621 234 567'   -> +255621234567
'0641 234 567'         -> None
'022 234 5678'         -> None
'0800 123 456'         -> None

(The JavaScript version prints null instead of None and uses double quotes.) The fourth line only works because of the 00255 rewrite. Without it, both libraries return nothing for 00255…. The shape regex column below tests the pattern most tutorials give, after spaces, dashes and brackets are removed:

#CaseInput (masked)Shape regex ^(?:\+255|00255|0)?[67]\d{8}$libphonenumber (TZ)
1National, with trunk prefix062X XXX XXXpassesvalid, MOBILE
2International, with spaces+255 62X XXX XXXpassesvalid, MOBILE
3International dialling prefix 0000255 62X XXX XXXpassesinvalid
4E.164+25562XXXXXXXpassesvalid, MOBILE
5Dashes and brackets(062X) XXX-XXXpassesvalid, MOBILE
6One digit short062XXXXXXfailsinvalid
7One digit too many062XXXXXXXXfailsinvalid
8Mobile shape, unused block 064064XXXXXXXpassesinvalid
9Fixed line022 XXX XXXXfailsvalid, FIXED_LINE
10Toll-free range0800 XX XXXXfailsvalid, TOLL_FREE

Rows 3 and 8 are the ones to remember. Row 3 is the 00255 trap above. Row 8, 064, has the shape of a mobile number and passes the regex, but the block isn't in service, so an OTP sent to it is wasted. Our post on why an E.164 regex is not enough shows the same problem in other countries, and our Python and JavaScript guides cover more cases. For a whole spreadsheet, our free phone list cleaner normalises and deduplicates a column in the browser.

Which numbers can I use in tests and examples?

TCRA's plan has no block reserved for films, books or examples. Use libphonenumber's example numbers (0621 234 567 for a mobile, 022 234 5678 for a landline) in parser unit tests, mask the rest with X, and never use a real customer's number. A sandbox or test key is the safe way to test lookups.

Does number portability change the carrier?

Yes. Mobile number portability (MNP) started in Tanzania on 1 March 2017. A Daily News report of 2 March 2017 describes the official launch in Dar es Salaam the day before, where the minister responsible for communications warned operators not to harass customers who move, and said customers would not pay (Daily News, 2017). We found no TCRA document that states the start date, so this rests on the press report.

The current rules are the Electronic and Postal Communications (Mobile Number Portability) Regulations, 2018, G.N. No. 20 of 2018 (GN 20 of 2018):

  • Two working days at most. The whole process "lasts no longer than two working days" (regulation 7(5)(h)). The number is activated on the new network before it is deactivated on the old one, and that switchover "shall not exceed fifteen minutes" (7(8)).
  • The new operator runs it. Porting is recipient-led: the subscriber goes only to the new operator (5(2)). Any active prepaid or postpaid customer can port (5(3)).
  • Free for the subscriber. The new operator may not recover porting costs from the customer (11(3)).
  • Limits. No limit on how often a number is ported, but only once in thirty days (5(10)). A newly registered subscriber must wait sixty days before porting (5(11)). A postpaid customer may port with at most one pending bill cycle (5(13)).
  • New SIM, balance lost. The SIM isn't ported, so the subscriber gets a new one (5(9)), and unused prepaid credit is forfeited (5(15)).
  • Returning numbers. When a ported number is given up, it goes back to the original range holder (regulation 6).

TCRA doesn't publish porting volumes: its June 2026 quarterly report has no portability figures, and the International Telecommunication Union's 2024 notice for Tanzania lists the ported-number database as "N/A" (ITU, 2024). Without data, assume a share of numbers no longer sit with the prefix's operator.

The Tanzania row of our MNP atlas:

ItemValue
Mobile number portabilityYes
Mobile porting since2017-03-01
Maximum porting time2 working days (switchover ≤ 15 minutes)
Governing ruleElectronic and Postal Communications (Mobile Number Portability) Regulations, 2018 (G.N. No. 20)
Published porting volumenone published
Sourcemedia.tanzlii.org
Checked2026-11-07

The atlas row is older than this guide and doesn't yet carry the launch date or the time limit; from the sources above they are 1 March 2017 and two working days. Our MNP atlas compares Tanzania with other countries, and our guide on how to check if a number is ported explains the lookup.

How are SIM cards registered in Tanzania?

Every SIM must be registered to a person or company and verified biometrically: by fingerprint against the National Identification Authority (NIDA) database, using the national ID number.

  • The 2019-2020 drive. TCRA required every existing SIM to be re-registered biometrically. The deadline of 31 December 2019 was extended to 20 January 2020 (ITWeb, 2020). The President said it would be the last extension.
  • The 2020 regulations. The SIM Card Registration Regulations, 2020 (G.N. No. 112) set the limit of "not more than one SIM Card from each licensed mobile network operator" per person for voice, SMS and data (regulation 18), and deactivation after 90 days without use (GN 112 of 2020).
  • The rules in force now. Regulations of 2023 replaced those of 2020 and were themselves replaced by the 2025 regulations, G.N. No. 59 of 31 January 2025, published in Swahili (GN 59 of 2025). They keep one voice SIM per person per network (regulation 35), plus up to five M2M SIMs; companies may hold up to 100 voice SIMs per network. Using a SIM registered with someone else's ID, or letting someone use yours, is an offence (regulation 21). An unused SIM is deactivated after 90 days (regulation 26).

What this means for your data: one person usually has at most one number on each network, which makes duplicates across networks a real customer with two SIMs, not fraud. Deactivated SIMs and reissued numbers still make old lists go stale. Re-check numbers you collected long ago before you send them an OTP. Our post on number recycling and list decay explains how.

What are the rules for SMS marketing and personal data?

These summarise TCRA regulations and the data protection law as we read them on 2026-11-07. Not legal advice; ask counsel how they apply to you.

TCRA's consumer protection rules

The Electronic and Postal Communications (Consumer Protection) Regulations, 2018 (G.N. No. 61) say a licensee "shall not engage in unsolicited telemarketing, sms-marketing or any other electronic methods unless" three conditions are met (regulation 7(4), GN 61 of 2018):

  • Consent. The customer consented to the service.
  • Who and why. At the start, the message names the licensee or the person it is sent for, and its precise purpose.
  • Full cost. It gives the breakdown of the total cost of the product or service offered.

Unlike Kenya's rules, these regulations set no time-of-day window and no specific opt-out format. Brands usually send through a licensed operator or SMS provider, so ask yours how it applies the consent rule and what it needs to register your sender name. We didn't find a TCRA document that sets up a national sender ID register.

People can report fraud SMS to the short code 15040, which TCRA's plan lists as "Report on Fraud" (table 16). TCRA counted 7,334 reported fraud attempts in the quarter to June 2026 (TCRA sector report). A message that looks like a scam, with a link and a request for money, can get your sender reported, so keep transactional and marketing traffic apart and make every message say who you are.

The Personal Data Protection Act 2022 and the PDPC

The Personal Data Protection Act, No. 11 of 2022 (now Chapter 44), came into force on 1 May 2023 (PDPA, English version). It set up the Personal Data Protection Commission (PDPC), which publishes the regulations and guidance on its site (PDPC publications). The points that matter for messaging lists:

  • Registration. "A person shall not collect or process personal data without being registered as a data controller or a data processor" (section 14(1)). Registration lasts five years.
  • Direct marketing. Anyone may require a data controller to stop processing their personal data for direct marketing (section 35(1)). The Act defines direct marketing as any advertising or marketing material "directed at an individual", by whatever means (35(3)).
  • Transfers abroad. Sections 31 and 32 limit transfers of personal data outside Tanzania; the Commission can prohibit them.
  • Fines. A penalty notice can impose an administrative fine of up to TZS 100 million (section 47).

Two regulations of 2023 fill in the detail: one on collecting and processing personal data and one on complaints. If you hold Tanzanian customers' numbers, put the stop request into your list hygiene: an opted-out number must stay suppressed on every channel, including WhatsApp.

Which messaging apps and channels reach people?

SMS reaches every active mobile. For WhatsApp, Meta doesn't price Tanzania as a separate market: it is one of the "Rest of Africa" markets on its rate card (Meta pricing, read on 2026-11-07). Our WhatsApp cost calculator shows what a campaign would cost by region, and our SMS character counter shows how many parts a message takes; Swahili in plain Latin letters fits the 160-character GSM alphabet unless you add emoji or curly quotes.

We found no published source that measures messaging-app use in Tanzania in a way we can verify, so we don't quote shares. Measure your own opted-in customers instead: check which apps they are registered on, route each person to the channel they use, and keep SMS as the fallback. Our channel-by-country guide shows the method.

How do I check WhatsApp registration for a Tanzanian customer list?

Normalise every row with normalize_tz() first, then run one check per number. A check tells you whether a number is registered at the time of the check. It can't tell you whether the person wants your messages:

AnswerWhat it meansWhat to do
registered: trueThe number has a WhatsApp account at checked_atOffer WhatsApp to customers who opted in to it
registered: falseNo account at checked_atUse SMS or another channel
unknownNo conclusive answer (not billed)Keep the current channel; retry later
invalid_numberFailed format validation (not billed)Fix the data at the source

For lists, use a bulk job. Upload a CSV with numbers written the Tanzanian way (0712 XXX XXX, 255… and spaces also work) and default_country=TZ:

Bulk WhatsApp and live-status check for a customer CSV
curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -F file=@customers.csv -F checks=whatsapp,hlr -F default_country=TZ

Send the same body to POST /v1/jobs/estimate first: it is free, checks nothing and shows the maximum cost and the per-country minimums before anything runs. To open a chat with one customer who wrote to you first, our WhatsApp link generator builds the wa.me link from an E.164 number.

What changed recently?

The rows for TZ and +255 in our numbering-plan changes dataset, built from libphonenumber's release notes:

Change named in the release notes (2019-01-08 to 2026-09-23)Releases
Original-carrier prefix data10
Numbering-plan metadata (validation, lengths, types)9
Short numbers2
Alternate formatting1
All22

Latest numbering-plan updates for TZ: 2026-08-26 (v9.0.38), 2026-07-02 (v9.0.34), 2026-02-12 (v9.0.24), 2025-12-04 (v9.0.20), 2024-03-20 (v8.13.33).

Tanzania's metadata has been busy lately: four numbering-plan updates between December 2025 and August 2026. On the regulator's side, the recent changes are:

  • 2024: Tigo became Yas on 26 November; Honora Tanzania holds the former Tigo and Zantel codes.
  • 2025: new SIM card registration regulations (G.N. No. 59, 31 January).
  • 2026: version 1.16 of TCRA's numbering plan (June), which lists 070 under Honora and 064 as assigned but not operational.

Update your library at least monthly, and log numbers it rejects instead of dropping them silently.

What can MobileValidate check for Tanzanian numbers?

Generated from our public catalog:

Catalog data as of 2026-11-07.

CheckAccepts Tanzania numbersNotes
Format and country (every lookup)YesEach number is parsed first; an invalid number returns invalid_number and is never billed.
Carrier lookup (beta)YesLine type and current network where data exists; no data means unknown, not billed. Real time and bulk.
US/CA carrier lookup (premium)No (US, CA only)Answers unsupported_country for other countries, not billed.
Live network status (HLR)YesLive reachability, porting, roaming (true or false) and current network; unknown is free. Real time and bulk.
Number portability (MNP)YesPorted or not ported, and the current network code; unknown is free. Real time and bulk.
Spam reputationLimited accessAll countries except sanctioned ones; report coverage is strongest in North America and Europe.
Messaging appsYes: WhatsApp, Telegram, Viber*, Signal*, iMessage*, RCS*, LINE*, Zalo*, Botim*, Facebook Messenger*Registered, not registered or unknown; unknown is free.
Social networksYes: Facebook, Instagram, Threads, X (Twitter), TikTok*, Snapchat*Not for Tanzania numbers: LinkedIn (US, IN only).
Online accounts (Apple, Amazon, Microsoft, Netflix)Yes: Apple, Amazon, Microsoft, NetflixRegistered, not registered or unknown; unknown is free.

* bulk jobs only. The live list is at GET /v1/services.

A lookup returns network and registration facts. It never returns a subscriber's name, ID number or address, and we don't offer "number details" searches.

Because the prefix shows only the range holder, the useful Tanzanian lookup is the current network: a live network status (HLR) check for reachability and porting, or an MNP lookup for ported or not ported and the current network code. The carrier lookup gives line type and current network in one call. For channels, WhatsApp and Telegram run in real time and in bulk; the starred checks in the table run in bulk jobs only.

How do I start for free?

  • 20 free real checks. Every live account can run 20 phone numbers and 10 e-mail addresses through the real checks for free on the dashboard's Try it page. Use them on your own number first.
  • Free tools. The carrier lookup page has a public form for 3 lookups a day, no sign-up needed, and our free tools validate, clean and format numbers in the browser.
  • A free test key. Get a test key for the sandbox. It gives fixed test answers so you can build every branch of your code; see test mode.
  • A free estimate. POST /v1/jobs/estimate takes the same body as a job, checks nothing and shows the maximum cost before you start.
  • Then add credit. Create your account; approval is automatic. Top-ups of larger amounts get 5% to 10% bonus credit; see pricing. Unknown, invalid and duplicate results are never charged.

Here is a small reachability check against the real-time endpoint. It asks for the live network status and WhatsApp registration in one call. It uses the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values. The sandbox accepts only those UK drama numbers, so the example uses them; with a live key, pass the output of normalize_tz().

tz_reach.py
import os

import requests  # pip install requests

API = "https://api.mobilevalidate.com/v1/lookup"
KEY = os.environ["MOBILEVALIDATE_API_KEY"]


def reach(numbers: list[str]) -> dict[str, dict]:
    """Live status, porting flag and WhatsApp registration per number. None means we don't know."""
    r = requests.post(API, headers={"Authorization": f"Bearer {KEY}"}, timeout=15,
                      json={"numbers": numbers, "checks": ["hlr", "whatsapp"], "wait": 5})
    r.raise_for_status()
    out = {}
    for row in r.json()["results"]:
        hlr, wa = row["checks"]["number.hlr"], row["checks"]["whatsapp.registered"]
        attrs = (hlr["attributes"] or {}) if hlr["status"] == "completed" else {}
        out[row["e164"]] = {
            "status": attrs.get("status"),
            "ported": attrs.get("ported"),
            "whatsapp": wa["registered"] if wa["status"] == "completed" else None,
        }
    return out


for number, info in reach(["+447700900001", "+447700900002", "+447700900005"]).items():
    print(number, info)

We ran it against the sandbox on 2026-11-07. It printed:

Text
+447700900001 {'status': 'reachable', 'ported': False, 'whatsapp': True}
+447700900002 {'status': 'unreachable', 'ported': False, 'whatsapp': False}
+447700900005 {'status': None, 'ported': None, 'whatsapp': None}

The third test value stands for an unsupported country, so every field is None and nothing would be billed. Keep None apart from False: None means we don't know. Requests with 20 or more consecutive numbers are refused (403 suspected_enumeration), and our acceptable use policy forbids finding recipients for unsolicited messages. People can object through our opt-out form. See WhatsApp number check for the fields.

What are the key takeaways?

  • Tanzanian mobiles are +255 plus nine digits starting with 6 or 7, written 06XX XXX XXX or 07XX XXX XXX at home. Store the E.164 form.
  • Tanzania's exit code is 000, so rewrite a leading 00255 to +255 before parsing, or it will fail.
  • TCRA's plan shows the range holder: Vodacom, Honora (Yas, formerly Tigo and Zantel), Airtel, Viettel (Halotel) and TTCL. 064 isn't in service and 060 is reserved in the plan, though the library accepts 060.
  • Porting has run since 1 March 2017, is free, and must finish within two working days, so look up the current network when it matters.
  • SIMs are registered by fingerprint against NIDA, one voice SIM per person per network. Marketing SMS needs consent, the sender's identity and the full cost, and the PDPA lets anyone stop direct marketing.
  • Check WhatsApp registration only for customers you hold lawfully, keep unknown apart from false, and never treat registration as consent.

Platform, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.

Sources

  1. National Numbering and Signaling Point Codes Plan, TCRA/DICT/CRTM/PLA-NMSP/002, Version 1.16 (June 2026) — Tanzania Communications Regulatory Authority (TCRA), 2026
  2. The Electronic and Postal Communications (Mobile Number Portability) Regulations, 2018 (G.N. No. 20 of 2018) — TanzLII (Tanzania Legal Information Institute), 2018
  3. Telcoms warned as number portability service begins (Daily News report, 2 March 2017, reprint) — Daily News (Tanzania), via the Haki Pensheni blog, 2017
  4. The Electronic and Postal Communications (Consumer Protection) Regulations, 2018 (G.N. No. 61 of 2018) — Tanzania Communications Regulatory Authority (TCRA), 2018
  5. The Electronic and Postal Communications (SIM Card Registration) Regulations, 2020 (G.N. No. 112 of 2020) — Tanzania Communications Regulatory Authority (TCRA), 2020
  6. Kanuni za Mawasiliano ya Kielektroniki na Posta (Usajili wa Laini za Simu) za Mwaka 2025 (G.N. No. 59 of 31 January 2025, SIM card registration regulations, in Swahili) — Tanzania Communications Regulatory Authority (TCRA), 2025
  7. Tanzania extends biometric SIM card registration deadline (January 2020) — ITWeb Africa, 2020
  8. The Personal Data Protection Act, Cap. 44 (Act No. 11 of 2022), English version, G.N. No. 395B of 2023 — TanzLII (Tanzania Legal Information Institute), 2023
  9. Publications: regulations and guidelines — Personal Data Protection Commission (PDPC), Tanzania, 2026
  10. Communications Sector Performance Report, quarter ending June 2026 — Tanzania Communications Regulatory Authority (TCRA), 2026
  11. Tigo Tanzania rebrands to Yas in shift towards pan-African ambitions (27 November 2024) — The Citizen (Tanzania), 2024
  12. Tigo is now Yas: your guide to the new brand — Yas Tanzania, 2024
  13. Numbering resources of Tanzania: communication of 1.XI.2024 (ITU-T E.164 national numbering plan notice) — International Telecommunication Union (ITU), 2024
  14. WhatsApp Business Platform pricing (pricing regions, read 2026-11-07) — Meta for Developers, 2026
  15. libphonenumber PhoneNumberMetadata.xml (region TZ), carrier prefix data and release notes — libphonenumber project (Apache License 2.0), 2026

Frequently asked questions

How many digits is a Tanzanian mobile number?

Nine digits after the country code +255, or ten when written at home with the leading 0. A Tanzanian mobile looks like 07XX XXX XXX or 06XX XXX XXX nationally and +255 7XX XXX XXX or +255 6XX XXX XXX in E.164, twelve digits in all after the plus. TCRA's numbering plan fixes nine digits after the country code for all services except machine-to-machine numbers.

What is the Tanzania country code for WhatsApp?

+255. Drop the leading 0 of the national number: 0621 234 567 becomes +255 621 234 567, stored as +255621234567. Don't keep the 0 after 255. The same E.164 form works for WhatsApp, SMS APIs and every other platform.

Which network is 074, 065, 068, 062 or 073 in Tanzania?

In TCRA's numbering plan of June 2026, 072, 074, 075, 076 and 079 are Vodacom; 065, 067, 070, 071 and 077 are Honora Tanzania, which trades as Yas (formerly Tigo and Zantel); 066, 068, 069 and 078 are Airtel; 061, 062 and 063 are Viettel Tanzania (Halotel); and 073 is TTCL. That is the range holder only, because numbers can be ported.

Is Tigo now Yas in Tanzania?

Yes. Tigo Tanzania rebranded to Yas on 26 November 2024, and Tigo Pesa became Mixx by Yas. The licensee behind it is Honora Tanzania PLC, which TCRA's plan also lists for the former Zantel code 077. Numbers didn't change: 065, 067, 071 and 077 numbers kept their digits, and TCRA's plan lists those codes and 070 under Honora.

Can I keep my number if I change network in Tanzania?

Yes. Mobile number portability started on 1 March 2017 and is free for the subscriber. Under the 2018 portability regulations the new operator runs the process, which must take no longer than two working days, with a switchover of at most fifteen minutes. A number can be ported once in thirty days, and a newly registered number must wait sixty days.

What are the rules for marketing SMS in Tanzania?

TCRA's Consumer Protection Regulations 2018 ban unsolicited telemarketing and SMS marketing unless the customer consented, the message names the sender and its purpose, and it states the total cost of what it offers. The Personal Data Protection Act 2022 lets anyone require a business to stop using their data for direct marketing. Fraud SMS can be reported to 15040.

Can I check whether Tanzanian customers are on WhatsApp?

Yes, for numbers you hold with a lawful basis, such as your own customers or sign-ups. A MobileValidate check answers registered, not registered or unknown with a checked_at date. Unknown answers are not billed. It never returns a name or profile, and we refuse requests that look like scans of number ranges.

All articles

Know before you send.

Create a free account: approved automatically, usually within 10–15 minutes.

Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.