Phone numbers in the Netherlands (+31)
+31 is the calling code of the Netherlands. The trunk prefix is 0 and the international prefix 00. Every mobile number starts with 061–065, 068 or 097 when written nationally, with the trunk prefix, and no other type of number in the plan does. Read from libphonenumber’s numbering metadata (release 9.0.41) and the ACM number register of 2026-10-19, never from a number anyone typed.
Dialling and writing numbers in the Netherlands
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 | 0, dialled before a number inside the country and dropped after +31 |
|---|---|
| international prefix | 00 |
| length, mobile | 9 or 11 digits |
| length, fixed line | 9 digits |
| length, toll free | 7 to 10 digits |
| length, premium rate | 7 to 10 digits |
| length, VoIP | 9 digits |
| length, pager | 9 digits |
| length, universal access number | 5, 6 or 9 digits |
| mobiles start with | 061–065, 068 or 097 |
| 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 | 06 12345678 |
|---|---|
| written internationally | +31 6 12345678 |
| E.164 | +31612345678 |
| dialled from the United States | 011 31 6 12345678 |
| dialled from the United Kingdom | 00 31 6 12345678 |
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 the Netherlands
Every phone lookup starts from the numbering metadata: it settles whether a number is valid for the Netherlands, 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 | +31 |
|---|---|
| example, mobile | +31 6 12345678 |
| example, fixed line | +31 10 123 4567 |
| example, toll free | +31 800 1234 |
| example, premium rate | +31 906 1234 |
| example, VoIP | +31 85 123 4567 |
| example, pager | +31 66 2345678 |
| regulator table | ACM number register |
| table synced | 2026-10-19 (version 2026-10-19) |
| area-code pages | 148 |
| SMS-receiving listings | 2,092 listings that still score disposable, of 9,562 numbers listed for the Netherlands (lists of 2026-10-28) |
| fictional ranges | none in Spaw’s list |
| continent | Europe |
| currency | EUR |
| timezone | Europe/Amsterdam |
The regulator table behind a lookup here
ACM number register (synced 2026-10-19, table version 2026-10-19). The table is complete: it lists every assigned block of its plan, so a geographic number outside it is called unassigned. A lookup names the block holder as carrier with carrier_source block_allocation — the original allocation, never who serves the number today.
- 84,441 blocks in the table: 82,378 allocated, 2,040 unassigned, 23 reserved.
- 97.6 % of the blocks are allocated.
- 100.0 % of allocated blocks name a holder.
- 7.5 % of allocated blocks settle the line type on their own (887 mobile, 5,306 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 the Netherlands 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 ACM number register covers the Netherlands, a lookup also answers carrier from the block holder and block_status for every geographic number, unassigned included.
Europe/Amsterdam: the whole country keeps one clock, so a lookup answers that zone for every number here.
Area codes and number ranges in the Netherlands
The Netherlands has 141 area-code pages and 7 pages for non-geographic ranges (mobile, freephone, special-rate); each reads the same table for the blocks under its prefix, their original holders and the line types they settle. Written here with the trunk 0 dialled inside the Netherlands; from abroad the 0 is dropped after +31.
code · place its page names · blocks allocated in the ACM number register (original allocation, not who serves a number today)
Area codes141
- 010Rotterdam1,343
- 0111Zierikzee154
- 0113Goes330
- 0114Hulst171
- 0115Terneuzen226
- 0117Oostburg182
- 0118Middelburg294
- 013Tilburg524
- 015Delft296
- 0161Rijen179
- 0162Oosterhout237
- 0164Bergen op Zoom264
- 0165Roosendaal252
- 0166Tholen149
- 0167Steenbergen151
- 0168Zevenbergen204
- 0172Alphen aan den Rijn278
- 0174Naaldwijk282
- 0180Barendrecht293
- 0181Spijkenisse328
- 0182Gouda298
- 0183Gorinchem244
- 0184Sliedrecht221
- 0186Oud-Beijerland178
- 0187Middelharnis196
- 020Amsterdam2,127
- 0222Den Burg135
- 0223Den Helder204
- 0224Schagen175
- 0226Noord Scharwoude196
- 0227Medemblik168
- 0228Enkhuizen184
- 0229Hoorn232
- 023Haarlem511
- 024Nijmegen473
- 0251Beverwijk207
- 0252Nieuw-Vennep258
- 0255IJmuiden165
- 026Arnhem511
- 0294Weesp210
- 0297Aalsmeer279
- 0299Purmerend264
- 030Utrecht1,108
- 0313Dieren188
- 0314Doetinchem265
- 0315Terborg197
- 0316Zevenaar243
- 0317Wageningen204
- 0318Veenendaal336
- 0320Lelystad210
- 0321Dronten141
- 033Amersfoort462
- 0341Harderwijk233
- 0342Barneveld185
- 0343Driebergen-Rijsenburg235
- 0344Tiel217
- 0345Culemborg232
- 0346Maarssen215
- 0347Vianen177
- 0348Woerden233
- 035Hilversum442
- 036Almere286
- 038Zwolle406
- 040Eindhoven800
- 0411Boxtel192
- 0412Oss218
- 0413Uden300
- 0416Waalwijk287
- 0418Zaltbommel206
- 043Maastricht473
- 045Heerlen411
- 046Sittard288
- 0475Roermond348
- 0478Venray211
- 0481Bemmel168
- 0485Cuyk276
- 0486Grave167
- 0487Druten168
- 0488Zetten178
- 0492Helmond310
- 0493Deurne208
- 0495Weert258
- 0497Eersel182
- 0499Best225
- 050Groningen583
- 0511Veenwouden171
- 0512Drachten219
- 0513Heerenveen219
- 0514Lemmer145
- 0515Sneek186
- 0516Oosterwolde160
- 0517Harlingen173
- 0518St. Annaparochie148
- 0519Dokkum164
- 0521Steenwijk179
- 0522Meppel211
- 0523Hardenberg193
- 0524Coevorden169
- 0525Elburg139
- 0527Emmeloord206
- 0528Hoogeveen213
- 0529Dalfsen157
- 053Enschede318
- 0541Oldenzaal212
- 0543Winterswijk175
- 0544Lichtenvoorde157
- 0545Eibergen173
- 0546Almelo315
- 0547Goor176
- 0548Rijssen191
- 055Apeldoorn395
- 0561Wolvega151
- 0562West-Terschelling130
- 0566Grou143
- 0570Deventer272
- 0571Twello130
- 0572Raalte185
- 0573Lochem149
- 0575Zutphen221
- 0577Elspeet143
- 0578Epe151
- 058Leeuwarden347
- 0591Emmen271
- 0592Assen298
- 0593Beilen158
- 0594Zuidhorn185
- 0595Warffum164
- 0596Delfzijl198
- 0597Winschoten208
- 0598Veendam252
- 0599Stadskanaal241
- 070The Hague977
- 071Leiden492
- 072Alkmaar356
- 073's-Hertogenbosch516
- 074Hengelo308
- 075Zaandam256
- 076Breda459
- 077Venlo400
- 078Dordrecht404
- 079Zoetermeer294
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": "+31 6 12345678", "country": "NL"}'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.