The data
Provenance
Every measure comes from a public authority’s publication. Each record names its source, says what that source’s licence lets the record contain, and carries the attribution to show.
The provenance fields
Every full record has a provenance object; the compact view lifts source_id, rights_mode and last_checked_at to the top. The fields you will read most:
| Field | Meaning |
|---|---|
| provenance.source_id | The source the record was read from (curated_federal, eu_funding_tenders, ...). This is the id the source filter and the webhook sources filter take. In the compact view: source_id. |
| provenance.source_url | The page the record was read from, also served as links.official. |
| provenance.rights_mode | What the source’s licence lets the record contain: open_licence, facts_only or link_only (see below). In the compact view: rights_mode. |
| provenance.source_license | The name of the licence that applies. |
| provenance.attribution | The attribution the licence asks for, or null when it asks for none. See attribution. |
| provenance.last_checked_at | When the source was last read and still said this. In the compact view: last_checked_at. |
| provenance.source_last_modified_at | When the page last changed, by the source’s own statement. |
| provenance.sources[] | Every source that describes the measure, the primary one first. |
Every provenance field is on the subsidy record.
Rights modes
Every source has a rights mode, which follows from its licence. Every record carries it as provenance.rights_mode, and the compact view as rights_mode. It decides what the record contains:
| Mode | What the record contains |
|---|---|
| open_licence | The source’s licence allows its text to be reused with attribution (for example CC BY 4.0, CC0 or the Flemish reuse licence). The summary can be the source’s own (summary_origin: "source"), and status_note can repeat the source’s words. |
| facts_only | The record holds the facts: dates, amounts, rates, who may apply, the rules, a summary generated from those facts (summary_origin: "generated") and the link to the official page. The source’s own text is not included. |
| link_only | Title and link only. |
Summaries
summary_origin says where the summary in your language comes from: source is the source’s own text, generated is generated from the record’s facts (the kind of support and from whom, for whom and where, how much, and when). summary_basis says the same for the record as a whole: a record whose source wrote a Dutch summary can serve a generated one in French or English. Titles are not generated or translated: a title exists in the languages the source published it in, and titles is null for the others.
Attribution
Where a licence asks for attribution, the record carries it in provenance.attribution and the licence in provenance.source_license. A list response collects the attributions of its rows in meta.attribution. If you show the text of an open_licence record, show its attribution with it; for EU Funding & Tenders content that is the European Commission under CC BY 4.0. Every record also links the authority’s own page in links.official: show it, because that page, not this API, is authoritative. Redistributing the data itself to third parties needs a plan that includes it; see the terms.
Freshness
Every record carries its source’s freshness in freshness, so a source that could not be read for a while is visible on every measure it feeds. freshness.state is one of:
| State | Meaning |
|---|---|
| fresh | Read successfully within one and a half times expected_refresh_seconds. |
| delayed | The last success is older than that, but within stale_after_seconds. |
| stale | The last success is older than stale_after_seconds. The record is what the source said at last_successful_fetch; it stays available, marked stale. |
| source_unavailable | Three or more reads in a row failed. |
| parse_error | The source answered, but the last read could not be processed. |
| needs_review | The last read is held for review before it is published. |
| disabled | The source is switched off. |
| never_run | The source is switched on but has not been read yet. |
provenance.last_checked_at is when the source was last read and still said this; provenance.source_last_modified_at is the source’s own statement of when it changed. They are different clocks, and both are served. GET /v1/health lists the sources that are not fresh.
What it means for you
- Filter with
source=when your use needs a particular licence, and readrights_modeon each row. - Store the id and
links.official. A measure the source stops publishing getswithdrawn_atand leaves the default lists (include_withdrawn=truebrings it back); the official link points at the authority, not at this API. - For a
facts_onlyrecord, link to the authority’s page rather than copying text from it.
