Spaarradar API
Een alleen-lezen JSON-API met dezelfde gegevens als de site: elke aanbieding doorgerekend voor een bedrag, de depositogarantie, de rentehistorie en de wijzigingen. Geen sleutel nodig; ga netjes om met het aantal verzoeken.
Basis-URL: https://spaarradar.nl · OpenAPI: /api/openapi.json
Probeer het
curl "https://spaarradar.nl/api/products?amount=25000&type=deposit&terms=12&fullDgs=true"
curl "https://spaarradar.nl/api/products/trade-republic--trade-republic-cash?amount=10000"
curl "https://spaarradar.nl/api/rates/history?view=market&days=90"Elk antwoord heeft een zwakke ETag; stuur die terug als If-None-Match en een ongewijzigd antwoord geeft 304. Antwoorden zijn publiek cachebaar voor de max-age in Cache-Control. Bedragen zijn euro's, rentes percentages per jaar als tekst met twee decimalen, datums ISO 8601.
GET /api/products
Filtered, calculated and sorted list of DGS-verified savings offers
| Parameter | Omschrijving | Standaard |
|---|---|---|
amount | Amount in EUR used in every calculation | 50000 |
horizon | Comparison horizon in months for flexible/notice accounts | 12 |
type | flexible | notice | deposit | all | flexible |
terms | Deposit terms in months, comma-separated (e.g. 12,24) | — |
termMin | Minimum deposit term (months) | — |
termMax | Maximum deposit term (months) | — |
channel | all | direct | raisin | platform | all |
country | Bank countries, ISO alpha-2, comma-separated | — |
dgsCountry | DGS countries, ISO alpha-2, comma-separated | — |
fullDgs | Entire amount must be covered by a verified DGS | true |
withholding | all | none | reducible | applicable | all |
promotions | include | exclude (calculate every offer at its rate after the promotion; nothing is hidden) | only | include |
newCustomers | all | yes | no | all |
payout | MONTHLY,QUARTERLY,ANNUALLY,AT_MATURITY,OTHER (comma-separated) | — |
currentAccount | all | no (no current account required) | all |
fees | all | none | all |
earlyWithdrawal | all | allowed (deposits that can be ended early) | all |
noticeMax | Maximum notice period in days | — |
freshness | all | 24h | official | confirmed | all |
includeIneligible | Also return offers whose min/max does not fit the amount | false |
sort | return (euros per year at the comparable annual yield) | effective (net effective annual rate) | headline | term | bank | country | verified | min | return |
brand | Only this brand (id or name) | — |
zoek | Free-text search over bank, product and institution name | — |
order | asc | desc | — |
page | Page number | 1 |
pageSize | Page size (max 500) | 50 |
200 ProductListResult: items[] (OfferView with calc + dgs split), total, hiddenByDgs, hiddenIneligible, facets, termCurve (deposits: best rate per term), typeMax, market, generatedAt
GET /api/products/{id}
Offer detail with monthly calculation steps (the list leaves calc.steps empty), rate history, sources, events and same-licence offers
| Parameter | Omschrijving | Standaard |
|---|---|---|
idverplicht | — | |
amount | Amount in EUR | — |
horizon | Months | — |
200 OfferDetail404 Unknown offer
GET /api/products/export
The comparison as CSV (semicolon-separated, decimal comma); same parameters as /api/products, every row
200 text/csv
GET /api/institutions
Legal institutions with DGS scheme, limit, verification source and brands
200 items[]
GET /api/rates/history
Historic rates: one offer, every offer, or the daily market maximum
With offerId: the append-only rate-plan history of that offer. Without: every historic rate plan (newest first), filterable by brand and product type. With view=market: the best headline rate per day per product type over `days` days, across offers whose institution has a verified DGS.
| Parameter | Omschrijving | Standaard |
|---|---|---|
offerId | Offer id; returns that offer's own history | — |
limit | Max rows for a single offer | 100 |
brand | Brand id (listing mode) | — |
type | all | flexible | notice | deposit (listing mode) | all |
page | Page number (listing mode) | 1 |
pageSize | Page size, max 500 (listing mode) | 100 |
view | plans | market | plans |
days | Window for view=market | 90 |
200 items[] (rate plans, or {date, flexible, notice, deposit12, deposit60} per day for view=market)
GET /api/changes
Recent change events (rate up/down, promo start/end, new/removed offers, DGS changes)
| Parameter | Omschrijving | Standaard |
|---|---|---|
limit | Max rows | 50 |
200 items[]
GET /api/meta/last-updated
Freshness overview and source health
200 MetaSummary
GET /api/health
Liveness/readiness
200 ok503 degraded
Voorwaarden
Vrij voor persoonlijk en niet-commercieel gebruik met bronvermelding en een link. Rentes zijn bruto en zoals de aanbieder ze publiceert; de site is niet aansprakelijk voor beslissingen op basis van de gegevens. Publiceer de volledige dataset niet als een concurrerende vergelijking.