Skip to content
Subsido

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:

FieldMeaning
provenance.source_idThe 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_urlThe page the record was read from, also served as links.official.
provenance.rights_modeWhat 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_licenseThe name of the licence that applies.
provenance.attributionThe attribution the licence asks for, or null when it asks for none. See attribution.
provenance.last_checked_atWhen the source was last read and still said this. In the compact view: last_checked_at.
provenance.source_last_modified_atWhen 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:

ModeWhat the record contains
open_licenceThe 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_onlyThe 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_onlyTitle 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:

StateMeaning
freshRead successfully within one and a half times expected_refresh_seconds.
delayedThe last success is older than that, but within stale_after_seconds.
staleThe 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_unavailableThree or more reads in a row failed.
parse_errorThe source answered, but the last read could not be processed.
needs_reviewThe last read is held for review before it is published.
disabledThe source is switched off.
never_runThe 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 read rights_mode on each row.
  • Store the id and links.official. A measure the source stops publishing gets withdrawn_at and leaves the default lists (include_withdrawn=true brings it back); the official link points at the authority, not at this API.
  • For a facts_only record, link to the authority’s page rather than copying text from it.