Naar de inhoud
Subsido

Starten

Aan de slag

In vijf minuten van niets tot een lijst van maatregelen waarvoor een echte onderneming kan aanvragen, met de redenen erbij.

1. Een sleutel aanmaken

Meld je aan met Google, kies een plan in het dashboard (vanaf € 20 per maand, exclusief btw; zie de prijzen) en maak een sleutel aan bij API-sleutels. Een sleutel wordt één keer getoond en alleen de hash ervan wordt bewaard: kopieer hem dus meteen naar een veilige plek. Sleutels zien eruit als sb_live_....

Je kunt al een sleutel aanmaken voor je een plan kiest, zodat je de integratie kunt voorbereiden. Zolang er geen plan actief is, antwoordt die sleutel met 402 subscription_required.

Controleer of hij werkt. GET /v1/key geeft je plan en het gebruik van deze maand terug:

curl "https://api.subsido.be/v1/key" -H "Authorization: Bearer sb_live_..."

Waarvoor kan een kleine onderneming in Vlaanderen vandaag aanvragen? Filter op gewest (dat omvat ook de nationale en Europese maatregelen, die overal gelden), op de grootte van de onderneming en op status:

curl "https://api.subsido.be/v1/subsidies?region=flanders&company_size=small&status=open,continuous,forthcoming&limit=5" \  -H "Authorization: Bearer sb_live_..."
JavaScript
const url = new URL("https://api.subsido.be/v1/subsidies");
url.search = new URLSearchParams({
  region: "flanders",
  company_size: "small",
  status: "open,continuous,forthcoming",
  topic: "digitalisation",
  lang: "nl",
  limit: "5",
}).toString();

const res = await fetch(url, {
  headers: { Authorization: `Bearer ${process.env.SUBSIDY_API_KEY}` },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);

for (const m of body.data) {
  console.log(m.status, m.closes_at ?? "no deadline", m.title, m.links.official);
}
Python
import os, requests

r = requests.get(
    "https://api.subsido.be/v1/subsidies",
    params={
        "region": "flanders",
        "company_size": "small",
        "status": "open,continuous,forthcoming",
        "topic": "digitalisation",
        "lang": "nl",
        "limit": 5,
    },
    headers={"Authorization": f"Bearer {os.environ['SUBSIDY_API_KEY']}"},
    timeout=15,
)
body = r.json()
if not r.ok:
    raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
for m in body["data"]:
    print(m["status"], m["closes_at"], m["title"], m["links"]["official"])

Elke rij is een maatregel in de compacte weergave. Hier is er een, met illustratieve waarden:

{
  "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"
  }
}
  • title en summary staan in de taal die je met lang vraagt, en anders in de taal waarin de bron publiceerde. titles bevat elke taal die er is.
  • links.official is de eigen pagina van de overheid. Toon die link bij alles wat je weergeeft: een aanvraag wordt bij de overheid ingediend en daar beoordeeld, niet bij deze API.
  • freshness zegt wanneer de bron laatst met succes gelezen werd en of dat binnen de verwachte termijn valt.

GET /v1/subsidies/{id} met die id (of met de slug) geeft de volledige record terug, met de steunpercentages per categorie, elke deadline en de voorwaarden als regels.

3. Een onderneming en een project matchen

Zoeken vertelt je wat er bestaat. Matching vertelt je wat bij deze onderneming past: stuur wat je weet over de onderneming en het project, en elke maatregel wordt eraan getoetst.

curl -X POST "https://api.subsido.be/v1/match" \  -H "Authorization: Bearer sb_live_..." \  -H "Content-Type: application/json" \  -d '{"company":{"postcode":"9000","employees":12,"turnover_eur":1500000,"legal_form":"bv","nace":["62.010"]},"project":{"topics":["digitalisation","investment"],"budget_eur":25000,"planned_start":"2026-11-01"},"language":"en","limit":10}'
JavaScript
const res = await fetch("https://api.subsido.be/v1/match", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SUBSIDY_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "company": {
      "postcode": "9000",
      "employees": 12,
      "turnover_eur": 1500000,
      "legal_form": "bv",
      "nace": [
        "62.010"
      ]
    },
    "project": {
      "topics": [
        "digitalisation",
        "investment"
      ],
      "budget_eur": 25000,
      "planned_start": "2026-11-01"
    },
    "language": "en",
    "limit": 10
  }),
});
const result = await res.json();
if (!res.ok) throw new Error(`${result.error.code}: ${result.error.message}`);

for (const m of result.matches) {
  console.log(m.match_status, m.subsidy.title, m.estimate?.basis ?? "");
  for (const u of m.unknowns) console.log("  still needed:", u.request_path, u.question);
}

Het antwoord zet de beste matches eerst, elk met het resultaat van elke regel (reasons), de gegevens die nog ontbreken (unknowns) en een indicatief bedrag (estimate). Het toont ook wat uit je invoer werd afgeleid: postcode 9000 werd Vlaanderen en Oost-Vlaanderen, 12 werknemers en € 1.500.000 omzet werden een kleine onderneming, en de rechtsvorm bv leverde een type aanvrager en rechtspersoonlijkheid op. De pagina over matching overloopt een volledig antwoord.

Vier statussen, nooit “komt in aanmerking”

likely_eligible, possibly_eligible, needs_review en not_eligible (dat laatste alleen als je erom vraagt). De bevoegde overheid beslist wie in aanmerking komt en wie steun krijgt; een match zegt in welke mate de gepubliceerde voorwaarden en jouw gegevens overeenstemmen.

Volgende stappen