Get City Detail
const url = 'https://indepai.app/api/v1/geo/cities/lisbon-portugal';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://indepai.app/api/v1/geo/cities/lisbon-portugalGet full city details by slug, including cost of living, quality of life, visa info, and related cities.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”City slug identifier
Example
lisbon-portugalResponses
Section titled “Responses”Full city detail
object
object
City identifier
City name
Country name
ISO 3166-1 alpha-2 country code
Geographic region
City coordinates
object
object
Total monthly cost of living (EUR)
Monthly housing cost (EUR)
Monthly food cost (EUR)
Monthly transportation cost (EUR)
Monthly utilities cost (EUR)
Monthly entertainment cost (EUR)
Other monthly costs (EUR)
object
Overall quality of life score (0-100)
Safety score (0-100)
Healthcare quality score (0-100)
Climate score (0-100)
Internet quality score (0-100)
English-friendliness score (0-100)
object
Top marginal income tax rate (%)
Capital gains tax rate (%)
Available special tax programs
Overall nomad-friendliness score (0-100)
object
Is in Schengen area
Offers digital nomad visa
Countries with visa-free access
Local currency code
Last data update timestamp
object
Example
{ "success": true, "data": [ { "id": "lisbon-portugal", "name": "Lisbon", "country": "Portugal", "countryCode": "PT", "region": "Western Europe", "coordinates": { "lat": 38.7223, "lng": -9.1393 }, "costOfLiving": { "monthlyTotal": 1800, "housing": 900, "food": 350, "transportation": 50, "utilities": 100, "entertainment": 200, "other": 200 }, "qualityOfLife": { "overall": 75, "safety": 80, "healthcare": 70, "climate": 85, "internet": 75, "englishFriendly": 70 }, "taxInfo": { "incomeTaxRate": 48, "capitalGainsTaxRate": 28, "specialPrograms": [ "NHR (Non-Habitual Resident)" ] }, "nomadScore": 82, "visaInfo": { "visaFreeFor": [ "US", "UK", "CA", "AU" ] }, "currency": "EUR" } ]}Missing slug parameter
object
Always false for error responses
Error type
Machine-readable error code
Detailed validation errors
object
Path to the invalid field
Error message
Example
{ "success": false, "error": "Validation error", "code": "VALIDATION_ERROR", "details": [ { "path": "currentAge", "message": "Must be between 18 and 100" } ]}City not found
object
Always false for error responses
Error type
Machine-readable error code
Detailed validation errors
object
Path to the invalid field
Error message
Example
{ "success": false, "error": "Validation error", "code": "VALIDATION_ERROR", "details": [ { "path": "currentAge", "message": "Must be between 18 and 100" } ]}