---
title: "Certified extract: the value plus its full evidence chain, Ed25519-signed"
method: GET
path: "/v1/certified/{country}/{series}"
tags: ["Certified"]
---

# Certified extract: the value plus its full evidence chain, Ed25519-signed

`GET /v1/certified/{country}/{series}`

## Request

- Base URL: `https://euroref.dev`
- URL: `https://euroref.dev/v1/certified/{country}/{series}`
- Auth: one of:
  - API key in header `PAYMENT-SIGNATURE`
  - API key in header `X-PAYMENT`
  - API key in header `X-API-Key`

Signed, dated evidence for one value: citation, sha256 of the archived source, last confirmation, limitations. Ed25519; free key: https://euroref.dev/certified/public-key. Refused free (422) if the source is unfingerprinted. Certifies the source supported the value then, not that nothing newer exists.

## 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
- `series` 'policy-rate' | 'vat' | 'vat-registration-threshold' | 'minimum-wage' | 'public-holidays' | 'cpi' | 'corporate-tax' | 'withholding-tax' | 'income-tax' | 'social-contributions' | 'ecb-main-refinancing-rate' | 'late-payment-interest' | 'statutory-interest' | 'filing-deadlines' | 'fx-reference', required

## Response `200`

Signed certified extract

- CertifiedExtract: A signed series certified extract. Not an answer receipt (kind answer_receipt lives on paid answer responses). The signature covers the canonical JSON of certified_extract exactly as received.
  - `certified_extract` object
    - `format` 'afriref-certified-extract/1'
    - `issued_at` string, date-time
    - `extract_id` string: Stable id derived from the extract's own content
    - `issuer` object
    - `subject` object
      - `country` string
      - `series` string
    - `value` object: Value, unit, effective dates, confidence and staleness, plus confidence_label and coverage_label (signed)
    - `citation` object: Official source name and URL; includes the rule-vs-instances split for dated series
    - `source_document` object: The cited document as archived: sha256 over the retrieved bytes, size, content type, first and latest fingerprint dates, and whether a copy is held.
    - `verification` object: How and when the value was last confirmed, and - where the mechanical pass holds it - the value located in the archived document with surrounding context.
    - `limitations` string[]: What this extract does NOT certify. Always populated.
  - `signature` object
    - `alg` 'Ed25519'
    - `key_id` string
    - `public_key` string, uri
    - `signed_payload` string: How to reconstruct the signed bytes
    - `value` string: Base64 Ed25519 signature
  - `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

- `402`: Payment required - retry with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1), or send X-API-Key.
- `404`: Unknown country or series
- `422`: Refused, with the reason. Validation refusals happen BEFORE payment and are never charged.

---

[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)
