Relocate APIrelocate.me ↗
Access relocate.me data via API: country relocation guides, visa types, tech salaries, job listings, cost of living, and healthcare overviews across dozens of countries.
What is the Relocate API?
The relocate.me API exposes 9 endpoints covering country relocation guides, visa types, tech job listings, salary benchmarks, cost of living breakdowns, and healthcare overviews. get_countries_list returns every country available on the platform along with the slugs needed to query all country-specific endpoints. get_salaries_overview ranks countries by average monthly net salary, making cross-country earning comparisons straightforward without hitting individual country pages.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/bc927a34-28bd-4703-9e12-7d59e5d351f6/get_countries_list' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace relocate-me-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Relocate.me SDK — compare relocation destinations by salary, visas, jobs, and cost of living."""
from parse_apis.relocate_me_scraper_api import RelocateMe, CountryNotFound
client = RelocateMe()
# List all available countries
for country in client.countries.list(limit=5):
print(country.name, country.slug)
# Get salary rankings globally
for ranking in client.salaryrankings.list(limit=3):
print(ranking.country, ranking.average_monthly_net)
# Drill into a specific country using constructible access
germany = client.country(slug="germany")
# Get the country overview with facts
overview = germany.overview()
print(overview.country_name, overview.facts)
# List available visas
for visa in germany.visas.list(limit=3):
print(visa.type, visa.url)
# Get salary details for the country
salary_info = germany.salaries.get()
print(salary_info.average_salary_info)
for js in salary_info.job_salaries[:3]:
print(js.role, js.salary)
# Get cost of living
col = germany.cost_of_living.get()
print(col.url)
# Typed error handling — catch when a country slug doesn't exist
try:
bad = client.country(slug="nonexistent-place")
bad.overview()
except CountryNotFound as exc:
print(f"Country not found: {exc.country_slug}")
print("exercised: countries.list / salaryrankings.list / country.overview / visas.list / salaries.get / cost_of_living.get")
Returns all countries with relocation guides on relocate.me. Each country includes a name, URL slug, and direct link. Use the slug as input to all country-specific endpoints.
No input parameters required.
{
"type": "object",
"fields": {
"countries": "array of objects with name, slug, and url for each country"
},
"sample": {
"data": {
"countries": [
{
"url": "https://relocate.me/moving-to-germany",
"name": "Germany",
"slug": "germany"
},
{
"url": "https://relocate.me/moving-to-netherlands",
"name": "Netherlands",
"slug": "netherlands"
}
]
},
"status": "success"
}
}About the Relocate API
Country Overviews and Visa Data
Start with get_countries_list to retrieve the full set of available countries — each entry includes a name, slug, and url. The slug field is the required input for all country-specific endpoints. get_country_overview returns a facts object with key-value pairs such as Capital, Currency, Population, and Tax year, plus a prose description, author, moderator, and last_updated date. get_country_visas returns an array of visa entries under visas, each with at minimum a type name and optionally a description and direct url to the visa detail page.
Salaries and Job Listings
get_country_salaries returns job_salaries — an array of objects pairing a role with a salary — alongside an average_salary_info summary string. The global counterpart, get_salaries_overview, returns top_salaries: an ordered list of countries with their average_monthly_net salary, useful for ranking relocation destinations by earning potential. get_country_jobs returns live tech job postings with title, company, city, and url per listing, plus a count integer. Job results reflect current postings and may return an empty array for countries with no active listings.
Cost of Living and Healthcare
get_country_cost_of_living returns a costs object whose keys are section headings (rent, utilities, food, transport, comparisons) and whose values are the corresponding informational text. get_country_healthcare follows the same structure — a healthcare object keyed by section headings covering system structure, insurance types, accessing care, and emergencies. Both endpoints accept a country_slug and return a url pointing to the source page.
Global Visa Coverage
get_visas_overview provides a global index of every country that has a visa guide on relocate.me, returning an array of objects with name, slug, and url. This is distinct from get_countries_list in that it only surfaces countries with dedicated visa content, so the two lists may differ in size.
The Relocate API is a managed, monitored endpoint for relocate.me — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when relocate.me changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official relocate.me API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Compare average monthly net salaries across relocation destinations using
get_salaries_overviewto rank countries for a compensation-focused decision. - Build a visa eligibility reference tool that surfaces available visa types per country from
get_country_visas. - Aggregate live tech job openings by country using
get_country_jobsto power a filtered relocation-aware job board. - Display cost of living breakdowns (rent, food, transport) for candidate countries using
get_country_cost_of_living. - Populate country fact sheets — capital, currency, population, tax year — from the
factsobject inget_country_overview. - Surface healthcare system summaries for prospective expats using the section-keyed
healthcareobject fromget_country_healthcare. - Enumerate all visa-guide countries programmatically via
get_visas_overviewto keep a relocation database in sync.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does relocate.me have an official developer API?+
What does get_country_jobs return, and what happens when there are no listings?+
get_country_jobs returns an array of job objects — each with title, company, city, and url — plus a count integer. Job data reflects live postings on relocate.me, so if no tech positions are currently listed for a country, the jobs array will be empty and count will be zero.Does the API return city-level cost of living breakdowns?+
get_country_cost_of_living returns cost data at the country level, organized by section topics such as rent, food, and transport. There is no city-specific granularity in the response. You can fork this API on Parse and revise it to add a city-level cost endpoint if that data becomes available on the source.Does the salary data cover non-tech roles?+
get_country_salaries returns a job_salaries array of role-salary pairs drawn from the site's tech salary pages. Non-tech industry salary breakdowns are not currently covered. You can fork this API on Parse and revise it to target additional role categories if the source adds them.How current is the country overview data, and is there a freshness indicator?+
get_country_overview includes a last_updated field indicating when the guide was last revised, along with author and moderator attribution. Freshness depends on when relocate.me editors update each country guide, which varies by country and is not on a fixed schedule.