Spaarradar
CompareDepositsGuided choiceNewsNL
Spaarradar

Independent: the order follows only from the rate, your amount and the deposit guarantee, never from fees paid by banks.

Last check 2 minutes ago·595 offers from 88 institutions

Compare
  • Guided choice
  • Highest savings rate
  • Deposits by term
  • Deposit ladder
  • Interest calculator
  • Switch check
  • My list
  • Notice accounts
  • No withholding tax
  • Saving via Raisin
  • Directly at the bank
About this site
  • Glossary
  • Methodology
  • Banks & deposit guarantee
  • News
  • Rate changes
  • Rate history
  • Savings rate index
  • ECB rate
  • Widget for your site
  • API
  • About & contact
  • Press
  • Privacy
  • Disclaimer

Not advice. Rates are gross, per year and as published by the provider. Variable rates can change. Outbound links may earn a commission; that never affects the order or the calculation.

Spaarradar API

A read-only JSON API with the same data as the site: every offer calculated for an amount, the deposit guarantee split, rate history and change events. No key needed; be polite with request rates.

Base URL: https://spaarradar.nl · OpenAPI: /api/openapi.json

Try it

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"

Every response carries a weak ETag; send it back as If-None-Match and an unchanged payload answers 304. Responses are publicly cacheable for the max-age in Cache-Control. Amounts are euros, rates are percentages per year as strings with two decimals, dates are ISO 8601.

GET /api/products

Filtered, calculated and sorted list of DGS-verified savings offers

ParameterDescriptionDefault
amountAmount in EUR used in every calculation50000
horizonComparison horizon in months for flexible/notice accounts12
typeflexible | notice | deposit | allflexible
termsDeposit terms in months, comma-separated (e.g. 12,24)—
termMinMinimum deposit term (months)—
termMaxMaximum deposit term (months)—
channelall | direct | raisin | platformall
countryBank countries, ISO alpha-2, comma-separated—
dgsCountryDGS countries, ISO alpha-2, comma-separated—
fullDgsEntire amount must be covered by a verified DGStrue
withholdingall | none | reducible | applicableall
promotionsinclude | exclude (calculate every offer at its rate after the promotion; nothing is hidden) | onlyinclude
newCustomersall | yes | noall
payoutMONTHLY,QUARTERLY,ANNUALLY,AT_MATURITY,OTHER (comma-separated)—
currentAccountall | no (no current account required)all
feesall | noneall
earlyWithdrawalall | allowed (deposits that can be ended early)all
noticeMaxMaximum notice period in days—
freshnessall | 24h | official | confirmedall
includeIneligibleAlso return offers whose min/max does not fit the amountfalse
sortreturn (euros per year at the comparable annual yield) | effective (net effective annual rate) | headline | term | bank | country | verified | minreturn
brandOnly this brand (id or name)—
zoekFree-text search over bank, product and institution name—
orderasc | desc—
pagePage number1
pageSizePage 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

ParameterDescriptionDefault
idrequired—
amountAmount in EUR—
horizonMonths—

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.

ParameterDescriptionDefault
offerIdOffer id; returns that offer's own history—
limitMax rows for a single offer100
brandBrand id (listing mode)—
typeall | flexible | notice | deposit (listing mode)all
pagePage number (listing mode)1
pageSizePage size, max 500 (listing mode)100
viewplans | marketplans
daysWindow for view=market90

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)

ParameterDescriptionDefault
limitMax rows50

200 items[]

GET /api/meta/last-updated

Freshness overview and source health

200 MetaSummary

GET /api/health

Liveness/readiness

200 ok503 degraded

Terms

Free for personal and non-commercial use with attribution and a link. Rates are gross and as published by the provider; the site is not liable for decisions based on the data. Do not republish the full dataset as a competing comparison.

Endpoints
  • /api/products
  • /api/products/{id}
  • /api/products/export
  • /api/institutions
  • /api/rates/history
  • /api/changes
  • /api/meta/last-updated
  • /api/health