- Free tier: 100 requests per hour, no API key required
- 27 countries and 21 job categories with junior, mid, and senior levels
- Clean JSON responses with gross salary, net salary, and tax breakdowns
Quick Start
Make your first request right now. No API key needed for the free tier:
curl -s "https://api.eurosalary.eu/v1/salary?country=DE&job=software-engineer&level=mid" | jq . API Endpoints
Get Salary Data
Returns gross and net salary figures for a specific country, job, and experience level.
GET /api/v1/salary?country=DE&job=software-engineer&level=mid Compare Across Countries
Returns salary data for a given job and level across all available countries, sorted by gross salary descending.
GET /api/v1/compare?job=software-engineer&level=mid Minimum Wage
Returns the current statutory minimum wage for a specific country, including monthly and hourly rates.
GET /api/v1/minimum-wage?country=DE Query Parameters
| Parameter | Type | Description |
|---|---|---|
country | string | ISO 3166-1 alpha-2 country code (e.g. DE, FR, ES) |
job | string | Job slug in kebab-case (e.g. software-engineer) |
level | string | Experience level: junior, mid, or senior |
format | string | Response format: json (default) or csv |
Response Format
All endpoints return JSON with a consistent envelope. Salary values are annual gross in EUR unless otherwise specified.
{
"status": "ok",
"data": {
"country": "DE",
"country_name": "Germany",
"job": "software-engineer",
"job_title": "Software Engineer",
"level": "mid",
"currency": "EUR",
"salary_gross_annual": 62400,
"salary_net_annual": 39200,
"salary_gross_monthly": 5200,
"salary_net_monthly": 3267,
"tax_rate": 0.372,
"social_contributions": 0.205,
"last_updated": "2026-03-31T00:00:00Z",
"sources": ["eurostat", "job_boards", "submissions"],
"sample_size": 1842,
"confidence": "high"
}
} {
"status": "ok",
"data": {
"country": "DE",
"country_name": "Germany",
"currency": "EUR",
"minimum_wage_monthly": 2054,
"minimum_wage_hourly": 12.82,
"effective_date": "2026-01-01",
"last_updated": "2026-03-31T00:00:00Z"
}
} Authentication
Authentication depends on your plan:
Free tier: No API key required. Simply make requests to the endpoints listed above.
Paid plans: Include your API key in the Authorization header as a Bearer token.
Authorization: Bearer YOUR_API_KEY Rate Limits
Rate limits are enforced per IP address for the free tier and per API key for paid plans.
| Tier | Requests | Window |
|---|---|---|
| Free | 100 | 1 hour |
| Developer | 10,000 | 24 hours |
| Business | 100,000 | 24 hours |
| Enterprise | Unlimited | -- |
Pricing
Choose the plan that fits your usage. All plans include the same data quality and endpoint access.
Free
€0100 requests per hour. No key required. Perfect for prototyping and personal projects.
Developer -- €49/mo
€49/mo10,000 requests per day. API key with usage dashboard. Email support.
Business -- €199/mo
€199/mo100,000 requests per day. Priority support. Webhook notifications for data updates.
Enterprise -- Custom
CustomUnlimited requests. Dedicated account manager. Custom SLA and data exports.
SDK & Code Examples
Integrate EuroSalary data into your application with these ready-to-use examples.
const response = await fetch(
"https://api.eurosalary.eu/v1/salary?country=DE&job=software-engineer&level=mid"
);
const { data } = await response.json();
console.log(data.salary_gross_annual); // 62400
console.log(data.salary_net_monthly); // 3267 import requests
response = requests.get(
"https://api.eurosalary.eu/v1/salary",
params={"country": "DE", "job": "software-engineer", "level": "mid"}
)
data = response.json()["data"]
print(f"Gross: €{data['salary_gross_annual']:,}") # Gross: €62,400
print(f"Net: €{data['salary_net_monthly']:,}") # Net: €3,267 curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.eurosalary.eu/v1/compare?job=software-engineer&level=mid" | jq . Korduma kippuvad küsimused
Is the EuroSalary API free to use?
Yes. The free tier gives you 100 requests per hour with no API key required. This is sufficient for personal projects, academic research, and prototyping. Paid plans are available when you need higher limits or dedicated support.
What countries and jobs does the API cover?
The API currently covers 27 European countries (Germany, France, Spain, Netherlands, Belgium, Austria, Switzerland, Luxembourg, Ireland, Portugal, Italy, Poland, Czech Republic, Sweden, Denmark) and 21 job categories across technology, finance, healthcare, engineering, and more.
How often is the salary data updated?
Salary data is refreshed weekly from job board sources and quarterly from Eurostat. The API always serves the latest available data. You can check the last_updated field in every response to see exactly when the data was last refreshed.
Can I use the API in a commercial product?
Yes. All paid plans include a commercial use license. The free tier is limited to non-commercial and personal use. If you are building a product that displays or resells salary data, you need at least the Developer plan.
What happens if I exceed my rate limit?
When you exceed your rate limit, the API returns a 429 Too Many Requests response with a Retry-After header indicating how many seconds to wait. Free tier limits reset every hour. Paid plan limits reset daily at midnight UTC.
Ready to Get Started?
Create a free account to start using the API immediately. Upgrade anytime as your usage grows.
Create Free Account