---
title: "Public holiday calendar for a country (free) — deprecated legacy alias"
method: GET
path: "/public/{country}/holidays"
tags: ["Free"]
deprecated: true
---

# Public holiday calendar for a country (free) — deprecated legacy alias

`GET /public/{country}/holidays`

## Request

- Base URL: `https://euroref.dev`
- URL: `https://euroref.dev/public/{country}/holidays`
- Auth: none required

> **Deprecated.**

Serves the same payload as GET /v1/{country}/public-holidays, which is canonical. Kept working because it is published and in use — no removal is planned — but responses carry a Deprecation header and a Link rel=successor-version pointing at the /v1 form; use that in new clients.

## Path parameters

- `country` 'at' | 'be' | 'bg' | 'ch' | 'cy' | 'cz' | 'de' | 'dk' | 'ee' | 'es' | 'eu' | 'fi' | 'fr' | 'gb' | 'gr' | 'hr' | 'hu' | 'ie' | 'is' | 'it' | 'lt' | 'lu' | 'lv' | 'mt' | 'nl' | 'no' | 'pl' | 'pt' | 'ro' | 'rs' | 'se' | 'si' | 'sk' | 'tr' | 'ua', required

## Response `200`

Holiday calendar

- object
  - `country` string, required: ISO 3166-1 alpha-2 country code
  - `series` string, required
  - `value` unknown, required
  - `unit` string
  - `effective_from` string, date, nullable, required
  - `effective_from_basis` 'restatement': Optional. Absent: effective_from is the date the value became the law (a genuine change point). 'restatement': effective_from is the date the value's CURRENT LEGAL BASIS took effect (a new tax code, an annual finance law) while the value itself is older and its true origin is not primary-verifiable — a verified floor, not a change. Do not read a restatement row as the value having changed on that date.
  - `last_confirmed` string, date, required: When this value was last verified against the official source
  - `source` object, required
    - `name` string, required
    - `url` string, uri, required
  - `stale` boolean, required: True when past the expected update cycle — treat with caution
  - `notes` string
  - `effective_rate` number: Optional. Combined effective rate where statutory levies stack on top of the standard rate (e.g. Ghana VAT 15% + NHIL 2.5% + GETFund 2.5% = 20%). Present only where it differs from value.
  - `components` object[]: Optional. Breakdown of a composite rate into its named statutory components (present only where applicable, e.g. Ghana VAT).
    - `name` string, required
    - `rate` number, required
  - `confidence_label` 'high' | 'medium' | 'low': Derived from source type, verification age, stale. Rules: /label-rules
  - `coverage_label` 'ready' | 'partial' | 'gap': ready=complete, partial=limited, gap=no number. Rules: /label-rules
  - `label_basis` object: Inputs and rule ids behind both labels

## Other responses

- `404`: Unknown country

---

[API](https://skmtc.dev/euroref/apis/euroref-european-government-reference-data.md) · [All operations](https://skmtc.dev/euroref/apis/euroref-european-government-reference-data/llms.txt) · [OpenAPI document](https://skmtc.dev/euroref/apis/euroref-european-government-reference-data/revisions/1c3a0bb74c77?raw)
