Geo-Parity
Was dieses MCP kann
Compares global living costs, wages, healthcare, banking, taxes and connectivity while checking visa, Schengen and tax-residency constraints.
Tools
Eingabeschema
{'type': 'object', 'examples': [{'passport': 'US', 'destination': 'GB'}], 'required': ['passport', 'destination'], 'properties': {'income': {'type': 'number', 'minimum': 0, 'description': "Monthly remote income in USD. Optional; enables housing's income-relative view but is not needed for the arrival total."}, 'passport': {'type': 'string', 'description': "ISO alpha-2 of the traveller's passport, e.g. 'US'. Determines the entry route and therefore the fee."}, 'destination': {'type': 'string', 'description': 'ISO alpha-2 of the destination. Must be in the PPP country registry; some countries with a verified nomad-visa fee (e.g. BB) are not and appear only in find_nomad_visas.'}, 'depositMonths': {'type': 'number', 'maximum': 12, 'minimum': 0, 'description': "Months of rent held as a deposit. Defaults to the site's stated assumption of 1; override it if you know the market."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'number'}, 'years': {'type': 'object'}, 'country': {'type': 'string'}, 'metrics': {'type': 'object', 'properties': {'mortgageRatePct': {'type': 'number'}, 'housingPriceLevelEu': {'type': 'number'}, 'priceToRentVsLongRun': {'type': 'number'}, 'priceToIncomeVsLongRun': {'type': 'number'}}}, 'rentBasis': {'enum': ['measured', 'modelled'], 'type': 'string'}, 'arbitrageGap': {'type': 'number', 'description': 'Percentage points by which rent sits lighter on you than on a local.'}, 'measuredCities': {'type': 'number'}, 'rentMonthlyUsd': {'type': 'number'}, 'rentPctOfYourIncome': {'type': 'number'}, 'rentPctOfLocalMedian': {'type': 'number'}}}}, 'focus': {'type': 'object'}, 'updated': {'type': 'string'}, 'excluded': {'type': 'number'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'PT'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'description': 'Defaults to highest, or lowest for instantPaymentsSince (longest-running first).'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Maximum rows in a ranking.'}, 'access': {'enum': ['yes', 'restricted', 'no'], 'type': 'string', 'description': 'Narrow a ranking to one non-resident access rule.'}, 'metric': {'enum': ['depositGuaranteeUsd', 'instantPaymentsSince'], 'type': 'string', 'default': 'depositGuaranteeUsd', 'description': 'Ranking metric when no country is given.'}, 'country': {'type': 'string', 'description': 'ISO alpha-2 code for a single country, e.g. PT.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, at least two, e.g. GB,TH,NG.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array'}, 'caveats': {'type': 'array'}, 'excluded': {'type': 'array'}, 'attribution': {'type': 'object'}, 'internationalOptions': {'type': 'array'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'DE', 'seniority': 'senior', 'occupation': 'professionals'}], 'required': ['country'], 'properties': {'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (case-insensitive).'}, 'seniority': {'enum': ['entry', 'mid', 'senior', 'lead'], 'type': 'string', 'description': "Defaults to 'mid'. An unrecognised value is rejected."}, 'occupation': {'enum': ['total', 'armed-forces', 'managers', 'professionals', 'technicians', 'clerical', 'services-sales', 'agricultural', 'craft', 'operators', 'elementary'], 'type': 'string', 'description': "ISCO-08 major group. Defaults to 'total' (all occupations). An unrecognised value is rejected, never widened to the default."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'year': {'type': 'number'}, 'basis': {'type': 'string', 'description': "'measured' or 'modelled' — never blurred."}, 'floor': {'type': 'object', 'properties': {'annualUsd': {'type': 'number'}, 'monthlyUsd': {'type': 'number'}, 'percentile': {'type': 'number'}}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Always present. Reproduce these with any quoted figure.'}, 'ceiling': {'type': 'object', 'properties': {'annualUsd': {'type': 'number'}, 'monthlyUsd': {'type': 'number'}, 'percentile': {'type': 'number'}}}, 'country': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}}, 'midpoint': {'type': 'object', 'properties': {'annualUsd': {'type': 'number'}, 'monthlyUsd': {'type': 'number'}, 'percentile': {'type': 'number'}}}, 'seniority': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}}}, 'occupation': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}}}, 'genderGapPct': {'type': 'number'}, 'occupationMedianMonthlyUsd': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'income': 100000, 'target': 'TH'}], 'required': ['income', 'target'], 'properties': {'city': {'type': 'string', 'description': "Optional city slug (e.g. 'london', 'san-francisco') for a sub-national Capital-to-Rural adjustment: multiplies the national price level by a per-city factor (curated overrides / US-metro BEA RPP / population-tier heuristic). Unknown slug = national figure."}, 'income': {'type': 'number', 'minimum': 0, 'description': 'Nominal annual income, denominated against the US baseline.'}, 'source': {'enum': ['consensus', 'worldbank', 'imf', 'oecd', 'pwt', 'worldbank-cons', 'bigmac', 'factbook'], 'type': 'string', 'default': 'consensus', 'description': "PPP dataset to draw figures from. 'consensus' = per-country median across the GDP-based providers (recommended default); 'worldbank' = World Bank GDP price level; 'imf' = IMF WEO implied PPP; 'oecd' = OECD PPP-for-GDP (members + key partners only); 'pwt' = Penn World Table; 'worldbank-cons' = World Bank household-consumption price level; 'bigmac' = The Economist Big Mac index (single-good consumer PPP, ~40 countries); 'factbook' = CIA World Factbook derived price level for ~100 micro-states/territories the macro sources ignore (coarse). Defaults to 'consensus' if omitted."}, 'target': {'enum': ['US', 'AR', 'AU', 'BR', 'CA', 'CL', 'CN', 'CO', 'CZ', 'DK', 'EG', 'FR', 'DE', 'GR', 'HU', 'IN', 'ID', 'IE', 'IT', 'JP', 'KR', 'MY', 'MX', 'NL', 'NZ', 'NG', 'NO', 'PH', 'PL', 'PT', 'SA', 'SG', 'ZA', 'ES', 'SE', 'CH', 'TH', 'TR', 'AE', 'GB', 'VN'], 'type': 'string', 'description': 'ISO 3166-1 alpha-2 target country code (case-insensitive). Available codes depend on the chosen source.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'source': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}}}, 'target': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'currency': {'type': 'string'}, 'pppIndex': {'type': 'number'}}}, 'metrics': {'type': 'object', 'properties': {'purchasingPowerRatio': {'type': 'number'}, 'effectivePurchasingPower': {'type': 'number'}, 'lifestyleEquilibriumCost': {'type': 'number'}}}}}
Eingabeschema
{'type': 'object', 'examples': [{'burn': 3000, 'home': 'GB', 'fixed': 800, 'savings': 20000, 'targets': 'TH:chiang-mai,GE', 'currency': 'GBP'}], 'required': ['savings', 'burn', 'targets'], 'properties': {'burn': {'type': 'number', 'description': 'Total current monthly burn at home (in `currency`).'}, 'home': {'type': 'string', 'description': 'Home country alpha-2 code. Default US.'}, 'fixed': {'type': 'number', 'description': "Location-independent slice of burn (0…burn) that won't fall when you move."}, 'savings': {'type': 'number', 'description': 'Total savings (in `currency`).'}, 'targets': {'type': 'string', 'description': '1–3 hubs, comma-separated: COUNTRY or COUNTRY:citySlug (e.g. TH:chiang-mai,AR:buenos-aires,GE).'}, 'currency': {'type': 'string', 'description': 'ISO code for the money inputs (e.g. GBP). Default USD.'}, 'homeCity': {'type': 'string', 'description': 'Optional curated home-city slug.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'home': {'type': 'object', 'properties': {'runsOut': {'type': 'string'}, 'runwayMonths': {'type': 'number'}}}, 'hubs': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Sorted by extra months; each has runwayMonths, extraMonths, multiplier, monthlyBurnUsd, runsOut, priceRatio and a coverage note when approximate.'}, 'fixedFloorMonths': {'type': ['number', 'null'], 'description': 'Runway cap even at zero local cost (savings ÷ fixed burn).'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'PL', 'percentile': 90}], 'required': ['country'], 'properties': {'salary': {'type': 'number', 'minimum': 0, 'description': 'Your salary to locate on the distribution. Values over 20000 are read as annual (÷12), else monthly.'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (case-insensitive).'}, 'percentile': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Return the exact wage threshold at this percentile (e.g. 90 for the top-10% floor).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'bands': {'type': 'object', 'properties': {'top1': {'type': 'object'}, 'top10': {'type': 'object'}, 'median': {'type': 'object'}, 'minimum': {'type': ['object', 'null']}, 'survival': {'type': 'object'}, 'comfortable': {'type': 'object'}}}, 'model': {'type': 'object', 'properties': {'gini': {'type': 'number'}, 'sigma': {'type': 'number'}, 'meanMonthly': {'type': 'number'}}}, 'country': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}}, 'standing': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'percentile': {'type': 'number'}}}, 'atPercentile': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'stays': [{'exit': '2026-04-02', 'entry': '2026-01-10', 'country': 'PT'}]}], 'required': ['stays'], 'properties': {'stays': {'type': 'array', 'items': {'type': 'object', 'required': ['country', 'entry', 'exit'], 'properties': {'exit': {'type': 'string', 'format': 'date'}, 'entry': {'type': 'string', 'format': 'date'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code.'}}, 'additionalProperties': False}, 'minItems': 1}, 'referenceDate': {'type': 'string', 'format': 'date', 'description': "Optional 'as of' date. Defaults to today (UTC)."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'countries': {'type': 'array', 'items': {'type': 'object', 'properties': {'country': {'type': 'string'}, 'rule183': {'type': 'object', 'properties': {'remaining': {'type': 'number'}, 'triggered': {'type': 'boolean'}}}, 'daysThisYear': {'type': 'number'}}}}}}
Eingabeschema
{'type': 'object', 'examples': [{'trips': [{'exit': '2025-03-01', 'entry': '2025-01-01'}]}], 'required': ['trips'], 'properties': {'trips': {'type': 'array', 'items': {'type': 'object', 'required': ['entry', 'exit'], 'properties': {'exit': {'type': 'string', 'format': 'date', 'description': 'Exit date, ISO YYYY-MM-DD (>= entry).'}, 'entry': {'type': 'string', 'format': 'date', 'description': 'Entry date, ISO YYYY-MM-DD.'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'List of Schengen stays.'}, 'plannedEntry': {'type': 'string', 'format': 'date', 'description': 'Optional planned entry date. When set, the response adds plan: { maxStay, latestExit, fullResetDate } — the longest compliant stay starting on that date.'}, 'referenceDate': {'type': 'string', 'format': 'date', 'description': "Optional 'as of' date (ISO YYYY-MM-DD). Defaults to today (UTC)."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'daysUsed': {'type': 'number'}, 'compliant': {'type': 'boolean'}, 'windowStart': {'type': 'string'}, 'daysRemaining': {'type': 'number'}, 'referenceDate': {'type': 'string'}, 'maxDaysInWindow': {'type': 'number'}, 'firstOverstayDate': {'type': ['string', 'null']}}}
Eingabeschema
{'type': 'object', 'examples': [{'days': 120, 'income': 80000, 'country': 'ES'}], 'required': ['country', 'days', 'income'], 'properties': {'days': {'type': 'number', 'maximum': 366, 'minimum': 0, 'description': 'Days of presence in the relevant counting period.'}, 'income': {'type': 'number', 'minimum': 0, 'description': 'Gross annual income (USD) the residency cliff would expose.'}, 'arrival': {'type': 'string', 'format': 'date', 'description': 'Optional arrival date — adds leaveBy and residencyDate to the response.'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (case-insensitive).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'risk': {'enum': ['safe', 'warning', 'triggered'], 'type': 'string'}, 'dates': {'type': 'object', 'properties': {'leaveBy': {'type': 'string'}, 'residencyDate': {'type': 'string'}}}, 'projection': {'type': 'object', 'properties': {'regime': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'note': {'type': 'string'}, 'taxUsd': {'type': 'number'}, 'savingUsd': {'type': 'number'}}}, 'cheapest': {'type': 'string'}, 'standard': {'type': 'object', 'properties': {'taxUsd': {'type': 'number'}, 'effectiveRate': {'type': 'number'}}}}}, 'daysRemaining': {'type': 'number'}, 'thresholdDays': {'type': 'number'}, 'pctOfThreshold': {'type': 'number'}, 'schengenWarning': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'stays': [{'exit': '2026-07-28', 'entry': '2026-01-10', 'country': 'ES'}], 'income': 120000}], 'required': ['stays'], 'properties': {'stays': {'type': 'array', 'items': {'type': 'object', 'required': ['country', 'entry', 'exit'], 'properties': {'exit': {'type': 'string', 'format': 'date'}, 'entry': {'type': 'string', 'format': 'date'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code.'}}, 'additionalProperties': False}, 'minItems': 1}, 'income': {'type': 'number', 'description': 'Optional gross annual income (USD) — enables the tax-cost projection for at-risk countries.'}, 'referenceDate': {'type': 'string', 'format': 'date', 'description': "Optional 'as of' date. Defaults to today (UTC)."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'summary': {'type': 'object', 'properties': {'worstRisk': {'type': 'string'}, 'triggeredCount': {'type': 'number'}, 'schengenBreached': {'type': 'boolean'}}}, 'schengen': {'type': ['object', 'null'], 'description': '90/180 status when any Schengen stay exists: daysUsed, daysRemaining, compliant, firstOverstayDate, maxStayFromRef.'}, 'countries': {'type': 'array', 'items': {'type': 'object', 'properties': {'risk': {'enum': ['safe', 'warning', 'triggered'], 'type': 'string'}, 'country': {'type': 'string'}, 'daysUsed': {'type': 'number'}, 'secondary': {'type': 'object', 'description': 'Conditional lower rule (e.g. Cyprus-60) with conditionMet/triggered.'}, 'ukTaxYear': {'type': 'object'}, 'safeDaysLeft': {'type': 'number'}, 'taxProjection': {'type': 'object', 'description': 'Standard vs regime tax cost when income was supplied.'}, 'thresholdDays': {'type': 'number'}, 'usSubstantialPresence': {'type': 'object'}}}}, 'referenceDate': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'GB,NG,IN'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'highest', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['account', 'remittancesReceived'], 'type': 'string', 'default': 'account', 'description': 'Ranking metric. Ignored when `countries` is given.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "GB,NG,IN"). Omit to get a ranking instead.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'PT'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'description': 'Default lowest for days and cost, highest for density.'}, 'limit': {'type': 'number', 'minimum': 1}, 'metric': {'enum': ['daysDomestic', 'costDomesticUsd', 'daysForeign', 'costForeignUsd', 'density'], 'type': 'string', 'default': 'daysDomestic'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'entry': {'type': 'object'}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'activity': {'type': 'object'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'GB'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest'}, 'unit': {'enum': ['pctDisposableIncome', 'pctAverageWage'], 'type': 'string', 'default': 'pctDisposableIncome'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}, 'household': {'enum': ['couple', 'singleParent'], 'type': 'string', 'default': 'couple'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'year': {'type': 'number'}, 'couple': {'type': 'object'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}, 'singleParent': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'limit': 15, 'month': 1}], 'properties': {'city': {'type': 'string', 'description': 'City slug (e.g. "lisbon"). Returns that city\'s twelve months.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many cities.'}, 'month': {'type': 'number', 'maximum': 12, 'minimum': 1, 'description': 'Rank a single month. Omit to rank on the whole year.'}, 'country': {'type': 'string', 'description': "ISO alpha-2. Returns the representative city's months, naming which city."}, 'minComfortDays': {'type': 'number', 'minimum': 0, 'description': 'Filter: minimum comfortable days in the ranked window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'city': {'type': 'object'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'month': {'type': ['number', 'null']}, 'updated': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'sort': 'latency', 'maxLatency': 100}], 'properties': {'sort': {'enum': ['download', 'upload', 'latency', 'jitter'], 'type': 'string', 'default': 'download', 'description': 'Metric to rank by. Bandwidth sorts high-to-low; latency and jitter sort low-to-high, because “better” runs in opposite directions.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'maxLatency': {'type': 'number', 'minimum': 0, 'description': 'Filter: maximum median idle latency, ms (e.g. 100).'}, 'minDownload': {'type': 'number', 'minimum': 0, 'description': 'Filter: minimum median download, Mbps (e.g. 50).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'number'}, 'country': {'type': 'string'}, 'quality': {'enum': ['excellent', 'good', 'usable', 'poor', 'unknown'], 'type': 'string'}, 'jitterMs': {'type': 'number'}, 'latencyMs': {'type': 'number'}, 'uploadMbps': {'type': 'number'}, 'downloadMbps': {'type': 'number'}}}}, 'sort': {'type': 'string'}, 'updated': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'US', 'employeeRate': 70, 'contractorRate': 100}], 'required': ['contractorRate', 'employeeRate'], 'properties': {'hours': {'type': 'number', 'description': 'Hours per week (default 40).'}, 'ctRate': {'type': 'number', 'description': 'Override contractor effective tax rate, percent (e.g. 32).'}, 'health': {'type': 'number', 'description': 'Annual self-paid health insurance (USD); defaults to the country preset.'}, 'country': {'enum': ['US', 'GB', 'DE', 'FR', 'ES', 'NL', 'PT', 'EE', 'CA', 'AU', 'IN', 'AE', 'IT', 'GR', 'IE', 'DK', 'SE', 'NO', 'CH', 'CZ', 'PL', 'HU', 'TR', 'JP', 'KR', 'CN', 'SG', 'MY', 'TH', 'VN', 'ID', 'PH', 'NZ', 'SA', 'EG', 'ZA', 'NG', 'MX', 'BR', 'AR', 'CL', 'CO'], 'type': 'string', 'default': 'US', 'description': 'Country code for tax presets.'}, 'empRate': {'type': 'number', 'description': 'Override employee effective tax rate, percent (e.g. 24).'}, 'taxMode': {'enum': ['flat', 'brackets'], 'type': 'string', 'description': "'brackets' uses progressive 2025 schedules (US and GB only; falls back to flat elsewhere — response echoes the mode)."}, 'expenses': {'type': 'number', 'description': 'Annual business expenses (USD, default 0).'}, 'employeeRate': {'type': 'number', 'minimum': 0, 'description': 'Employee/W2/EOR hourly rate (USD).'}, 'employeeWeeks': {'type': 'number', 'description': 'Employee paid weeks (default 52).'}, 'contractorRate': {'type': 'number', 'minimum': 0, 'description': 'Self-employed hourly rate (USD).'}, 'contractorWeeks': {'type': 'number', 'description': 'Contractor paid/billable weeks (default 48).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'employee': {'type': 'object', 'properties': {'net': {'type': 'number'}, 'tax': {'type': 'number'}, 'gross': {'type': 'number'}}}, 'contractor': {'type': 'object', 'properties': {'net': {'type': 'number'}, 'tax': {'type': 'number'}, 'gross': {'type': 'number'}}}, 'breakevenRate': {'type': 'number'}, 'netDifference': {'type': 'number'}, 'contractorProfitable': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', 'examples': [{'a': 'DE', 'b': 'TH'}], 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'description': 'First ISO 3166-1 alpha-2 country code (case-insensitive).'}, 'b': {'type': 'string', 'description': 'Second ISO 3166-1 alpha-2 country code (must differ from a).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'ratioAtoB': {'type': 'number'}, 'salary100k': {'type': 'object', 'properties': {'aToB': {'type': 'number'}, 'bToA': {'type': 'number'}}}, 'pctDifference': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'limit': 20, 'maxRisk': 3}], 'properties': {'sort': {'enum': ['risk', 'hazard', 'vulnerability', 'copingCapacity'], 'type': 'string', 'default': 'risk', 'description': 'Dimension to sort by. maxRisk always filters on the composite.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'country': {'type': 'string', 'description': "ISO alpha-2 for a single country's scores."}, 'maxRisk': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Keep only countries at or below this composite score.'}, 'descending': {'type': 'boolean', 'default': False, 'description': 'True lists the most dangerous first.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'entry': {'type': 'object'}, 'release': {'type': 'string'}, 'updated': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'DE'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'metric': {'enum': ['eatr', 'emtr', 'costOfCapital', 'gap'], 'type': 'string', 'default': 'eatr', 'description': 'Ranking metric when neither `country` nor `countries` is given.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'gapPct': {'type': 'number'}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'effective': {'type': 'object'}, 'attribution': {'type': 'object'}, 'statutoryCombinedPct': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'KR'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'highest'}, 'index': {'enum': ['egdi', 'osi', 'tii', 'hci'], 'type': 'string', 'default': 'egdi'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'hci': {'type': 'number'}, 'osi': {'type': 'number'}, 'tii': {'type': 'number'}, 'egdi': {'type': 'number'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'year': {'type': 'number'}, 'index': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'TH'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Maximum rows in a ranking.'}, 'metric': {'enum': ['dailyUsd', 'unaffordablePct'], 'type': 'string', 'default': 'dailyUsd'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'dailyUsd': {'type': 'number'}, 'excluded': {'type': 'array'}, 'dailyLocal': {'type': 'number'}, 'modelError': {'type': 'number'}, 'attribution': {'type': 'object'}, 'modelErrorSummary': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'DE'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'highest'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'metric': {'enum': ['doctors', 'nurses', 'beds'], 'type': 'string', 'default': 'doctors'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'uhcIndex': {'type': 'number'}, 'bedsPer10k': {'type': 'object'}, 'attribution': {'type': 'object'}, 'nursesPer10k': {'type': 'object'}, 'doctorsPer10k': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'sort': 'outOfPocket', 'country': 'TH'}], 'required': [], 'properties': {'sort': {'enum': ['outOfPocket', 'spend', 'exposure', 'doctors', 'dentists'], 'type': 'string', 'default': 'outOfPocket', 'description': "Metric to rank by. 'outOfPocket' = out-of-pocket spend per person per year (default, the figure a person actually pays); 'spend' = total health spend per capita; 'exposure' = out-of-pocket as a share of health spending; 'doctors' = physicians per 1,000 (ranked best-first); 'dentists' = dentists per 10,000 (best-first)."}, 'country': {'type': 'string', 'description': "Optional ISO 3166-1 alpha-2 country code (case-insensitive). Echoes that country's row and its rank under the active sort."}, 'maxOutOfPocketPct': {'type': 'number', 'minimum': 0, 'description': 'Optional filter: keep only countries where households pay at most this percentage of health spending directly.'}, 'minPhysiciansPer1000': {'type': 'number', 'minimum': 0, 'description': 'Optional filter: keep only countries with at least this many physicians per 1,000 people.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'rank': {'type': 'number'}, 'vsUs': {'type': 'number', 'description': 'Out-of-pocket spend relative to the US, 0-1.'}, 'entry': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'years': {'type': 'object', 'description': 'Reference year per metric; vintages differ.'}, 'country': {'type': 'string'}, 'metrics': {'type': 'object', 'properties': {'outOfPocketPct': {'type': 'number'}, 'dentistsPer10000': {'type': 'number'}, 'physiciansPer1000': {'type': 'number'}, 'spendPerCapitaPpp': {'type': 'number'}, 'governmentSharePct': {'type': 'number'}, 'outOfPocketPerCapitaUsd': {'type': 'number'}}}}}}}, 'description': 'Countries under the active sort, best first.'}, 'focus': {'type': 'object', 'description': "The requested country's row, when `country` was given."}, 'updated': {'type': 'string', 'description': 'ISO date the underlying data was last refreshed.'}, 'excluded': {'type': 'number', 'description': 'Countries removed by filters or missing the sorted metric.'}, 'attribution': {'type': 'object', 'description': 'Sources, a quotable citation and a permalink.'}}}
Eingabeschema
{'type': 'object', 'examples': [{'sort': 'affordability', 'remoteIncome': 6000}], 'required': [], 'properties': {'sort': {'enum': ['affordability', 'rent', 'localBurden', 'priceToIncome'], 'type': 'string', 'default': 'affordability', 'description': "'affordability' = rent as a share of your remote income, lowest first (falls back to raw rent when no income given); 'rent' = monthly rent; 'localBurden' = rent as a share of the local median wage; 'priceToIncome' = price-to-income vs long-run average."}, 'flatM2': {'type': 'number', 'minimum': 0, 'description': 'Flat size in m² used to convert measured per-m² rents. Default 70; echoed back so the assumption is visible.'}, 'country': {'type': 'string', 'description': "Optional ISO 3166-1 alpha-2 code; echoes that country's row and rank."}, 'remoteIncome': {'type': 'number', 'minimum': 0, 'description': 'Your monthly income in USD, earned remotely. Enables rentPctOfYourIncome and arbitrageGap; omit for the local-only view.'}, 'maxRentPctOfIncome': {'type': 'number', 'minimum': 0, 'description': 'Optional filter: keep only countries where rent is at most this percentage of your remote income. Requires remoteIncome.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'number'}, 'years': {'type': 'object'}, 'country': {'type': 'string'}, 'metrics': {'type': 'object', 'properties': {'mortgageRatePct': {'type': 'number'}, 'housingPriceLevelEu': {'type': 'number'}, 'priceToRentVsLongRun': {'type': 'number'}, 'priceToIncomeVsLongRun': {'type': 'number'}}}, 'rentBasis': {'enum': ['measured', 'modelled'], 'type': 'string'}, 'arbitrageGap': {'type': 'number', 'description': 'Percentage points by which rent sits lighter on you than on a local.'}, 'measuredCities': {'type': 'number'}, 'rentMonthlyUsd': {'type': 'number'}, 'rentPctOfYourIncome': {'type': 'number'}, 'rentPctOfLocalMedian': {'type': 'number'}}}}, 'focus': {'type': 'object'}, 'updated': {'type': 'string'}, 'excluded': {'type': 'number'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'GB,DE,TR'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'highest', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['inflation', 'policyRate', 'depositRate', 'lendingRate', 'realDepositRate', 'realPolicyRate'], 'type': 'string', 'default': 'inflation', 'description': 'Ranking metric. Ignored when `countries` is given.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "GB,DE,TR"). Omit to get a ranking instead.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'GB', 'occupation': 'professionals'}], 'required': ['country'], 'properties': {'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (case-insensitive).'}, 'occupation': {'enum': ['total', 'armed-forces', 'managers', 'professionals', 'technicians', 'clerical', 'services-sales', 'agricultural', 'craft', 'operators', 'elementary'], 'type': 'string', 'description': 'Narrow the response to one ISCO-08 major group. Omit for the whole table.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'gapPct': {'type': 'number'}, 'meanMonthlyUsd': {'type': 'number'}, 'medianMonthlyPpp': {'type': 'number'}, 'medianMonthlyUsd': {'type': 'number'}, 'modelledPercentile': {'type': 'number'}}}}, 'year': {'type': 'number', 'description': 'ILO reference year — one year across every occupation in the country.'}, 'basis': {'type': 'string', 'description': "Always 'measured' on success."}, 'country': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}}}, 'modelRatio': {'type': 'number', 'description': 'measured / modelled for the country. Above 1: the model understates local pay.'}, 'measuredMedianMonthlyUsd': {'type': 'number'}, 'modelledMedianMonthlyUsd': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'DE'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'highest', 'description': 'Ranking direction. Ignored otherwise.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['retirementAgeMen', 'retirementAgeWomen', 'futureRetirementAgeMen', 'netReplacement100', 'grossReplacement100', 'yearsAfterExit', 'oldAgePoverty', 'lifeExpectancy', 'over65Pct'], 'type': 'string', 'default': 'netReplacement100', 'description': 'Ranking metric when neither `country` nor `countries` is given.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code for the full profile (e.g. "DE").'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side. Ignored when `country` is given.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}, 'replacement': {'type': 'object'}, 'retirementAge': {'type': 'object'}, 'statutoryRetirementAge': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'GB,JP'}], 'properties': {'sort': {'enum': ['most', 'fewest'], 'type': 'string', 'default': 'most', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'year': {'type': 'number', 'description': 'Calendar year. Defaults to the first year in the dataset.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "GB,JP"). Omit to get a ranking instead of an overlap.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'year': {'type': 'number'}, 'lostDays': {'type': 'number'}, 'weekdays': {'type': 'number'}, 'countries': {'type': 'array', 'items': {'type': 'object'}}, 'lostDates': {'type': 'array', 'items': {'type': 'string'}}, 'sharedWorkingDays': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'DE,BR,ZA'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['homicide', 'pm25'], 'type': 'string', 'default': 'homicide', 'description': 'Ranking metric. Ignored when `countries` is given.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "DE,BR,ZA"). Omit to get a ranking instead.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'PT'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'metric': {'enum': ['complianceHours', 'vatRefundWeeks', 'auditWeeks', 'reportedEffectiveRatePct'], 'type': 'string', 'default': 'complianceHours'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}, 'vatRefundWeeks': {'type': 'number'}, 'complianceHours': {'type': 'number'}, 'reportedEffectiveRatePct': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'DE,IE,TH'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'highest', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['corporateCombined', 'corporateCentral', 'smallBusiness', 'pitTop', 'pitThreshold', 'pitMarginalAtThreshold'], 'type': 'string', 'default': 'corporateCombined', 'description': 'Ranking metric. Ignored when `countries` is given.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "DE,IE,TH"). Omit to get a ranking instead.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'sort': 'remaining', 'income': 6000}], 'required': ['income'], 'properties': {'sort': {'enum': ['total', 'remaining', 'rent', 'tax', 'share'], 'type': 'string', 'default': 'total', 'description': "Ranking. 'remaining' = most left over first; 'share' = smallest share of your income."}, 'income': {'type': 'number', 'description': 'Monthly income in USD. Required — the tool is a subtraction.'}, 'country': {'type': 'string', 'description': "ISO 3166-1 alpha-2; echoes that country's row and rank as `focus`."}, 'maxPctOfIncome': {'type': 'number', 'description': 'Keep only countries whose total is at or below this share of income (%).'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'PT'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'metric': {'enum': ['importDays', 'exportDays', 'importCostPct', 'exportCostPct'], 'type': 'string', 'default': 'importDays'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'exportDays': {'type': 'number'}, 'importDays': {'type': 'number'}, 'attribution': {'type': 'object'}, 'exportCostPct': {'type': 'number'}, 'importCostPct': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'GB,US,DE'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'lowest', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "GB,US,DE"). Omit to get a ranking instead.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'excluded': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'countries': 'DE,US,TH'}], 'properties': {'sort': {'enum': ['most', 'fewest'], 'type': 'string', 'default': 'most', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['weeklyHours', 'annualHours', 'maternityDays', 'paternityDays'], 'type': 'string', 'default': 'weeklyHours', 'description': 'Ranking metric. Ignored when `countries` is given.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more (e.g. "DE,US,TH"). Omit to get a ranking instead.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'metric': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'income': 5000, 'country': 'PT'}], 'required': ['country'], 'properties': {'income': {'type': 'number', 'minimum': 1, 'description': 'Gross monthly income in USD. Optional; unlocks the total-cost figures.'}, 'country': {'type': 'string', 'description': 'ISO alpha-2 code (e.g. "PT").'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'tools': {'type': 'object'}, 'country': {'type': 'object'}, 'sources': {'type': 'array', 'items': {'type': 'object'}}, 'updated': {'type': 'string'}, 'sections': {'type': 'object'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'FR'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'description': 'Highest first (default) or lowest first.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'metric': {'enum': ['speedMotorway', 'speedUrban', 'speedRural', 'bacLimitPct'], 'type': 'string', 'description': 'Ranking metric when neither country nor countries is given.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'drivesOn': {'enum': ['left', 'right'], 'type': 'string', 'description': 'Restrict the ranking to one side of the road.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}, 'idpRequired': {'enum': ['true', 'false'], 'type': 'string', 'description': 'Restrict the ranking by whether an International Driving Permit is needed.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'source': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'drivesOn': {'type': 'string'}, 'excluded': {'type': 'array', 'items': {'type': 'string'}}, 'checkedOn': {'type': 'string'}, 'speedUnit': {'type': 'string'}, 'speedRural': {'type': 'number'}, 'speedUrban': {'type': 'number'}, 'attribution': {'type': 'object'}, 'bacLimitPct': {'type': 'number'}, 'idpRequired': {'type': 'boolean'}, 'speedMotorway': {'type': 'number'}, 'requiredEquipment': {'type': 'array', 'items': {'type': 'string'}}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'DE'}], 'properties': {'sort': {'enum': ['most', 'fewest'], 'type': 'string', 'description': 'Most first (default) or fewest first.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'metric': {'enum': ['minAnnualLeaveDays', 'noticeEmployerMinWeeks', 'probationMaxMonths', 'maxWeeklyHours'], 'type': 'string', 'description': 'Ranking metric when neither country nor countries is given.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'basis': {'type': 'string'}, 'source': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'excluded': {'type': 'array', 'items': {'type': 'string'}}, 'checkedOn': {'type': 'string'}, 'attribution': {'type': 'object'}, 'maxWeeklyHours': {'type': 'number'}, 'minAnnualLeaveDays': {'type': 'number'}, 'probationMaxMonths': {'type': 'number'}, 'noticeEmployeeMinWeeks': {'type': 'number'}, 'noticeEmployerMinWeeks': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'gross': 60000, 'country': 'DE'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'highest', 'description': 'Ranking direction. Ignored when `country` is given.'}, 'gross': {'type': 'number', 'minimum': 1, 'description': 'Gross annual wage in USD. When omitted, the pay-range midpoint is used.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'country': {'type': 'string', 'description': 'ISO alpha-2 code (e.g. "DE"). Omit for a ranking.'}, 'seniority': {'enum': ['entry', 'mid', 'senior', 'lead'], 'type': 'string', 'description': 'Seniority for the default wage (default `mid`). Ignored when `gross` is given.'}, 'occupation': {'type': 'string', 'description': 'ISCO-08 major group id for the default wage (default `total`). Ignored when `gross` is given.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'oecd': {'type': 'object'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'wage': {'type': 'object'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'country': {'type': 'object'}, 'employee': {'type': 'object'}, 'employer': {'type': 'object'}, 'taxWedge': {'type': 'number'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'base': 'GB', 'target': 'TH'}], 'required': ['base', 'target'], 'properties': {'base': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code to compare FROM (case-insensitive).'}, 'source': {'enum': ['consensus', 'worldbank', 'imf', 'oecd', 'pwt', 'worldbank-cons', 'bigmac', 'factbook'], 'type': 'string', 'description': 'Optional dataset override. Defaults to the consumption basket (worldbank-cons) when it covers both countries, else consensus; the response echoes the source used.'}, 'target': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code to compare TO (must differ from base).'}, 'baseCity': {'type': 'string', 'description': "Optional city slug for the base side (sub-national cost adjustment, e.g. 'london'). Enables intra-country city comparisons like London vs Hull."}, 'targetCity': {'type': 'string', 'description': "Optional city slug for the target side (e.g. 'hull')."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'base': {'type': 'object', 'properties': {'usd': {'type': 'number'}}}, 'item': {'type': 'object'}, 'target': {'type': 'object', 'properties': {'usd': {'type': 'number'}}}, 'pctDiff': {'type': 'number'}}}}, 'source': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'auto': {'type': 'boolean'}}}, 'monthlyBudget': {'type': 'object', 'properties': {'base': {'type': 'number'}, 'target': {'type': 'number'}, 'pctDiff': {'type': 'number'}}}, 'categoryTotals': {'type': 'array', 'items': {'type': 'object'}}}}
Eingabeschema
{'type': 'object', 'examples': [{'cost': 6, 'budget': 2500, 'safety': 9, 'healthcare': 8}], 'properties': {'air': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Weight 0–10 for air (default 5).'}, 'cost': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Weight 0–10 for cost (default 5).'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Maximum rows (default 10).'}, 'budget': {'type': 'number', 'default': 3000, 'minimum': 1, 'description': 'Monthly budget in USD.'}, 'region': {'enum': ['East Asia & Pacific', 'Europe & Central Asia', 'Latin America & Caribbean', 'Middle East, North Africa, Afghanistan & Pakistan', 'North America', 'South Asia', 'Sub-Saharan Africa'], 'type': 'string', 'description': 'Keep only countries in this World Bank region.'}, 'safety': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Weight 0–10 for safety (default 5).'}, 'english': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Weight 0–10 for english (default 5).'}, 'internet': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Weight 0–10 for internet (default 5).'}, 'needsVisa': {'type': 'boolean', 'description': 'Keep only countries with a digital nomad visa the budget meets.'}, 'healthcare': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Weight 0–10 for healthcare (default 5).'}, 'withinBudget': {'type': 'boolean', 'default': True, 'description': 'Keep only countries whose modelled essentials fit inside the budget.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'inputs': {'type': 'object'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'excluded': {'type': 'object'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'swr': 0.04, 'portfolio': 400000}], 'required': ['portfolio'], 'properties': {'swr': {'type': 'number', 'default': 0.04, 'description': 'Safe withdrawal rate as fraction (0.04) or percent (4). Default 0.04.'}, 'coast': {'enum': ['1'], 'type': 'string', 'description': 'Set to 1 for Coast-FIRE mode (project growth with zero further savings).'}, 'return': {'type': 'number', 'description': 'Expected real annual return, fraction (0.05) or percent (5). Default 0.05.'}, 'source': {'enum': ['consensus', 'worldbank', 'imf', 'oecd', 'pwt', 'worldbank-cons', 'bigmac', 'factbook'], 'type': 'string', 'default': 'consensus'}, 'savings': {'type': 'number', 'description': 'Monthly savings (USD) — enables the years-to-FIRE planner.'}, 'portfolio': {'type': 'number', 'minimum': 0, 'description': 'Total investable portfolio (USD).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'visa': {'type': 'object'}, 'coverage': {'type': 'number'}, 'tierCosts': {'type': 'object'}, 'fireNumbers': {'type': 'object'}, 'yearsToTier': {'type': 'object'}, 'achievedTier': {'enum': ['lean', 'comfortable', 'upper', 'luxury', None], 'type': ['string', 'null']}}}}, 'sensitivity': {'type': 'array', 'items': {'type': 'object'}}, 'annualIncome': {'type': 'number'}, 'monthlyIncome': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'funds': 50000, 'currency': 'GBP'}], 'properties': {'funds': {'type': 'number', 'minimum': 1, 'description': 'Funds available to commit, in `currency`.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code for a single entry.'}, 'currency': {'type': 'string', 'default': 'USD', 'description': 'ISO 4217 code of `funds` (e.g. "GBP").'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'kind': {'type': 'string'}, 'none': {'type': 'array', 'items': {'type': 'string'}}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'qualify': {'type': 'array', 'items': {'type': 'object'}}, 'nearMiss': {'type': 'array', 'items': {'type': 'object'}}, 'attribution': {'type': 'object'}, 'fundingRaised': {'type': 'array', 'items': {'type': 'object'}}}}
Eingabeschema
{'type': 'object', 'examples': [{'zones': ['Europe/London', 'America/New_York', 'Australia/Sydney']}], 'required': ['zones'], 'properties': {'end': {'type': 'number', 'default': 1080, 'description': 'Default working-window end, minutes from local midnight (default 1080 = 18:00).'}, 'date': {'type': 'string', 'format': 'date', 'description': 'Reference date (ISO YYYY-MM-DD) for DST. Defaults to today (UTC).'}, 'hours': {'type': 'string', 'description': "Optional per-zone overrides aligned to `zones`, e.g. '540-1080;420-720'."}, 'start': {'type': 'number', 'default': 540, 'description': 'Default working-window start, minutes from local midnight (default 540 = 09:00).'}, 'zones': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': "IANA timezone identifiers, e.g. 'Europe/London'."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'overlap': {'type': ['object', 'null'], 'properties': {'local': {'type': 'array', 'items': {'type': 'object', 'properties': {'end': {'type': 'string'}, 'label': {'type': 'string'}, 'start': {'type': 'string'}, 'offset': {'type': 'number'}, 'timeZone': {'type': 'string'}}}}, 'endUtc': {'type': 'number'}, 'startUtc': {'type': 'number'}, 'endUtcLabel': {'type': 'string'}, 'startUtcLabel': {'type': 'string'}, 'durationMinutes': {'type': 'number'}}}, 'friction': {'type': 'object', 'properties': {'grade': {'enum': ['Effortless', 'Manageable', 'Strained', 'Broken'], 'type': 'string'}, 'score': {'type': 'number', 'description': '0–100; higher is less friction.'}, 'coverage': {'type': 'object', 'properties': {'of': {'type': 'number'}, 'simultaneous': {'type': 'number'}}}, 'loneWolf': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'timeZone': {'type': 'string'}, 'gainMinutes': {'type': 'number'}}, 'description': 'Present when N≥3 and dropping one member frees ≥2h of overlap.'}, 'overlapMinutes': {'type': 'number'}, 'dailyOverlapHours': {'type': 'number'}}}, 'referenceDate': {'type': 'string'}, 'bestPartialCount': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'income': 4000, 'children': 1, 'currency': 'EUR', 'partners': 1}], 'properties': {'income': {'type': 'number', 'description': 'Your gross monthly income (in `currency`, default USD).'}, 'children': {'type': 'number', 'description': "Number of dependent children (each adds the program's child uplift)."}, 'currency': {'type': 'string', 'description': 'ISO currency code for `income` (e.g. EUR, GBP, INR). Defaults to USD.'}, 'partners': {'enum': [0, 1], 'type': 'number', 'description': "1 if bringing a partner (raises each program's threshold by its partner uplift)."}, 'renewable': {'enum': ['1'], 'type': 'string', 'description': 'Set to 1 to require renewable programs.'}, 'residency': {'enum': ['1'], 'type': 'string', 'description': 'Set to 1 to require a path to permanent residency.'}, 'minDuration': {'type': 'number', 'description': 'Minimum program duration in months.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'total': {'type': 'number'}, 'matches': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Programs you qualify for; each carries requiredUsd (household threshold) and shortfallUsd (≤0).'}, 'updated': {'type': 'string'}, 'household': {'type': 'object', 'properties': {'children': {'type': 'number'}, 'partners': {'type': 'number'}}}, 'incomeUsd': {'type': 'number', 'description': 'Your income converted to USD, used for matching.'}, 'nearMisses': {'type': 'array', 'items': {'type': 'object'}, 'description': 'Programs within ~$1,000/mo of qualifying, closest first.'}}}
Eingabeschema
{'type': 'object', 'examples': [{'age': 62, 'income': 1500, 'currency': 'GBP'}], 'properties': {'age': {'type': 'number', 'maximum': 120, 'minimum': 18, 'description': 'Applicant age; routes with a higher minimum are excluded.'}, 'income': {'type': 'number', 'minimum': 1, 'description': 'Monthly income to match, in `currency`.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code for a single entry.'}, 'savings': {'type': 'number', 'minimum': 0, 'description': 'Lump sum available, in `currency`; unlocks deposit routes.'}, 'currency': {'type': 'string', 'default': 'USD', 'description': 'ISO 4217 code of `income` and `savings` (e.g. "GBP").'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'kind': {'type': 'string'}, 'none': {'type': 'array', 'items': {'type': 'string'}}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'qualify': {'type': 'array', 'items': {'type': 'object'}}, 'nearMiss': {'type': 'array', 'items': {'type': 'object'}}, 'attribution': {'type': 'object'}, 'depositRoutes': {'type': 'array', 'items': {'type': 'object'}}}}
Eingabeschema
{'type': 'object', 'examples': [{'funds': 20000, 'currency': 'GBP'}], 'properties': {'per': {'enum': ['year', 'month'], 'type': 'string', 'default': 'year'}, 'funds': {'type': 'number', 'minimum': 1, 'description': 'Living funds the student can show, in `currency`, for `per`.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'currency': {'type': 'string', 'default': 'USD'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'kind': {'type': 'string'}, 'none': {'type': 'array', 'items': {'type': 'string'}}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'qualify': {'type': 'array', 'items': {'type': 'object'}}, 'nearMiss': {'type': 'array', 'items': {'type': 'object'}}, 'attribution': {'type': 'object'}, 'unpublished': {'type': 'array', 'items': {'type': 'object'}}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'BR'}], 'properties': {'country': {'type': 'string', 'description': 'One ISO alpha-2 code (e.g. "BR").'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more. Ignored when `country` is given.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'malaria': {'type': 'boolean'}, 'attribution': {'type': 'object'}, 'vaccinesMost': {'type': 'array', 'items': {'type': 'string'}}, 'vaccinesSome': {'type': 'array', 'items': {'type': 'string'}}, 'yellowFeverCertificate': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'SA'}], 'properties': {'sort': {'enum': ['highest', 'lowest'], 'type': 'string', 'default': 'highest', 'description': 'Ranking direction. Ignored when `countries` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'metric': {'enum': ['index', 'mobility', 'workplace', 'pay', 'marriage', 'parenthood', 'entrepreneurship', 'assets', 'pension', 'retirementAgeMen', 'retirementAgeWomen'], 'type': 'string', 'default': 'index', 'description': 'Ranking metric when neither `country` nor `countries` is given.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code for the full profile (e.g. "SA").'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side comparison. Ignored when `country` is given.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'law': {'type': 'object'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'index': {'type': 'number'}, 'topics': {'type': 'object'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'edition': {'type': 'number'}, 'retirement': {'type': 'object'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'since': '2026-09-01'}], 'properties': {'since': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Return only datasets changed strictly after this date (YYYY-MM-DD). Omit for all.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'count': {'type': 'number'}, 'since': {'type': ['string', 'null']}, 'newest': {'type': ['string', 'null']}, 'changed': {'type': 'array', 'items': {'type': 'object'}}, 'datasets': {'type': 'array', 'items': {'type': 'object'}}, 'changedCount': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'base': 150000, 'home': 'US', 'source': 'consensus', 'target': 'ES'}], 'required': ['base', 'home'], 'properties': {'base': {'type': 'number', 'minimum': 0, 'description': 'Base annual salary in the home country (USD-denominated).'}, 'home': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 home country code the base salary is expressed in (case-insensitive).'}, 'source': {'enum': ['consensus', 'worldbank', 'imf', 'oecd', 'pwt', 'worldbank-cons', 'bigmac', 'factbook'], 'type': 'string', 'default': 'consensus', 'description': "PPP dataset to draw figures from. Defaults to 'consensus' if omitted."}, 'target': {'type': 'string', 'description': 'Optional ISO 3166-1 alpha-2 target country code. Omit to localize across all countries in the source.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'home': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'pppIndex': {'type': 'number'}}}, 'input': {'type': 'object', 'properties': {'baseSalary': {'type': 'number'}}}, 'source': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}}}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'local': {'type': 'object', 'properties': {'amount': {'type': 'number'}, 'fxRate': {'type': 'number'}, 'fxYear': {'type': 'number'}, 'currency': {'type': 'string'}}, 'description': "The figure in the target's local currency at market FX (omitted when no rate is known or target is USD)."}, 'ratio': {'type': 'number'}, 'target': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'currency': {'type': 'string'}, 'pppIndex': {'type': 'number'}}}, 'localEquivalent': {'type': 'number'}}}}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'SG'}], 'properties': {'country': {'type': 'string', 'description': 'Passport country alpha-2 code (e.g. US, GB, SG). Omit for the full league table.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'passport': {'type': 'object', 'properties': {'code': {'type': 'string'}, 'name': {'type': 'string'}, 'rank': {'type': 'number'}, 'counts': {'type': 'object'}, 'destinations': {'type': 'object'}, 'mobilityScore': {'type': 'number'}}}, 'resolved': {'type': 'object'}, 'percentile': {'type': 'number'}, 'totalPassports': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'to': 'PT', 'from': 'GB', 'years': 10, 'amount': 1000, 'currency': 'GBP'}], 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Country it will be spent in, ISO alpha-2 (e.g. "PT").'}, 'from': {'type': 'string', 'description': 'Country the pension is paid from, ISO alpha-2 (e.g. "GB").'}, 'years': {'type': 'number', 'maximum': 40, 'minimum': 1, 'description': 'Years to project (whole number, default 10).'}, 'amount': {'type': 'number', 'minimum': 1, 'description': "Monthly pension in `currency`. Omit for the origin's typical state pension."}, 'currency': {'type': 'string', 'description': 'ISO 4217 code of `amount` (default USD).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'to': {'type': 'object'}, 'from': {'type': 'object'}, 'years': {'type': 'number'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'pension': {'type': 'object'}, 'erosionPct': {'type': 'number'}, 'attribution': {'type': 'object'}, 'inflationPct': {'type': 'number'}, 'worthTodayUsd': {'type': 'number'}, 'worthTodayLocal': {'type': 'number'}, 'worthAfterYearsUsd': {'type': 'number'}, 'worthAfterYearsLocal': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'members': 'GB,DE,US'}], 'required': ['members'], 'properties': {'end': {'type': 'number', 'description': 'Default local working-window end, minutes from midnight (default 1080 = 18:00).'}, 'year': {'type': 'number', 'description': 'Calendar year for the holiday calendar. Defaults to the first year in the dataset.'}, 'hours': {'type': 'string', 'description': 'Per-member `start-end` overrides, semicolon-separated and aligned with `members`; leave a slot empty to keep the default (e.g. "540-1080;;420-720").'}, 'start': {'type': 'number', 'description': 'Default local working-window start for every member, minutes from midnight (default 540 = 09:00).'}, 'members': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, each optionally `CC@IANA/Zone` (e.g. "GB,JP,US@America/Chicago").'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'days': {'type': 'object'}, 'year': {'type': 'number'}, 'hours': {'type': 'object'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'members': {'type': 'array', 'items': {'type': 'object'}}, 'attribution': {'type': 'object'}, 'sharedWorkingHoursPerYear': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'TH'}], 'properties': {'band': {'enum': ['free', 'restricted', 'leasehold-only', 'prohibited'], 'type': 'string', 'description': 'Restrict the ranking to one ownership band.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code.'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'source': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'checkedOn': {'type': 'string'}, 'attribution': {'type': 'object'}, 'restrictions': {'type': 'string'}, 'transferTaxPct': {'type': 'number'}, 'foreignOwnership': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'examples': [{'maxBudget': 3000, 'minInternet': 80}], 'properties': {'budget': {'type': 'number', 'default': 3000, 'minimum': 0, 'description': 'Monthly budget (USD) — drives lifestyle labels and visa eligibility.'}, 'weights': {'type': 'string', 'description': 'Five comma-separated 0–10 weights: internet,safety,healthcare,air,english (default 5,5,5,5,5).'}, 'maxBudget': {'type': 'number', 'minimum': 0, 'description': 'Filter: keep countries whose monthly essentials cost ≤ this (USD).'}, 'minSafety': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Filter: minimum safety score, 0–100.'}, 'minInternet': {'type': 'number', 'minimum': 0, 'description': 'Filter: minimum median broadband, Mbps (e.g. 80).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'properties': {'visa': {'type': 'object'}, 'entry': {'type': 'object'}, 'composite': {'type': 'number'}, 'lifestyle': {'enum': ['out of budget', 'comfortable', 'very comfortable', 'like royalty'], 'type': 'string'}, 'valueScore': {'type': 'number'}, 'essentialsUsd': {'type': 'number'}, 'taxThresholdDays': {'type': 'number'}}}}, 'excluded': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'to': 'IN', 'from': 'GB', 'amount': 500}], 'properties': {'to': {'type': 'string', 'description': 'Receiving country, ISO alpha-2 (e.g. "IN").'}, 'from': {'type': 'string', 'description': 'Sending country, ISO alpha-2 (e.g. "GB").'}, 'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest', 'description': 'Ranking direction when only one of `from`/`to` is given.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many corridors in a ranking.'}, 'amount': {'type': 'number', 'minimum': 1, 'description': "Amount to send, USD. Optional; without it the corridor's survey figures are returned unquoted."}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'quote': {'type': 'object'}, 'period': {'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'corridor': {'type': 'object'}, 'providers': {'type': 'number'}, 'attribution': {'type': 'object'}, 'avgCost200Pct': {'type': 'number'}, 'avgCost500Pct': {'type': 'number'}, 'cheapestCost200Pct': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'US', 'weeksOff': 6, 'desiredNet': 100000, 'utilization': 0.7}], 'required': ['desiredNet'], 'properties': {'hours': {'type': 'number', 'description': 'Hours per week (default 40).'}, 'health': {'type': 'number', 'description': 'Annual self-paid health insurance (USD); defaults to the country preset.'}, 'country': {'enum': ['US', 'GB', 'DE', 'FR', 'ES', 'NL', 'PT', 'EE', 'CA', 'AU', 'IN', 'AE', 'IT', 'GR', 'IE', 'DK', 'SE', 'NO', 'CH', 'CZ', 'PL', 'HU', 'TR', 'JP', 'KR', 'CN', 'SG', 'MY', 'TH', 'VN', 'ID', 'PH', 'NZ', 'SA', 'EG', 'ZA', 'NG', 'MX', 'BR', 'AR', 'CL', 'CO'], 'type': 'string', 'default': 'US'}, 'taxRate': {'type': 'number', 'description': 'Override effective tax rate, percent (e.g. 32).'}, 'expenses': {'type': 'number', 'description': 'Annual business expenses (USD, default 0).'}, 'weeksOff': {'type': 'number', 'description': 'Unpaid weeks off per year (default 4).'}, 'desiredNet': {'type': 'number', 'minimum': 1, 'description': 'Desired annual net take-home (USD).'}, 'utilization': {'type': 'number', 'description': 'Billable share of working hours, 0–1 (default 0.75).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'dayRate': {'type': 'number'}, 'hourlyRate': {'type': 'number'}, 'billableHours': {'type': 'number'}, 'requiredGross': {'type': 'number'}}}
Eingabeschema
{'type': 'object', 'examples': [{'amount': 1500, 'currency': 'GBP'}], 'properties': {'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries.'}, 'amount': {'type': 'number', 'default': 1500, 'minimum': 1, 'description': 'Monthly pension, in `currency`.'}, 'currency': {'type': 'string', 'default': 'GBP', 'description': 'ISO 4217 code of `amount`.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'pension': {'type': 'object'}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'users': 'US-East:40,UK:30,Germany:30'}], 'required': ['users'], 'properties': {'hosts': {'type': 'string', 'description': "Optional comma-separated host region ids to restrict candidates (e.g. 'us-east-1,eu-west-2')."}, 'users': {'type': 'string', 'description': "Comma-separated region:percent pairs (percentages auto-normalize), e.g. 'US-East:40,UK:30,Germany:30'. Region ids: US-East, US-West, Canada, Brazil, UK, Germany, France, Spain, Nigeria, South-Africa, UAE, India, Singapore, China, Japan, Australia."}, 'provider': {'enum': ['AWS', 'GCP', 'Azure'], 'type': 'string', 'description': 'Optional cloud provider filter, applied before the hosts whitelist.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'best': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'city': {'type': 'string'}, 'provider': {'type': 'string'}, 'weightedMs': {'type': 'number'}}}, 'split': {'type': 'object', 'properties': {'hostsUsed': {'type': 'array', 'items': {'type': 'string'}}, 'weightedMs': {'type': 'number'}, 'improvementMs': {'type': 'number'}}}, 'ranking': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'weightedMs': {'type': 'number'}}}}}}
Eingabeschema
{'type': 'object', 'examples': [{'country': 'TH'}], 'properties': {'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest', 'description': 'Ranking direction when neither `country` nor `countries` is given: lowest = least restricted first.'}, 'limit': {'type': 'number', 'minimum': 1, 'description': 'Return at most this many countries in a ranking.'}, 'country': {'type': 'string', 'description': 'One ISO alpha-2 code for the full advice (e.g. "TH").'}, 'countries': {'type': 'string', 'description': 'Comma-separated ISO alpha-2 codes, two or more, for a side-by-side. Ignored when `country` is given.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'us': {'type': 'object'}, 'fcdo': {'type': 'object'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'excluded': {'type': 'array', 'items': {'type': 'string'}}, 'attribution': {'type': 'object'}}}
Eingabeschema
{'type': 'object', 'examples': [{'to': 'GB', 'from': 'TH'}], 'properties': {'to': {'type': 'string', 'description': "ISO alpha-2 code of the recipient's country; unlocks the treaty rate."}, 'from': {'type': 'string', 'description': "ISO alpha-2 code of the paying company's country."}, 'sort': {'enum': ['lowest', 'highest'], 'type': 'string', 'default': 'lowest'}, 'type': {'enum': ['dividends', 'interest', 'royalties', 'technicalFees'], 'type': 'string', 'default': 'dividends', 'description': 'Income type to rank by when `from` is not given.'}, 'limit': {'type': 'number', 'minimum': 1}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'to': {'type': 'object'}, 'rows': {'type': 'array', 'items': {'type': 'object'}}, 'lines': {'type': 'array', 'items': {'type': 'object'}}, 'treaty': {'type': 'object'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'standard': {'type': 'object'}, 'attribution': {'type': 'object'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
mcp-server
Provides immigration, citizenship and residency programme research alongside tax, wealth structuring, banking, visa, treaty and c…
AI 代理人任務中樞
Aggregates Taiwan-focused tools for AI service comparisons, cryptocurrency data, game information, health guidance, and other con…
Good Turn Studio (all tools)
Offers consumer utilities for insurance claim appeals, subscription cancellation, flight fare research, financial recovery resour…
FalaZuki Finance BR
Provides Brazil-focused financial calculations and rules for investments, credit, taxes, payroll, labor costs, debt, budgeting, a…
XBOSS
Accesses Korean tax, social insurance, payroll, cash receipt, e-tax invoice, and certificate filing services.
Sirenic
Provides European company registry, financial, procurement, sanctions, regulatory, insolvency, ownership, and ongoing due-diligen…
taxsort-mcp
Classifies personal tax transactions, applies user-defined rules, manages tax-year sessions, and provides account, usage, and cre…
mcp
Analyzes medical bills and insurance denials, estimates healthcare costs, identifies assistance options, and supports appeals and…