Skip to content

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 prefixnone: a number is dialled the same way at home and after the calling code
international prefix00
length, mobile9 digits
length, fixed line7 or 9 digits
length, toll free9 or 10 digits
length, premium rate9 digits
length, shared cost9 digits
length, VoIP9 digits
length, pager6 to 9 digits
length, universal access number9 digits
mobiles start with2 or 4–8
mobile vs fixed lineseparate 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 nationally512 345 678
written internationally+48 512 345 678
E.164+48512345678
dialled from the United States011 48 512 345 678
dialled from the United Kingdom00 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 tableUKE numbering tables (Poland) (partial)
table synced2026-10-19 (version 2026-10-19)
area-code pages62
SMS-receiving listings397 listings that still score disposable, of 856 numbers listed for Poland (lists of 2026-10-28)
fictional rangesnone in Spaw’s list
continentEurope
currencyPLN
timezoneEurope/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

Wrong result, or is it about you? If this tool said something you think is wrong, tell us and a person reads it. If Spaw is holding data about you and you never signed up here — a customer may have had your address verified, or reported that a message to it bounced — erase it yourself, confirmed by mail to that address and with no account needed.

More free tools

All free tools

Need 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.

Get your API key