Naar de inhoud
Subsido

De gegevens

Maatregelen zoeken

GET /v1/subsidies lijst maatregelen op en doorzoekt ze; GET /v1/subsidies/{id} leest er één, op id of op slug, zoals hij nu is of zoals hij op een datum was.

Oplijsten en zoeken

curl "https://api.subsido.be/v1/subsidies?q=energie&region=wallonia&instrument_type=grant,rebate&status=open,continuous&sort=deadline&lang=fr" \  -H "Authorization: Bearer sb_live_..."

Elke filter is optioneel. Een lijstparameter neemt waarden gescheiden door komma’s en komt overeen met eender welke ervan; verschillende parameters moeten allemaal kloppen. Waarden uit een vaste lijst worden gecontroleerd: region=bavaria geeft een 400 die de toegelaten waarden noemt, geen lege lijst, en een parameter die de route niet kent (een tikfout zoals regoin) wordt geweigerd in plaats van genegeerd. Een parameter die twee keer voorkomt, wordt ook geweigerd: gebruik een kommalijst.

ParameterBetekenis
qWoorden in eender welke taal, hoogstens 200 tekens. Elk woord moet overeenkomen met het begin van een woord in de titel of de tekst, zonder rekening te houden met accenten en hoofdletters (digitali vindt digitalisering en digitalisation); een titel die er sterk op lijkt, telt ook. Sorteert op relevantie, tenzij je sort meegeeft.
regionflandersbrusselswallonia Maatregelen die een onderneming daar kan aanvragen: die van het gewest zelf, plus elke nationale en Europese maatregel, want die gelden overal.
company_sizeEén van microsmallmediumlarge (de grootte van de onderneming zelf, dus precies één). Maatregelen die die grootte noemen, en maatregelen zonder beperking op grootte.
topicKommalijst van thema-id’s. Maatregelen met minstens één ervan. GET /v1/taxonomy lijst de 35 thema’s op.
instrument_typegrantrebatevouchertax_credittax_deductiontax_exemptionsocial_security_reductionwage_subsidyloanguaranteerepayable_advanceequityin_kindprizeother
statusforthcomingopencontinuouspausedbudget_exhaustedclosedunknown Standaard: elke status. open,continuous,forthcoming is wat je kunt aanvragen.
government_leveleufederalcommunityregionprovincemunicipalityagencyother
scopeeunationalregionalprovinciallocal
issuerKommalijst van id’s van verstrekkers: vlaio, fod-financien, european-commission enzovoort.
sourceKommalijst van bron-id’s (GET /v1/sources).
naceDe eigen NACE-BEL-code van de onderneming, met of zonder punten (62.010), minstens twee cijfers. Maatregelen zonder sectorbeperking, en maatregelen waarvan de sectoren de code omvatten (via een prefix of een NACE-sectie).
programmeDe code van een EU-programma, niet hoofdlettergevoelig: HORIZON, DIGITAL, LIFE, SMP.
deadline_beforeMaatregelen waarvan de volgende deadline op of vóór dit tijdstip valt. Een maatregel zonder deadline valt erbuiten.
deadline_afterMaatregelen waarvan de volgende deadline op of na dit tijdstip valt.
updated_sinceMaatregelen waarvan de inhoud op of na dit tijdstip veranderde.
include_withdrawnToon ook maatregelen die de bron niet meer publiceert. Standaard false.
sortrelevancedeadlineupdatedtitle Standaard: relevance met q, anders deadline. deadline zet de eerstvolgende deadline vooraan en maatregelen zonder deadline achteraan; updated zet de laatst gewijzigde eerst.
viewcompact (standaard) of full: de volledige record op elke rij.
langnl, fr of en (standaard): de taal van title, summary en links.web.
limit, cursorPaginagrootte en positie. Zie paginering.

Datums en tijden

Tijdparameters aanvaarden RFC 3339 (2026-12-01T17:00:00+01:00) of een datum zonder tijd. Een datum zonder tijd is een Brusselse dag: deadline_before=2026-12-01 betekent tot het einde van 1 december in België, deadline_after en updated_since vanaf het begin ervan. Elk tijdstip in een antwoord is RFC 3339 met de Brusselse offset (+01:00 in de winter, +02:00 in de zomer), omdat wie een deadline om 17.00 uur moet halen, ook 17.00 uur moet zien staan.

Filter op status als je op deadline sorteert

Zonder statusfilter zet sort=deadline de oudste deadlines vooraan, en die horen bij maatregelen die al lang gesloten zijn. Voor wat een onderneming nog kan aanvragen, voeg je status=open,continuous,forthcoming toe, of deadline_after met de datum van vandaag.

Het antwoord

Een pagina met maatregelen in de compacte weergave. meta.attribution verzamelt de bronvermeldingen die de licenties van de opgelijste records vragen, zonder dubbels, en meta.disclaimer de onafhankelijkheidsverklaring. Een zoekopdracht zonder resultaat meldt dat in meta.warnings.

{
  "data": [
    {
      "id": "federal:investeringsaftrek",
      "slug": "investeringsaftrek",
      "title": "Investment deduction",
      "summary": "Tax deduction from FOD Financiën for companies, self-employed people and farmers in Belgium. Covers 10% to 40% of eligible costs. Applications accepted at any time.",
      "summary_origin": "generated",
      "titles": {
        "nl": "Investeringsaftrek",
        "fr": "Déduction pour investissement",
        "en": "Investment deduction",
        "de": null
      },
      "status": "continuous",
      "instrument_type": "tax_deduction",
      "issuer": {
        "id": "fod-financien",
        "name": "FOD Financiën",
        "government_level": "federal",
        "jurisdiction": "be",
        "url": "https://financien.belgium.be"
      },
      "scope": "national",
      "regions": [],
      "topics": [
        "investment",
        "digitalisation",
        "energy_efficiency",
        "renewable_energy"
      ],
      "company_sizes": [],
      "opens_at": null,
      "closes_at": null,
      "rolling": true,
      "rate_max": 40,
      "amount_max": null,
      "annual_cap": null,
      "rules_basis": "curated",
      "source_id": "curated_federal",
      "rights_mode": "facts_only",
      "version": 2,
      "last_changed_at": "2026-09-27T05:52:40+02:00",
      "last_checked_at": "2026-09-27T06:00:12+02:00",
      "freshness": {
        "state": "fresh",
        "last_successful_fetch": "2026-09-27T06:00:12+02:00",
        "expected_refresh_seconds": 86400,
        "stale_after_seconds": 259200
      },
      "links": {
        "self": "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek",
        "versions": "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek/versions",
        "official": "https://financien.belgium.be/nl/ondernemingen/vennootschapsbelasting/belastingvoordelen/investeringsaftrek",
        "web": "https://subsido.be/en/grants/investeringsaftrek"
      }
    }
  ],
  "pagination": {
    "has_more": true,
    "next_cursor": "eyJzIjoic3Vic2lkaWVzOmRlYWRsaW5lIiwiayI6ImluZmluaXR5IiwiaSI6ImZlZGVyYWw6aW52ZXN0ZXJpbmdzYWZ0cmVrIn0",
    "limit": 1
  },
  "meta": {
    "request_id": "req_0192d3a4b5c67d8e9f0a1b2c3d4e5f60",
    "warnings": [],
    "attribution": [
      "Source: FOD Financiën / SPF Finances and RSZ / ONSS official pages; records written by Subsido."
    ],
    "disclaimer": "Independent service. Not affiliated with, endorsed by, or operated by any government or public authority. Eligibility and awards are decided by the competent authority."
  }
}

De compacte weergave bevat wat een lijst nodig heeft om een maatregel te tonen en te beslissen of je hem opent. Elk veld van de volledige record staat beschreven bij het datamodel.

Eén maatregel

curl "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek?lang=nl" \  -H "Authorization: Bearer sb_live_..."
  • Het pad neemt de id (federal:investeringsaftrek, eu:HORIZON-EIC-2026-ACCELERATOR-01) of de slug (investeringsaftrek). Een id wordt één keer toegekend, op basis van de eerste bron die de maatregel publiceerde, en verandert nooit, ook niet als de bron haar pagina hernoemt. Bewaar dus id’s, geen slugs.
  • Bleken twee records dezelfde maatregel te beschrijven en werden ze samengevoegd, dan blijft de oude id werken: hij antwoordt met de record die overblijft en een veld merged_from met de id die je vroeg.
  • Het antwoord is { data, meta } met de volledige record in data. Parameters: lang en as_of.
  • Een onbekende id of slug geeft 404 subsidy_not_found.

Een maatregel zoals hij op een datum was

Pro en hogerVoor as_of heb je de capability as_of nodig.

curl "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek?as_of=2026-09-27" \  -H "Authorization: Bearer sb_live_..."

Geeft de versie terug die op dat tijdstip gold (een datum zonder tijd betekent het einde van die Brusselse dag), met drie extra velden: as_of, en valid_from en valid_to van die versie (null zolang het de huidige is). Vóór de eerste versie van de maatregel is het antwoord 404 version_not_found, en de melding zegt van wanneer de eerste versie dateert. Zo wordt een antwoord reproduceerbaar: wat zei de API over deze maatregel toen we de klant op 3 maart adviseerden?

Versies

Pro en hogerVoor versies heb je de capability history nodig.

Er wordt een nieuwe versie geschreven telkens de inhoud van de record verandert, en alleen dan: een bron opnieuw controleren zonder wijziging schrijft niets. GET /v1/subsidies/{id}/versions lijst elke versie op, de nieuwste eerst, elk met wat er veranderde.

curl "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek/versions" \  -H "Authorization: Bearer sb_live_..."
{
  "data": [
    {
      "version": 2,
      "valid_from": "2026-09-27T05:52:40+02:00",
      "valid_to": null,
      "cause": "source_change",
      "content_hash": "9f2c…",
      "changes": [
        {
          "field": "funding.rate_max",
          "before": 30,
          "after": 40
        }
      ]
    },
    {
      "version": 1,
      "valid_from": "2026-09-27T05:40:02+02:00",
      "valid_to": "2026-09-27T05:52:40+02:00",
      "cause": "source_change",
      "content_hash": "4b7e…",
      "changes": []
    }
  ],
  "subsidy_id": "federal:investeringsaftrek",
  "meta": {
    "request_id": "req_0192d3a4b5c67d8e9f0a1b2c3d4e5f62",
    "warnings": []
  }
}

GET /v1/subsidies/{id}/versions/{version} geeft de volledige record zoals hij in die versie was, aangevuld met valid_from, valid_to, cause en changes; lang is de enige parameter. Versies worden voor altijd bewaard. De oorzaken, en hoe een versie een event in de change feed wordt, staan bij wijzigingen en versies.

De volledige catalogus

Business en hogerVoor de export heb je de capability bulk_export nodig.

GET /v1/export/subsidies.ndjson streamt elke huidige maatregel als één volledige record per regel (application/x-ndjson), gesorteerd op titel. Parameters: lang en include_withdrawn. Over de hele dienst lopen hoogstens twee exports tegelijk; een derde krijgt 429 rate_limit_exceeded met Retry-After: 5. Een export telt als één request.

curl "https://api.subsido.be/v1/export/subsidies.ndjson?lang=nl" \  -H "Authorization: Bearer sb_live_..." -o subsidies.ndjson

De woordenlijsten

GET /v1/taxonomy vraagt geen sleutel en geeft elke vaste lijst met labels in het Nederlands, Frans en Engels: thema’s, gewesten, provincies (met hun gewest), instrumenttypes, statussen, ondernemingsgroottes, types aanvragers, kostensoorten, bestuursniveaus en reikwijdtes, plus de regelvelden (met voor elk de vraag die je stelt), de regeloperatoren, de eventtypes en de matchstatussen. Bouw formulieren op deze route, niet op een kopie.

GET /v1/coverage, ook zonder sleutel, telt de catalogus: total, actionable (open, doorlopend of binnenkort open), last_changed_at, en aantallen per status, bron, instrumenttype, bestuursniveau, gewest en thema.