{
  "$schema": "https://getwherenext.com/schemas/capabilities-v1.json",
  "version": "2026-05-10",
  "publisher": "WhereNext",
  "url": "https://getwherenext.com",
  "contact": "https://getwherenext.com/platform/api",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "openapi": "https://getwherenext.com/openapi.yaml",
  "dataCatalog": "https://getwherenext.com/data/catalog.jsonld",
  "llmsTxt": "https://getwherenext.com/llms.txt",
  "policy": "https://getwherenext.com/providers",
  "capabilities": [
    {
      "path": "/api/data/ai-comparison",
      "method": "GET",
      "tier": "intelligence",
      "description": "Side-by-side country comparison across 7 dimensions with natural-language summary.",
      "tags": [
        "comparison",
        "country"
      ],
      "entityTypes": [
        "comparison"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/data/ai-comparison?a=PT&b=ES"
    },
    {
      "path": "/api/data/ai-cost-of-living/{code}",
      "method": "GET",
      "tier": "intelligence",
      "description": "Per-country cost of living breakdown with category estimates and regional comparison.",
      "tags": [
        "cost-of-living",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/data/ai-cost-of-living/pt"
    },
    {
      "path": "/api/data/ai-tax/{code}",
      "method": "GET",
      "tier": "intelligence",
      "description": "Per-country tax brackets, effective rates, social contributions, and special expat regimes.",
      "tags": [
        "tax",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/data/ai-tax/pt?income=100000"
    },
    {
      "path": "/api/data/ai-visa",
      "method": "GET",
      "tier": "intelligence",
      "description": "Visa access, digital nomad visa, retirement visa, and investment visa for a passport-destination pair.",
      "tags": [
        "visa",
        "country"
      ],
      "entityTypes": [
        "visa_pair"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/data/ai-visa?passport=US&destination=PT"
    },
    {
      "path": "/api/data/school-intelligence/{city}",
      "method": "GET",
      "tier": "intelligence",
      "description": "Per-city school cost intelligence: median tuition, hidden fee analysis, budget tiers, best-value schools.",
      "tags": [
        "schools",
        "city"
      ],
      "entityTypes": [
        "school_city"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/data/school-intelligence/dubai"
    },
    {
      "path": "/api/data/destination-summaries",
      "method": "GET",
      "tier": "data",
      "description": "AI-readable destination summary dataset v1.0 — compact JSON projection of priority countries + cities (5 + 5 at launch). Each entity includes a ≤320-char summary, top 3 strengths, top 2 blockers with free-tool routes, key metrics, source labels, last_verified date, confidence band, and recommended next actions (start_case / tool / compare). CC BY 4.0.",
      "tags": [
        "destination",
        "summary",
        "ai"
      ],
      "entityTypes": [
        "country",
        "city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/destination-summaries"
    },
    {
      "path": "/api/data/relocation-index",
      "method": "GET",
      "tier": "data",
      "description": "95 countries ranked across 7 dimensions. Supports ?format=intelligence for the canonical contract.",
      "tags": [
        "relocation-index",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/relocation-index"
    },
    {
      "path": "/api/data/cost-of-living",
      "method": "GET",
      "tier": "data",
      "description": "95 countries with cost index and sub-indices. Supports ?format=intelligence for the canonical contract.",
      "tags": [
        "cost-of-living",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/cost-of-living"
    },
    {
      "path": "/api/data/expat-tax-rates",
      "method": "GET",
      "tier": "data",
      "description": "Effective income tax and social contributions for 20 countries at 3 income tiers. Supports ?format=intelligence.",
      "tags": [
        "tax",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/expat-tax-rates"
    },
    {
      "path": "/api/data/digital-nomad-visas",
      "method": "GET",
      "tier": "data",
      "description": "24 digital nomad visa programs with cost, income requirements, duration. Supports ?format=intelligence.",
      "tags": [
        "visa",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/digital-nomad-visas"
    },
    {
      "path": "/api/data/property-costs",
      "method": "GET",
      "tier": "data",
      "description": "Property buying costs for 19 countries: closing costs, annual taxes, mortgage access, rental yields, capital gains.",
      "tags": [
        "property",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/property-costs"
    },
    {
      "path": "/api/data/median-salaries",
      "method": "GET",
      "tier": "data",
      "description": "National median annual salary in USD for 43 countries — gross, after-tax net, PPP-adjusted, and months of local cost of living covered. Data vintage 2022–2024. Supports ?format=csv.",
      "tags": [
        "salary",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/median-salaries"
    },
    {
      "path": "/api/data/visa-requirements",
      "method": "GET",
      "tier": "data",
      "description": "Visa requirement matrix for 95 passports. Optionally filter by passport code.",
      "tags": [
        "visa",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/visa-requirements?passport=US"
    },
    {
      "path": "/api/data/school-costs",
      "method": "GET",
      "tier": "data",
      "description": "International school cost summaries by city. Optionally filter by city slug.",
      "tags": [
        "schools",
        "city"
      ],
      "entityTypes": [
        "school_city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/school-costs?city=dubai"
    },
    {
      "path": "/api/data/school-costs-index",
      "method": "GET",
      "tier": "data",
      "description": "Top 30 most and least expensive cities for international schools, with median tuition.",
      "tags": [
        "schools",
        "city"
      ],
      "entityTypes": [
        "school_city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/school-costs-index"
    },
    {
      "path": "/api/data/school-affordability",
      "method": "GET",
      "tier": "data",
      "description": "Schools per budget tier ($5K–$25K+) across 300+ cities (from a database of 4,000+ international schools).",
      "tags": [
        "schools",
        "city"
      ],
      "entityTypes": [
        "school_city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/school-affordability"
    },
    {
      "path": "/api/data/school-class-sizes",
      "method": "GET",
      "tier": "data",
      "description": "Median class sizes for international schools across 300+ cities (from a database of 4,000+ schools).",
      "tags": [
        "schools",
        "city"
      ],
      "entityTypes": [
        "school_city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/school-class-sizes"
    },
    {
      "path": "/api/data/school-diversity",
      "method": "GET",
      "tier": "data",
      "description": "Student nationality diversity scores for international schools across 300+ cities (from a database of 4,000+ schools).",
      "tags": [
        "schools",
        "city"
      ],
      "entityTypes": [
        "school_city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/school-diversity"
    },
    {
      "path": "/api/data/city-prices",
      "method": "GET",
      "tier": "data",
      "description": "Item-level prices (rent, groceries, transport) for 50+ cities.",
      "tags": [
        "cost-of-living",
        "city"
      ],
      "entityTypes": [
        "city"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/city-prices?city=PT-Lisbon"
    },
    {
      "path": "/api/data/relocation-index/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of the Global Relocation Index (95 countries, 7 dimensions).",
      "tags": [
        "relocation-index",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/relocation-index/csv"
    },
    {
      "path": "/api/data/cost-of-living/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of the Cost of Living Index (95 countries, sub-indices).",
      "tags": [
        "cost-of-living",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/cost-of-living/csv"
    },
    {
      "path": "/api/data/visa-requirements/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of passport power rankings (95 passports).",
      "tags": [
        "visa",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/visa-requirements/csv"
    },
    {
      "path": "/api/data/best-countries-for/{persona}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of WhereNext's persona-weighted country ranking (digital-nomad, retirement, families, low-tax, etc).",
      "tags": [
        "ranking",
        "persona",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/best-countries-for/digital-nomads/csv"
    },
    {
      "path": "/api/data/best-countries-in/{region}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of WhereNext's regional country ranking (europe, asia, americas, africa, middle-east, oceania).",
      "tags": [
        "ranking",
        "region",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/best-countries-in/europe/csv"
    },
    {
      "path": "/api/data/best-cities-for/{persona}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of WhereNext's persona-weighted city ranking.",
      "tags": [
        "ranking",
        "persona",
        "city"
      ],
      "entityTypes": [
        "city"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/best-cities-for/digital-nomads/csv"
    },
    {
      "path": "/api/data/best-cities-in/{region}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of WhereNext's regional city ranking.",
      "tags": [
        "ranking",
        "region",
        "city"
      ],
      "entityTypes": [
        "city"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/best-cities-in/europe/csv"
    },
    {
      "path": "/api/data/best-countries-under/{budget}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of countries that fit a stated budget band ($1K, $1.5K, $2K, $3K, $5K monthly).",
      "tags": [
        "ranking",
        "budget",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/best-countries-under/2000/csv"
    },
    {
      "path": "/api/data/cheapest-cities-on/{budget}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of cheapest cities that fit a stated monthly budget.",
      "tags": [
        "ranking",
        "budget",
        "city"
      ],
      "entityTypes": [
        "city"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/cheapest-cities-on/2000/csv"
    },
    {
      "path": "/api/data/rankings/{dimension}/csv",
      "method": "GET",
      "tier": "export",
      "description": "CSV export of a single-dimension WhereNext ranking (cost, safety, healthcare, education, career, lifestyle, infrastructure, etc.).",
      "tags": [
        "ranking",
        "dimension",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "text/csv",
      "exampleUrl": "https://getwherenext.com/api/data/rankings/cost/csv"
    },
    {
      "path": "/api/data/product-feed",
      "method": "GET",
      "tier": "export",
      "description": "Google Shopping product feed (RSS 2.0/XML) for premium reports.",
      "tags": [
        "product"
      ],
      "entityTypes": [],
      "contentType": "application/xml",
      "exampleUrl": "https://getwherenext.com/api/data/product-feed"
    },
    {
      "path": "/api/data/chinese-outbound-relocation-index",
      "method": "GET",
      "tier": "data",
      "description": "Ranking of destinations for mainland Chinese and Hong Kong emigrants, weighted for Chinese-origin priorities and annotated with 2025-2026 visa/policy flags. CC BY 4.0.",
      "tags": [
        "china-outbound",
        "country"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/chinese-outbound-relocation-index?limit=95"
    },
    {
      "path": "/api/intelligence/relocation-readiness",
      "method": "POST",
      "tier": "intelligence",
      "description": "Step 2 of the WhereNext agent workflow (nl-query/shortlist → relocation-readiness → plan-relocation → advisor-packet → provider-handoff). Computes the readiness score (0-100) + severity-tagged blockers from a RelocationCaseData payload. Reuses the same lib that powers the human ReadinessScorePanel.",
      "tags": [
        "readiness",
        "case",
        "agent"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/relocation-readiness"
    },
    {
      "path": "/api/intelligence/first-year-cost",
      "method": "POST",
      "tier": "intelligence",
      "description": "Estimate move-in cash, recurring monthly, and one-time costs for a destination + household + assumptions.",
      "tags": [
        "cost",
        "case",
        "agent"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/first-year-cost"
    },
    {
      "path": "/api/intelligence/shortlist",
      "method": "POST",
      "tier": "intelligence",
      "description": "Rank countries server-side using the same scoring engine as /find. Caller supplies dimensional weights + optional climate / citizenship / budget.",
      "tags": [
        "shortlist",
        "scoring",
        "agent"
      ],
      "entityTypes": [
        "comparison"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/shortlist"
    },
    {
      "path": "/api/intelligence/compare",
      "method": "POST",
      "tier": "intelligence",
      "description": "Side-by-side scoring for 2-4 countries with per-dimension winners. Reuses the /compare engine.",
      "tags": [
        "compare",
        "scoring",
        "agent"
      ],
      "entityTypes": [
        "comparison"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/compare"
    },
    {
      "path": "/api/intelligence/provider-handoff",
      "method": "POST",
      "tier": "intelligence",
      "description": "Step 5 of the WhereNext agent workflow — consented handoff to a vetted human partner. Persists a partner-intro lead bound to a consent_trail (capturedAt + timestamp + disclosure-shown copy) and returns its envelope. Requires consent: true; rejects 400 without a consent_trail. WhereNext does NOT broker, file, or fulfil — the partner runs the case, and any referral fee is disclosed verbatim in the introduction email.",
      "tags": [
        "leads",
        "agent"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/provider-handoff"
    },
    {
      "path": "/api/data/relocation-products",
      "method": "GET",
      "tier": "data",
      "description": "Agent-readable product + service feed: paid reports, action plans, advisory, and partner-intro categories with delivery format, refund policy, and regulated-advice boundary.",
      "tags": [
        "products",
        "agent",
        "feed"
      ],
      "entityTypes": [
        "product",
        "service"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/relocation-products"
    },
    {
      "path": "/api/intelligence/plan-relocation",
      "method": "POST",
      "tier": "intelligence",
      "description": "Step 3 of the WhereNext agent workflow — unified relocation orchestrator. Accepts EITHER free-form `query` OR structured `case`; runs nl-query → shortlist → readiness + first-year-cost per destination → recommended advisor category. One tool call covers the full intake-to-next-step journey; agents that want finer control should call relocation-readiness + advisor-packet directly.",
      "tags": [
        "agent",
        "intelligence",
        "orchestrator"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/plan-relocation"
    },
    {
      "path": "/api/data/entity-freshness",
      "method": "GET",
      "tier": "data",
      "description": "Per-entity-type last-updated timestamps for countries, cities, schools, datasets, visa sources, comparisons, and products. Lets agents decide whether to re-fetch entity data before grounding answers.",
      "tags": [
        "agent",
        "freshness",
        "discovery"
      ],
      "entityTypes": [],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/entity-freshness"
    },
    {
      "path": "/api/intelligence/nl-query",
      "method": "POST",
      "tier": "intelligence",
      "description": "Free-form natural-language relocation query. Deterministic heuristic parser extracts passport / household / budget / persona / climate / dimension weights and delegates to the canonical scoring engine. Returns the canonical IntelligenceEnvelope with the parser's notes in `assumptions`.",
      "tags": [
        "agent",
        "intelligence",
        "nl-search"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/nl-query"
    },
    {
      "path": "/api/cron/golden-prompt-eval",
      "method": "GET",
      "tier": "data",
      "description": "Weekly cron that runs the canonical golden-prompt registry against the configured assistant adapter and scores citation correctness. Persists ai_eval_runs row, emits PostHog event, fires Sentry alert on regressions. Bearer-auth via CRON_SECRET.",
      "tags": [
        "cron",
        "ai-evals",
        "agent"
      ],
      "entityTypes": [],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/cron/golden-prompt-eval"
    },
    {
      "path": "/api/data/openai-merchant-feed",
      "method": "GET",
      "tier": "data",
      "description": "OpenAI agentic-commerce merchant feed. Targets ChatGPT shopping / Apps SDK surface. Carries the canonical agent-payment disclosure (refund, regulated-advice boundary, payment processor) with each product. Distinct from the legacy /api/data/product-feed (Google Shopping XML).",
      "tags": [
        "agent",
        "commerce",
        "openai",
        "feed"
      ],
      "entityTypes": [
        "product"
      ],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/data/openai-merchant-feed"
    },
    {
      "path": "/api/mcp",
      "method": "POST",
      "tier": "data",
      "description": "MCP (Model Context Protocol) Streamable HTTP transport. Exposes 9 tools to remote MCP clients — 8 read-only (shortlist, compare, relocation_readiness, first_year_cost, advisor_packet, source_lookup, nl_query, plan_relocation) plus 1 consented mutation (request_provider_handoff for partner-intro lead submission). Discovery manifest at /.well-known/mcp.json; public docs at /platform/mcp. Requires MCP_BEARER_TOKEN. See docs/operator-runbooks/mcp-server.md.",
      "tags": [
        "agent",
        "mcp",
        "intelligence"
      ],
      "entityTypes": [],
      "contentType": "application/json",
      "exampleUrl": "https://getwherenext.com/api/mcp"
    },
    {
      "path": "/api/intelligence/advisor-packet",
      "method": "POST",
      "tier": "intelligence",
      "description": "Step 4 of the WhereNext agent workflow — handoff briefing for one provider category before submitting a consented handoff. Body: { category, case? }. Returns required fields, disclosure copy (referral fee, regulated-advice boundary, no-outcome-guarantee), curated questions, document checklist, and the user's readiness score / blockers. The agent should surface the disclosure copy to the user, capture explicit consent, then POST to /api/intelligence/provider-handoff with consent_trail.",
      "tags": [
        "agent",
        "intelligence",
        "providers",
        "handoff"
      ],
      "entityTypes": [
        "country"
      ],
      "contentType": "application/ld+json",
      "exampleUrl": "https://getwherenext.com/api/intelligence/advisor-packet"
    }
  ],
  "datasets": [
    {
      "id": "/data/global-relocation-index-2026",
      "name": "Global Relocation Index 2026",
      "version": "2026.1",
      "lastModified": "2026-04-16"
    },
    {
      "id": "/data/cost-of-living-2026",
      "name": "Cost of Living Index 2026",
      "version": "2026.1",
      "lastModified": "2026-04-16"
    },
    {
      "id": "/data/expat-tax-rates-2026",
      "name": "Expat Tax Rates 2026",
      "version": "2026.1",
      "lastModified": "2026-04-16"
    },
    {
      "id": "/data/digital-nomad-visas-2026",
      "name": "Digital Nomad Visas 2026",
      "version": "2026.1",
      "lastModified": "2026-04-16"
    },
    {
      "id": "/data/international-school-costs-2026",
      "name": "International School Costs 2026",
      "version": "2026.1",
      "lastModified": "2026-04-14"
    },
    {
      "id": "/data/golden-visa-index-2026",
      "name": "Golden Visa Index 2026",
      "version": "2026.1",
      "lastModified": "2026-04-16"
    },
    {
      "id": "/data/chinese-outbound-relocation-index-2026",
      "name": "Chinese Outbound Relocation Index 2026",
      "version": "2026.1",
      "lastModified": "2026-04-14"
    },
    {
      "id": "/data/school-diversity-index-2026",
      "name": "School Diversity Index 2026",
      "version": "2026.1",
      "lastModified": "2026-04-10"
    },
    {
      "id": "/data/school-affordability-2026",
      "name": "School Affordability Index 2026",
      "version": "2026.1",
      "lastModified": "2026-04-10"
    },
    {
      "id": "/data/school-class-sizes-2026",
      "name": "School Class Sizes 2026",
      "version": "2026.1",
      "lastModified": "2026-04-10"
    },
    {
      "id": "/data/global-food-prices-2026",
      "name": "Global Food Prices 2026",
      "version": "2026.1",
      "lastModified": "2026-03-20"
    },
    {
      "id": "/data/property-costs-2026",
      "name": "Property Costs 2026",
      "version": "2026.1",
      "lastModified": "2026-03-20"
    },
    {
      "id": "/data/median-salaries-2026",
      "name": "Median Salaries by Country 2026",
      "version": "2026.1",
      "lastModified": "2026-04-30"
    },
    {
      "id": "/data/school-costs-by-city",
      "name": "International School Costs by City 2026",
      "version": "2026.1",
      "lastModified": "2026-04-14"
    },
    {
      "id": "/data/city-coverage",
      "name": "City Coverage Matrix",
      "version": "2026.1",
      "lastModified": "2026-04-21"
    }
  ],
  "products": [
    {
      "id": "decision_brief",
      "name": "Relocation Decision Plan",
      "type": "premium_report",
      "priceUsd": 29,
      "url": "https://getwherenext.com/report/purchase?track=choose"
    },
    {
      "id": "execution_plan",
      "name": "90-Day Move Plan",
      "type": "premium_report",
      "priceUsd": 49,
      "url": "https://getwherenext.com/report/purchase?track=plan"
    },
    {
      "id": "tax_relocation",
      "name": "Tax/Relocation Risk Packet",
      "type": "premium_report",
      "priceUsd": 79,
      "url": "https://getwherenext.com/tax/purchase"
    },
    {
      "id": "school_fit_brief",
      "name": "Family School Shortlist Plan",
      "type": "premium_report",
      "priceUsd": 49,
      "url": "https://getwherenext.com/schools/purchase"
    },
    {
      "id": "bundle",
      "name": "Decision Plan + Move Plan Bundle",
      "type": "bundle",
      "priceUsd": 59,
      "url": "https://getwherenext.com/report/purchase"
    },
    {
      "id": "family_bundle",
      "name": "Family Relocation Bundle",
      "type": "bundle",
      "priceUsd": 69,
      "url": "https://getwherenext.com/report/purchase?track=family"
    },
    {
      "id": "starter_portugal_spain",
      "name": "Portugal vs Spain: Relocation Starter Brief",
      "type": "starter_brief",
      "priceUsd": 15,
      "url": "https://getwherenext.com/starter/portugal-vs-spain"
    },
    {
      "id": "starter_thailand_bali",
      "name": "Thailand vs Bali: Relocation Starter Brief",
      "type": "starter_brief",
      "priceUsd": 15,
      "url": "https://getwherenext.com/starter/thailand-vs-bali"
    },
    {
      "id": "starter_mexico_colombia",
      "name": "Mexico vs Colombia: Relocation Starter Brief",
      "type": "starter_brief",
      "priceUsd": 15,
      "url": "https://getwherenext.com/starter/mexico-vs-colombia"
    },
    {
      "id": "starter_portugal_greece",
      "name": "Portugal vs Greece: Relocation Starter Brief",
      "type": "starter_brief",
      "priceUsd": 15,
      "url": "https://getwherenext.com/starter/portugal-vs-greece"
    },
    {
      "id": "starter_spain_italy",
      "name": "Spain vs Italy: Relocation Starter Brief",
      "type": "starter_brief",
      "priceUsd": 15,
      "url": "https://getwherenext.com/starter/spain-vs-italy"
    },
    {
      "id": "property_decision_brief",
      "name": "Property Decision Packet",
      "type": "premium_report",
      "priceUsd": 49,
      "url": "https://getwherenext.com/property/briefs"
    },
    {
      "id": "rental_landing_brief",
      "name": "Rental Landing Plan",
      "type": "premium_report",
      "priceUsd": 29,
      "url": "https://getwherenext.com/property/briefs"
    }
  ],
  "humanHandoffBoundaries": [
    "No final tax/legal advice — outputs are decision support only.",
    "No school admission guarantees — admissions data informs strategy, not outcomes.",
    "No property investment promises — buy/rent calculators are scenario tools.",
    "No immigration filing — visa data informs decisions, lawyers file.",
    "Provider introductions require explicit user consent (consent: true on the handoff endpoint).",
    "PII stored only in public.partner_intros under RLS; analytics carry lead_id never email."
  ],
  "supportedEntities": [
    {
      "type": "country",
      "idScheme": "wherenext:country:<ISO-3166-alpha2>",
      "idExample": "wherenext:country:PT",
      "count": 95,
      "canonicalUrlPattern": "https://getwherenext.com/country/{code}"
    },
    {
      "type": "city",
      "idScheme": "wherenext:city:<ISO-3166-alpha2>:<slug>",
      "idExample": "wherenext:city:PT:lisbon",
      "count": 380,
      "canonicalUrlPattern": "https://getwherenext.com/city/{country}/{slug}"
    },
    {
      "type": "school",
      "idScheme": "wherenext:school:<slug>",
      "idExample": "wherenext:school:tasis-portugal",
      "count": 4000,
      "canonicalUrlPattern": "https://getwherenext.com/schools/{city}/{slug}"
    },
    {
      "type": "visa_source",
      "idScheme": "wherenext:visa-source:<ISO-3166-alpha2>:<route>",
      "idExample": "wherenext:visa-source:PT:digital-nomad",
      "count": 116,
      "canonicalUrlPattern": "https://getwherenext.com/visas"
    },
    {
      "type": "comparison",
      "idScheme": "wherenext:comparison:<ISO>-vs-<ISO>",
      "idExample": "wherenext:comparison:PT-vs-ES",
      "count": null,
      "canonicalUrlPattern": "https://getwherenext.com/compare/{pair}"
    },
    {
      "type": "product",
      "idScheme": "wherenext:product:<id>",
      "idExample": "wherenext:product:decision_brief",
      "count": 13,
      "canonicalUrlPattern": "https://getwherenext.com{product.url}"
    }
  ],
  "rateLimits": {
    "notes": "Per-IP soft limits. Hard limits enforced at the Vercel edge. Bearer-authed routes (MCP, cron) may exceed these.",
    "data": {
      "unauthenticatedRequestsPerMinute": 60,
      "burst": 120
    },
    "intelligence": {
      "unauthenticatedRequestsPerMinute": 30,
      "burst": 60,
      "notes": "POST routes; deterministic compute over public data."
    },
    "mcp": {
      "bearerRequired": true,
      "requestsPerMinute": 30,
      "notes": "MCP_BEARER_TOKEN env var gates the HTTP transport; stdio is local-only."
    },
    "feeds": {
      "unauthenticatedRequestsPerMinute": 60,
      "burst": 240,
      "notes": "Static feeds (capabilities, ucp, openai-merchant, relocation-products) are CDN-cached for 1 hour; per-IP limits rarely matter."
    }
  },
  "rankingIndependence": {
    "rankingsAreIndependentOfPaidPlacement": true,
    "rationale": "WhereNext rankings are deterministic functions of public-domain institutional data (World Bank, UNDP, IEP, OECD, EF, Eurostat). No advertiser, partner, or referral-fee relationship influences ranking position. Provider-intro referrals are disclosed in the introduction email; they do not affect rankings.",
    "evidence": [
      "src/lib/scoring/engine.ts has no `sponsoredBoost` or `partnerWeight` parameter.",
      "src/lib/data/api-registry.ts intelligence-tier responses do not accept paid-rank inputs.",
      "/providers documents the referral disclosure policy."
    ]
  }
}