30% Calculator →

Free Expat Data API: Netherlands Salary and Cost of Living (Data as of 17 March 2026) (0 guides)

Free static JSON with Dutch salary and cost of living figures (data as of 17 March 2026) for developers building expat tools and relocation apps.

Maintained by Expat Netherlands Hub · Editorial review by Wilco Terlouw

If you are building a relocation tool, salary calculator, or cost-of-living comparison app and you need clean data on the Netherlands, you can use the endpoints below for free. No API key required. No rate limits. Just link back to us as your source.

Data as of 17 March 2026. Both files were last updated on 17 March 2026 and have not been refreshed since. Figures such as rents, salaries and insurance premiums may have changed. Check the source pages and official sources (Belastingdienst, Rijksoverheid) before relying on them.


Available Endpoints

Both endpoints return static JSON hosted at expatnetherlandshub.com. The data in both files is as of 17 March 2026 (data_as_of field).

Salaries

GET https://expatnetherlandshub.com/api/v1/salaries.json

Returns:

  • Average gross and estimated net salary by city (Amsterdam, Rotterdam, Den Haag, Utrecht, Eindhoven, Groningen)
  • Salary ranges by seniority level for 6 sectors (Software Engineering, Data Science, Finance/Banking, Consulting, Marketing, Engineering)
  • Minimum wage (monthly, age 21+) as known on 17 March 2026
  • 30% ruling income threshold
  • Tax brackets with rates

Source page: Netherlands Salary Comparison


Cost of Living

GET https://expatnetherlandshub.com/api/v1/cost-of-living.json

Returns per city (Amsterdam, Rotterdam, Utrecht, Eindhoven, Groningen):

  • Rent ranges for 1-bedroom and 2-bedroom apartments (EUR/month)
  • Monthly grocery costs for a single person
  • Monthly public transport pass cost
  • Monthly health insurance cost

Source page: Expat Statistics Netherlands


Usage Examples

JavaScript (fetch)

// Salary data
fetch('https://expatnetherlandshub.com/api/v1/salaries.json')
  .then(res => res.json())
  .then(data => {
    const cities = data.data.by_city;
    cities.forEach(c => {
      console.log(`${c.city}: €${c.avg_gross.toLocaleString()} gross`);
    });
  });

// Cost of living data
fetch('https://expatnetherlandshub.com/api/v1/cost-of-living.json')
  .then(res => res.json())
  .then(data => {
    const amsterdam = data.data.by_city.find(c => c.city === 'Amsterdam');
    console.log(`Amsterdam 1-bed rent: €${amsterdam.rent_1bed.min}–€${amsterdam.rent_1bed.max}/month`);
  });

Python (requests)

import requests

# Salary data
r = requests.get('https://expatnetherlandshub.com/api/v1/salaries.json')
data = r.json()

for city in data['data']['by_city']:
    print(f"{city['city']}: €{city['avg_gross']:,} gross / €{city['avg_net_est']:,} net (est.)")

# Cost of living
r = requests.get('https://expatnetherlandshub.com/api/v1/cost-of-living.json')
col = r.json()

for city in col['data']['by_city']:
    rent = city['rent_1bed']
    print(f"{city['city']}: 1-bed €{rent['min']}–€{rent['max']}/month")

Response Format

Each response includes top-level metadata alongside the data:

{
  "source": "ExpatNetherlandsHub.com",
  "source_url": "https://expatnetherlandshub.com/salary-comparison/",
  "last_updated": "2026-03-17",
  "data_as_of": "2026-03-17",
  "status": "Data as of 17 March 2026. Not refreshed since; ...",
  "license": "Free to use with attribution link to source_url",
  "data": { ... }
}

The source_url field points to the page where the data originates; use this URL for your attribution link.


Attribution Requirement

The data is free to use. The one requirement is that you include a visible link to ExpatNetherlandsHub.com as your data source — either to the homepage or to the specific source_url returned in the response.

Example attribution:

Data source: <a href="https://expatnetherlandshub.com/salary-comparison/">ExpatNetherlandsHub.com</a>

That is it. No registration, no API key, no licence fee.


Data Notes

  • Salary figures are gross annual amounts in EUR. Net estimates assume a standard employee without the 30% ruling. Actual net pay varies based on personal deductions, housing benefit, and other factors.
  • Rent ranges reflect the private rental market in each city as of March 2026. They exclude social housing (which has long waiting lists for most expats).
  • Health insurance costs are for basic mandatory Dutch health insurance (basisverzekering). Expats on certain visa types may have different requirements.
  • All amounts are in EUR.
  • All figures are as of 17 March 2026 and have not been refreshed since. There is no automatic update schedule.

Questions or Corrections

If you spot an error in the data or want to request additional fields, contact us via the contact page. We will consider adding new endpoints (e.g., 30% ruling calculator output, housing by neighbourhood) if there is demand.

No guides published yet. Check back soon.

Before you go...

Get our free First 90 Days in the Netherlands checklist — 47 practical steps, from BSN registration to finding a GP.