Phone numbers in Poland (+48)
+48 is the calling code of Poland. There is no trunk prefix, and the international prefix is 00. Every mobile number starts with 2 or 4–8; some numbers of other types start the same way, so these digits alone do not make a number a mobile. Read from libphonenumber’s numbering metadata (release 9.0.41) and the UKE numbering tables (Poland) of 2026-10-19, never from a number anyone typed.
Dialling and writing numbers in Poland
The trunk prefix is dialled in front of a number inside the country and dropped after the calling code; the international prefix is dialled to call out of it. The lengths and the leading digits below say which numbers the plan accepts and what their first digits tell you about the line type.
| trunk prefix | none: a number is dialled the same way at home and after the calling code |
|---|---|
| international prefix | 00 |
| length, mobile | 9 digits |
| length, fixed line | 7 or 9 digits |
| length, toll free | 9 or 10 digits |
| length, premium rate | 9 digits |
| length, shared cost | 9 digits |
| length, VoIP | 9 digits |
| length, pager | 6 to 9 digits |
| length, universal access number | 9 digits |
| mobiles start with | 2 or 4–8 |
| mobile vs fixed line | separate ranges in the plan |
Lengths count the national significant number, the digits after the calling code, without the trunk prefix. Every value is read from libphonenumber’s metadata, release 9.0.41, which a lookup runs on.
One number in each of its written forms
| written nationally | 512 345 678 |
|---|---|
| written internationally | +48 512 345 678 |
| E.164 | +48512345678 |
| dialled from the United States | 011 48 512 345 678 |
| dialled from the United Kingdom | 00 48 512 345 678 |
This is libphonenumber’s example mobile number, formatted by libphonenumber. An example number can be in service, so read it as notation and never dial or text it.
The numbering plan for Poland
Every phone lookup starts from the numbering metadata: it settles whether a number is valid for Poland, how it is written nationally and internationally, and which line type its range belongs to. The example numbers below are libphonenumber’s examples of each line type’s format; one may be in service, so read them for their shape and never dial or text one as a test.
| calling_code | +48 |
|---|---|
| example, mobile | +48 512 345 678 |
| example, fixed line | +48 12 345 67 89 |
| example, toll free | +48 800 123 456 |
| example, premium rate | +48 701 234 567 |
| example, VoIP | +48 391 234 567 |
| example, pager | +48 641 234 567 |
| example, shared cost | +48 801 234 567 |
| regulator table | UKE numbering tables (Poland) (partial) |
| table synced | 2026-10-19 (version 2026-10-19) |
| area-code pages | 62 |
| SMS-receiving listings | 397 listings that still score disposable, of 856 numbers listed for Poland (lists of 2026-10-28) |
| fictional ranges | none in Spaw’s list |
| continent | Europe |
| currency | PLN |
| timezone | Europe/Warsaw |
The regulator table behind a lookup here
UKE numbering tables (Poland) (synced 2026-10-19, table version 2026-10-19). The table is partial: the regulator publishes only part of its plan in machine-readable form, so absence from it says nothing about a number and block_status stays null outside it. A lookup names the block holder as carrier with carrier_source block_allocation — the original allocation, never who serves the number today.
- 47,175 blocks in the table: 24,304 allocated, 22,369 unassigned, 502 reserved.
- 51.5 % of the blocks are allocated.
- 100.0 % of allocated blocks name a holder.
- 4.2 % of allocated blocks settle the line type on their own (842 mobile, 190 VoIP).
Measured weekly (last on 2026-10-25) from the table itself. These are shares of the regulator’s own table, not of real traffic, and they say nothing about who serves any one number today.
Who publishes the table, its files and terms, and what the copy installed here holds are on its data source page.
What a lookup answers for a number here
Every number the plan accepts for Poland comes back with its formats, its line_type and line_type_source, its region and timezones, and the is_fictional and is_disposable flags from the bundled fiction ranges and the synced list of SMS-receiving numbers. Because the UKE numbering tables (Poland) covers Poland, a lookup also answers carrier from the block holder and block_status where the partial table has the block.
Europe/Warsaw: the whole country keeps one clock, so a lookup answers that zone for every number here.
Area codes in Poland
Poland has 62 area-code pages; each reads the same table for the blocks under its code, their original holders and the line types they settle.
code · place its page names · blocks allocated in the UKE numbering tables (Poland) (original allocation, not who serves a number today)
- 12Kraków983
- 13Krosno335
- 14Tarnów443
- 15Tarnobrzeg392
- 16Przemyśl188
- 17Rzeszów539
- 18Nowy Sącz305
- 22Warsaw2,909
- 23Ciechanów250
- 24Plock297
- 25Siedlce276
- 29Ostrolęka293
- 32Katowice1,644
- 33Bielsko-Biala394
- 34Częstochowa309
- 41Kielce672
- 42Łódź646
- 43Sieradz192
- 44Piotrków Trybunalski352
- 45173
- 46Skierniewice193
- 48Radom464
- 5010
- 5110
- 52Bydgoszcz494
- 5319
- 54Wloclawek251
- 55Elbląg325
- 56Toruń442
- 5773
- 58Gdańsk790
- 59Slupsk245
- 6010
- 61Poznań743
- 62Kalisz396
- 63Konin211
- 65Leszno261
- 6619
- 67Pila229
- 68Zielona Góra425
- 6991
- 71Wroclaw718
- 72100
- 73135
- 74Walbrzych434
- 75Jelenia Góra378
- 76Legnica370
- 77Opole490
- 78100
- 7955
- 81Lublin676
- 82Chelm187
- 83Biala Podlaska257
- 84Zamość307
- 85Bialystok462
- 86Lomża224
- 87Suwalki248
- 8855
- 89Olsztyn485
- 91Szczecin667
- 94Koszalin295
- 95Gorzów Wielkopolski368
Run the lookup
The plan’s own example number, answered with every field:
curl https://spaw.co/api/v1/phone \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{"phone": "+48 512 345 678", "country": "PL"}'Or try one without a key on the free phone number lookup, and read every field in the phone intelligence guide.
Other regions
More free tools
All free toolsNeed this at scale?
The Spaw API runs the same lookup with batch and bulk endpoints, monitored number lists, your own suppression list and SMS outcome reporting — 100 free credits a month, no card required.