# /upsidedown/v1/dataset — Open Data Proxy

Use GET /upsidedown/v1/dataset to fetch every published country as long-format rows (country × metric) with unit, currency, data year, status, publisher, source URL and calculation.

## Purpose

Use GET /upsidedown/v1/dataset to fetch every published country as long-format rows (country × metric) with unit, currency, data year, status, publisher, source URL and calculation.

Price: $0.01 USDC

## Request

```
GET /upsidedown/v1/dataset
```

## Response

```json
{
  "title": "The World Upside Down",
  "country_count": 21,
  "countries": [
    "NL"
  ],
  "rows": [
    {
      "country": "Netherlands",
      "iso": "NL",
      "metric": "prisoner_daily_cost",
      "label": "",
      "value": 488,
      "unit": "EUR/day",
      "currency": "EUR",
      "data_year": 2026,
      "source_year": 2026,
      "status": "verified",
      "publisher": "Ministry of Justice and Security",
      "source_url": "https://example.test/source",
      "calculation": "",
      "note": ""
    }
  ]
}
```

## 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.
