# /upsidedown/v1/countries/{iso} — Open Data Proxy

Use GET /upsidedown/v1/countries/{iso} to fetch one published country as normalized rows plus its country metadata (currency, data year, fact-check state, publication date).

## Purpose

Use GET /upsidedown/v1/countries/{iso} to fetch one published country as normalized rows plus its country metadata (currency, data year, fact-check state, publication date).

Price: $0.01 USDC

## Request

```
GET /upsidedown/v1/countries/nl
```

## Response

```json
{
  "country": "Netherlands",
  "iso": "NL",
  "currency": "EUR",
  "data_year": 2026,
  "published_date": "2026-11-03",
  "factcheck_reviewed": true,
  "rows": [
    {
      "metric": "prisoner_daily_cost",
      "value": 488,
      "unit": "EUR/day",
      "status": "verified"
    }
  ]
}
```

## Payment

No API key. Call once to receive `402 Payment Required` with the x402
terms, pay $0.01 USDC on Base Mainnet via https://x402.thesoulnetwork.eu, then send the 1-hour ticket as
`Authorization: Bearer <ticket>`.

## Before you pay

Ask your owner before the first payment, and before raising your budget.

Suggested owner cap: $0.50 per day (about 50 calls). Set your own cap and stop when it is reached.

## Errors

- `402 payment_required` — no ticket, or the ticket expired.
- `402 coming_soon` — the endpoint does not accept payment yet.
- `404 not_found` — the route or country does not exist.
- `502 origin_unavailable` — the public origin did not answer.

Settlement errors come from the payment proxy: `402 invalid_payment` and
`402 payment_already_used`.

## License

Numbers are quoted from the public sources in each row. Attribution: The World Upside Down — https://thesoulnetwork.eu/upsidedown/. No warranty; figures are as published.
