Les données
Rechercher des mesures
GET /v1/subsidies liste et recherche les mesures ; GET /v1/subsidies/{id} en lit une, par id ou par slug, telle qu’elle est aujourd’hui ou telle qu’elle était à une date donnée.
Lister et rechercher
curl "https://api.subsido.be/v1/subsidies?q=energie®ion=wallonia&instrument_type=grant,rebate&status=open,continuous&sort=deadline&lang=fr" \ -H "Authorization: Bearer sb_live_..."Chaque filtre est facultatif. Un paramètre de liste accepte des valeurs séparées par des virgules et retient chacune d’elles ; des paramètres différents doivent tous être satisfaits. Les valeurs des listes fermées sont contrôlées : region=bavaria donne une erreur 400 qui cite les valeurs acceptées plutôt qu’une liste vide, et un paramètre que la route ne connaît pas (une faute de frappe comme regoin) est refusé plutôt qu’ignoré. Un paramètre répété est refusé lui aussi : utilisez une liste séparée par des virgules.
| Paramètre | Signification |
|---|---|
| q | Des mots dans n’importe quelle langue, 200 caractères au plus. Chaque mot doit correspondre au début d’un mot du titre ou du texte, sans tenir compte des accents ni de la casse (digitali trouve digitalisering et digitalisation) ; une correspondance proche sur le titre compte aussi. Tri par pertinence, sauf si vous précisez sort. |
| region | flandersbrusselswallonia Les mesures accessibles à une entreprise établie dans cette région : celles de la région, plus toutes les mesures nationales et européennes, valables partout. |
| company_size | L’une des valeurs microsmallmediumlarge (celle de l’entreprise, donc une seule). Les mesures qui citent cette taille, et celles qui ne limitent pas la taille. |
| topic | Liste d’identifiants de thèmes, séparés par des virgules. Les mesures qui portent au moins l’un d’eux. GET /v1/taxonomy liste les 35 thèmes. |
| instrument_type | grantrebatevouchertax_credittax_deductiontax_exemptionsocial_security_reductionwage_subsidyloanguaranteerepayable_advanceequityin_kindprizeother |
| status | forthcomingopencontinuouspausedbudget_exhaustedclosedunknown Par défaut : tous les statuts. open,continuous,forthcoming correspond à ce qui peut être demandé. |
| government_level | eufederalcommunityregionprovincemunicipalityagencyother |
| scope | eunationalregionalprovinciallocal |
| issuer | Liste d’identifiants d’organismes, séparés par des virgules : vlaio, fod-financien, european-commission, etc. |
| source | Liste d’identifiants de sources, séparés par des virgules (GET /v1/sources). |
| nace | Le code NACE-BEL de l’entreprise, avec ou sans points (62.010), au moins deux chiffres. Les mesures sans restriction sectorielle, et celles dont les secteurs couvrent ce code (par préfixe ou par section NACE). |
| programme | Le code d’un programme européen, sans tenir compte de la casse : HORIZON, DIGITAL, LIFE, SMP. |
| deadline_before | Les mesures dont la prochaine échéance tombe à cet instant ou avant. Une mesure sans échéance n’est pas retenue. |
| deadline_after | Les mesures dont la prochaine échéance tombe à cet instant ou après. |
| updated_since | Les mesures dont le contenu a changé à cet instant ou après. |
| include_withdrawn | Inclut aussi les mesures que la source ne publie plus. Par défaut false. |
| sort | relevancedeadlineupdatedtitle Par défaut : relevance avec q, sinon deadline. deadline place les échéances les plus proches en tête et les mesures sans échéance à la fin ; updated place en tête les dernières modifiées. |
| view | compact (par défaut) ou full : l’enregistrement complet sur chaque ligne. |
| lang | nl, fr ou en (par défaut) : la langue de title, summary et links.web. |
| limit, cursor | Taille et position de la page. Voir pagination. |
Dates et heures
2026-12-01T17:00:00+01:00) ou une date seule. Une date seule désigne une journée à Bruxelles : deadline_before=2026-12-01 signifie jusqu’à la fin du 1er décembre en Belgique, deadline_after et updated_since à partir de son début. Chaque horodatage d’une réponse est en RFC 3339 avec le décalage de Bruxelles (+01:00 en hiver, +02:00 en été), parce qu’une échéance à 17 h doit se lire 17 h pour celui qui doit la respecter.Filtrez sur le statut quand vous triez par échéance
sort=deadline place en tête les échéances les plus anciennes, qui appartiennent à des mesures clôturées depuis longtemps. Pour ce qu’une entreprise peut encore demander, ajoutez status=open,continuous,forthcoming ou deadline_after avec la date du jour.La réponse
Une page de mesures en vue compacte. meta.attribution rassemble, sans doublons, les mentions de source que demandent les licences des enregistrements listés, et meta.disclaimer la déclaration d’indépendance. Une recherche sans résultat le signale dans 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."
}
}La vue compacte contient ce dont une liste a besoin pour afficher une mesure et décider de l’ouvrir. Chaque champ de l’enregistrement complet est décrit dans le modèle de données.
Une mesure
curl "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek?lang=fr" \ -H "Authorization: Bearer sb_live_..."- Le chemin accepte l’id (
federal:investeringsaftrek,eu:HORIZON-EIC-2026-ACCELERATOR-01) ou le slug (investeringsaftrek). Un id est attribué une fois pour toutes, à partir de la première source qui a publié la mesure, et ne change jamais, même si la source renomme sa page. Conservez donc les id, pas les slugs. - Quand deux enregistrements se révèlent décrire la même mesure et sont fusionnés, l’ancien id continue de fonctionner : il renvoie l’enregistrement conservé, avec un champ
merged_fromqui reprend l’id demandé. - La réponse est
{ data, meta }, avec l’enregistrement complet dansdata. Paramètres :langetas_of. - Un id ou un slug inconnu renvoie
404 subsidy_not_found.
Une mesure telle qu’elle était à une date
À partir de Proas_of nécessite la capacité as_of.
curl "https://api.subsido.be/v1/subsidies/federal:investeringsaftrek?as_of=2026-09-27" \ -H "Authorization: Bearer sb_live_..."Renvoie la version en vigueur à cet instant (une date seule désigne la fin de cette journée à Bruxelles), avec trois champs de plus : as_of, et les valid_from et valid_to de la version (null tant qu’elle est la version actuelle). Avant la première version de la mesure, la réponse est 404 version_not_found, et le message indique la date de cette première version. C’est ce qui rend une réponse reproductible : que disait l’API de cette mesure quand nous avons conseillé le client le 3 mars ?
Versions
À partir de ProLes versions nécessitent la capacité history.
Une nouvelle version est écrite chaque fois que le contenu de l’enregistrement change, et seulement dans ce cas : revérifier une source sans modification n’écrit rien. GET /v1/subsidies/{id}/versions liste toutes les versions, de la plus récente à la plus ancienne, chacune avec ce qui a changé.
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} renvoie l’enregistrement complet tel qu’il était dans cette version, complété de valid_from, valid_to, cause et changes ; lang est son seul paramètre. Les versions sont conservées sans limite de durée. Les causes, et la façon dont une version devient un événement du flux de modifications, sont décrites dans modifications et versions.
Le catalogue complet
À partir de BusinessL’export nécessite la capacité bulk_export.
GET /v1/export/subsidies.ndjson diffuse en flux chaque mesure actuelle, à raison d’un enregistrement complet par ligne (application/x-ndjson), triée par titre. Paramètres : lang et include_withdrawn. Deux exports au plus tournent en même temps sur l’ensemble du service ; un troisième reçoit 429 rate_limit_exceeded avec Retry-After: 5. Un export compte pour une requête.
curl "https://api.subsido.be/v1/export/subsidies.ndjson?lang=fr" \ -H "Authorization: Bearer sb_live_..." -o subsidies.ndjsonLe vocabulaire
GET /v1/taxonomy ne demande pas de clé et renvoie chaque liste fermée avec ses libellés en néerlandais, en français et en anglais : thèmes, régions, provinces (avec leur région), types d’instruments, statuts, tailles d’entreprise, types de demandeurs, types de coûts, niveaux de pouvoir et portées, ainsi que les champs des règles (avec pour chacun la question à poser), les opérateurs des règles, les types d’événements et les statuts de matching. Construisez vos formulaires à partir de cette route plutôt que d’une copie.
GET /v1/coverage, lui aussi sans clé, compte le catalogue : total, actionable (ouvertes, permanentes ou à venir), last_changed_at, et des décomptes par statut, source, type d’instrument, niveau de pouvoir, région et thème.
