Developers

SoloOutpost API

The same data behind this site, as a read-only JSON API. Two sides: ask by passport to get every country a nationality can relocate to with the visa route that applies, or ask by country for the full tax, cost, and visa picture. About 150 countries and 140 nationalities.

The API is free and keyless. The production endpoints below work right now, no signup and no key. If you use the data, please credit SoloOutpost with a link back to solooutpost.com. Every detail response includes an attribution field with the link.

The datasets

Four datasets, three of them with a dedicated free API and reference page.

Mobility API

Pass a passport, get every country that nationality can relocate to, ranked by our Solopreneur Friendliness score, each with the entry route that applies (visa-free, freedom of movement, digital-nomad or entrepreneur visa). Built from the Passport Index matrix joined to our own visa dataset.

/mobility, /mobility/{nationality} · Read the Mobility API docs →

Citizenship by Investment API

Every country that grants a passport in exchange for investment or donation, with exact minimum amounts per route, government fees, family rules, processing times, program status (including terminated schemes like Malta), and the restricted applicant nationalities for each program.

/citizenship, /citizenship/{slug} · Read the Citizenship by Investment API docs →

Golden Visa API

Every golden-visa (residency-by-investment) program worldwide, with investment thresholds by route, what residency it grants, physical-presence rules, the path to permanent residence and citizenship, and current status (active, closed or terminated). Around 70 jurisdictions.

/golden-visas, /golden-visas/{slug} · Read the Golden Visa API docs →

Endpoints

Base URL: https://solooutpost.com/api

GET/mobility
List of every nationality covered.
GET/mobility/{nationality}try /mobility/russian
Ranked relocation options for a passport. Filter with ?nomad=true and ?maxIncome=3000.
GET/countries
Slim list of all countries with headline tax fields and scores.
GET/country/{slug}try /country/portugal
Full record for one country.
GET/citizenship
Every citizenship-by-investment program with costs, criteria and eligible nationalities.
GET/citizenship/{slug}try /citizenship/turkey
One citizenship-by-investment program.
GET/golden-visas
Every golden-visa (residency-by-investment) program worldwide.
GET/golden-visas/{slug}try /golden-visas/portugal
One golden-visa program.

Building with Claude, Codex, or Cursor?

Point your AI tool at the machine-readable spec and it can write a working client in seconds. Two files describe the whole API:

Add it to Claude in one line

SoloOutpost ships an MCP server, so Claude, Claude Code, and Cursor can query this data as native tools. In Claude Code:

claude mcp add solooutpost -- npx -y solooutpost-mcp

Then just ask: "Using SoloOutpost, where can a Russian freelancer live on a nomad visa under $3,000 a month?"

Prefer plain HTTP? Try it from the terminal, no key needed:

# where can a Russian freelancer live, nomad visas under $3000/mo
curl "https://solooutpost.com/api/mobility/russian?nomad=true&maxIncome=3000"

# full tax profile for one country
curl "https://solooutpost.com/api/country/portugal"

Visa data change often and some visas exclude specific nationalities. Treat the API as a current starting point for filtering and ranking, not legal advice. See how we score countries.

API reference

Four read-only endpoints. Switch the language tab for ready-to-run request snippets.

Base URL https://solooutpost.com/api · free, no key
GET/mobility

List every nationality (passport) covered. Use it to discover valid values for the by-passport endpoint.

Request · cURL
curl "https://solooutpost.com/api/mobility"
Response
[
  { "slug": "american", "demonym": "American", "passport": "United States", "iso": "US", "count": 148 },
  { "slug": "russian",  "demonym": "Russian",  "passport": "Russia",        "iso": "RU", "count": 148 }
]
GET/mobility/{nationality}

Every country a passport can relocate to, ranked by Solopreneur Friendliness, with the visa route that applies.

ParameterInTypeDescription
nationality requiredpathstringDemonym slug, e.g. russian, indian, german.
nomadquerybooleanOnly destinations with a digital nomad visa.
maxIncomequeryintegerOnly destinations whose nomad-visa monthly income minimum (USD) is at or below this.
Request · cURL
curl "https://solooutpost.com/api/mobility/russian?nomad=true&maxIncome=3000"
Response
{
  "passport": "Russia",
  "demonym": "Russian",
  "slug": "russian",
  "count": 21,
  "filtered": true,
  "destinations": [
    {
      "slug": "georgia",
      "name": "Georgia",
      "region": "Europe",
      "friendliness_score": 75,
      "nomad_visa": true,
      "entrepreneur_visa": false,
      "nomad_income_usd": 2000,
      "taxation_basis": "territorial",
      "expat_regime_name": "Small Business Status (1% turnover tax up to GEL 500,000)",
      "entry_category": "visa_free",
      "entry_label": "Visa-free, 360 days",
      "entry_days": 360
    }
  ],
  "attribution": { "source": "SoloOutpost", "url": "https://solooutpost.com" }
}
GET/countries

All ~150 countries with headline tax fields, visa flags, cost of living, and the friendliness score.

Request · cURL
curl "https://solooutpost.com/api/countries"
Response
[
  {
    "slug": "united-arab-emirates",
    "name": "United Arab Emirates",
    "iso_code": "AE",
    "region": "Middle East",
    "friendliness_score": 90,
    "pit_top_rate": 0,
    "taxation_basis": "territorial",
    "digital_nomad_visa": true,
    "dnv_income_requirement_usd": 3500
  }
]
GET/country/{slug}

Full tax, cost, and visa record for one country, including the friendliness score and its four pillars.

ParameterInTypeDescription
slug requiredpathstringCountry slug, e.g. portugal, united-arab-emirates.
Request · cURL
curl "https://solooutpost.com/api/country/portugal"
Response
{
  "slug": "portugal",
  "name": "Portugal",
  "iso_code": "PT",
  "region": "Europe",
  "friendliness_score": 50,
  "taxation_basis": "worldwide",
  "pit_top_rate": 48,
  "vat_standard_rate": 23,
  "digital_nomad_visa": true,
  "dnv_income_requirement_usd": 3975,
  "cost_of_living_index": 48.8,
  "attribution": { "source": "SoloOutpost", "url": "https://solooutpost.com" }
}