# Faroe Islands Statistics API
> Official Faroese statistics from Statistics Faroe Islands (Hagstova Føroya) as a clean, keyless JSON API. Get the latest Faroese consumer price index and inflation — the quarterly index with both the annual and period rate of change — pull any table in the Hagstova PxWeb catalogue as a tidy time-series (prices, population, labour and wages, trade, business, transport and more), inspect a table's variables and value codes, and browse the subject tree. A thin gateway over the Statistics Faroe Islands PxWeb API: you supply a table path (relative to the H2 database, e.g. IP/IP02/pris_alt.px) with optional dimension selection, we return tidy period/value observations. Ideal for inflation trackers and Nordic / North-Atlantic macro research.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/faroe-stats-api/..."
```

## Pricing
- **Free** (Free) — 2,250 calls/Mo, 3 req/s
- **Basic** ($11/Mo) — 46,500 calls/Mo, 10 req/s
- **Pro** ($27/Mo) — 186,000 calls/Mo, 25 req/s
- **Mega** ($63/Mo) — 804,000 calls/Mo, 60 req/s

## Endpoints

### Inflation

#### `GET /v1/cpi` — Latest Faroese CPI and inflation

**Parameters:**
- `periods` (query, optional, string) — Number of recent quarters (1-80) Example: `8`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/faroe-stats-api/v1/cpi?periods=8"
```

**Response:**
```json
{
    "data": {
        "table": "IP/IP02/pris_alt.px",
        "latest": {
            "year": 2026,
            "period": "Q1",
            "index_value": 144.55,
            "period_label": "February",
            "change_annual_pct": -0.2,
            "change_period_pct": 0.1
        },
        "series": [
            {
                "year": 2026,
                "period": "Q1",
                "index_value": 144.55,
                "period_label": "February",
                "change_annual_pct": -0.2,
                "change_period_pct": 0.1
            },
            {
                "year": 2025,
                "period": "Q4",
                "index_value": 144.43,
                "period_label": "November",
                "change_annual_pct": 0.7,
                "change_period_pct": -0.4
            },
            {
                "year": 2025,
                "period": "Q3",
                "index_value": 144.94,
                "period_label": "August",
                "change_annual_pct": 1.1,
                "change_period_pct": 0.2
            },
            {
                "year": 2025,
                "period": "Q2",
                "index_value": 144.63,
                "period_label": "May",
                "change_annual_pct": 0.7,
                "change_period_pct": -0.1
            },
            {
                "year": 2025,
                "period": "Q1",
                "index_value": 144.8,
                "period_label": "February",
      
…(truncated, see openapi.json for full schema)
```

### Data

#### `GET /v1/series` — Any Hagstova PxWeb table as a time-series

**Parameters:**
- `path` (query, required, string) — Table path relative to H2 (ends in .px) Example: `IP/IP02/pris_alt.px`
- `select` (query, optional, string) — Dimension constraints "Code:Value;Code:Value" Example: `measure:INDEX`
- `periods` (query, optional, string) — Recent periods (1-240) Example: `12`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/faroe-stats-api/v1/series?path=IP%2FIP02%2Fpris_alt.px&select=measure%3AINDEX&periods=12"
```

**Response:**
```json
{
    "data": {
        "path": "IP/IP02/pris_alt.px",
        "count": 12,
        "title": "Consumer price index by measure, year and period",
        "series": [
            {
                "value": 144.55,
                "period": "2026",
                "period_label": "2026"
            },
            {
                "value": 144.8,
                "period": "2025",
                "period_label": "2025"
            },
            {
                "value": 142.96,
                "period": "2024",
                "period_label": "2024"
            },
            {
                "value": 139.34,
                "period": "2023",
                "period_label": "2023"
            },
            {
                "value": 128.64,
                "period": "2022",
                "period_label": "2022"
            },
            {
                "value": 123.21,
                "period": "2021",
                "period_label": "2021"
            },
            {
                "value": 121.91,
                "period": "2020",
                "period_label": "2020"
            },
            {
                "value": 120,
                "period": "2019",
                "period_label": "2019"
            },
            {
                "value": 118.6,
                "period": "2018",
                "period_label": "2018"
            },
            {
                "value": 117.52,
                "period": "2017",
                "period_label": "2017"
     
…(truncated, see openapi.json for full schema)
```

### Catalog

#### `GET /v1/catalog` — Browse the subject tree

**Parameters:**
- `path` (query, optional, string) — Sub-path to list (omit for root) Example: `IP`
- `limit` (query, optional, string) — Max items (1-400) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/faroe-stats-api/v1/catalog?path=IP&limit=100"
```

**Response:**
```json
{
    "data": {
        "path": "IP",
        "count": 4,
        "items": [
            {
                "id": "IP01",
                "text": "Income distibution and risk of poverty\n",
                "type": "folder"
            },
            {
                "id": "IP02",
                "text": "Consumer price index\n",
                "type": "folder"
            },
            {
                "id": "IP04",
                "text": "Residential properties\n",
                "type": "folder"
            },
            {
                "id": "endad",
                "text": "Discontinued tables\n",
                "type": "folder"
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-15T20:41:08.879Z",
        "request_id": "cc463c9f-0429-4bbc-9167-8f18ac4700d7"
    },
    "status": "ok",
    "message": "Catalog retrieved successfully",
    "success": true
}
```

#### `GET /v1/table` — Table metadata (variables and value codes)

**Parameters:**
- `path` (query, required, string) — Table path relative to H2 Example: `IP/IP02/pris_alt.px`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/faroe-stats-api/v1/table?path=IP%2FIP02%2Fpris_alt.px"
```

**Response:**
```json
{
    "data": {
        "path": "IP/IP02/pris_alt.px",
        "title": "IP02005 Consumer price index, by commodity groups and period (2001-2026)",
        "variables": [
            {
                "code": "measure",
                "text": "measure",
                "n_values": 3,
                "sample_values": [
                    {
                        "code": "INDEX",
                        "text": "Index"
                    },
                    {
                        "code": "CHYEAR",
                        "text": "Annual rate of change (per cent)"
                    },
                    {
                        "code": "CHTIME",
                        "text": "Period rate of change (per cent)"
                    }
                ]
            },
            {
                "code": "commodity groups",
                "text": "commodity groups",
                "n_values": 117,
                "sample_values": [
                    {
                        "code": "CPI",
                        "text": "Consumer price index"
                    },
                    {
                        "code": "0100",
                        "text": "01 Food and non-alcoholic beverages"
                    },
                    {
                        "code": "0110",
                        "text": "01.1 Food"
                    },
                    {
                        "code": "0111",
                        "text": "01.1.1 bread and cereals"
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/faroe-stats-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "path is relative to the H2 database, e.g. IP/IP02/pris_alt.px (consumer prices).",
        "source": "Statistics Faroe Islands (Hagstova Føroya)",
        "upstream": "https://statbank.hagstova.fo/api/v1/en/H2",
        "cpi_table": "IP/IP02/pris_alt.px",
        "endpoints": [
            "/v1/cpi",
            "/v1/series",
            "/v1/table",
            "/v1/catalog",
            "/v1/meta"
        ],
        "description": "Keyless gateway over the Statistics Faroe Islands PxWeb API. /v1/cpi gives the latest Faroese consumer price index and inflation (index + annual + period change, quarterly); /v1/series pulls any table as a clean time-series; /v1/table inspects a table's variables; /v1/catalog browses the subject tree.",
        "documentation": "https://faroe-stats-api.oanor.dev"
    },
    "meta": {
        "timestamp": "2026-06-15T20:41:09.118Z",
        "request_id": "8e67873b-7d10-472e-9c58-554022de84d5"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/faroe-stats-api
OpenAPI spec: https://www.oanor.com/api/faroe-stats-api/openapi.json
