API documentation
A JSON API for residency, citizenship and digital-nomad programmes across 150+ countries. Start free; upgrade to Pro for the full dataset and CSV export.
Free
- • No key required
- • 60 requests / hour per IP
- • Up to 100 results per call
- • JSON only
Pro
- • Bearer API key
- • 600 requests / hour per key
- • Full dataset, up to 1000 per call
- • JSON + CSV export
Authentication
The free endpoint needs no auth. The Pro endpoint takes your key as a bearer token (or x-api-key header, or ?api_key=).
Authorization: Bearer wcim_your_key_hereFree — list programmes
GET /api/programmes — returns a sample of up to 100 records.
curl "https://wherecanimove.com/api/programmes?type=golden_visa&limit=5"Example response
[
{
"slug": "portugal-d7-passive-income-visa",
"name": "Portugal D7 (Passive Income) Visa",
"country": "Portugal",
"region": "Europe",
"sub_type": "passive_income_visa",
"cost_display": "From ~$9,200/yr income",
"investment_minimum": null,
"processing_months": 4,
"leads_to_pr": true,
"path_to_citizenship_years": 5,
"last_verified": "2026-05-30"
}
]Pro — full dataset
GET /api/v1/programmes — the complete catalogue, JSON or CSV.
# JSON, all citizenship-by-investment programmes
curl -H "Authorization: Bearer wcim_your_key" \
"https://wherecanimove.com/api/v1/programmes?type=citizenship_by_investment"
# CSV export of everything
curl -H "Authorization: Bearer wcim_your_key" \
"https://wherecanimove.com/api/v1/programmes?format=csv" -o programmes.csvPro responses are wrapped as { "count": n, "data": [...] }. Manage your keys in the Pro console.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| country | string | Filter by country name, e.g. Portugal. |
| type | string | Filter by sub-type (comma-separated), e.g. golden_visa,digital_nomad. |
| region | string | Filter by region, e.g. Europe. |
| search | string | Free-text match on name, country and description. |
| limit | number | Results to return. Free: max 100. Pro: max 1000. |
| format | string | json (default) or csv (Pro only). |
Response fields
Each programme includes these key fields (and more):
| slug | Unique identifier, used in /programme/{slug}. |
| name | Programme name. |
| country | Country offering the programme. |
| region | World region. |
| sub_type | Programme category (golden_visa, digital_nomad, citizenship_by_investment…). |
| status | active, or closed (closed are excluded by default). |
| cost_display | Human-readable headline cost. |
| investment_minimum | Minimum qualifying amount (USD). |
| processing_months | Typical processing time in months. |
| leads_to_pr | Whether it leads to permanent residency. |
| path_to_citizenship_years | Years to citizenship eligibility, if any. |
| tax_rate | Headline personal tax indicator. |
| visa_free_countries | Visa-free count for the resulting document. |
| last_verified | When the record was last checked against sources. |
Fair use
Please cache responses and attribute WhereCaniMove with a link when you publish data. The data is provided as-is for guidance and isn't legal advice. For commercial or bulk use, go Pro or get in touch.