GET /api/v1/merchants
Shops zoeken op naam of domein. Zonder zoekterm de shops met de hoogste score, per pagina.
q: Zoekterm, optioneel.page: Paginanummer, optioneel.
Recht: merchants:read
Met de Kodari API haal je dezelfde gegevens op als op onze site: shops, gecontroleerde codes met hun voorwaarden, het kortingsritme van een shop, lopende acties en de goedkoopste route voor een bestelling. Handig voor een eigen app of voor een AI agent die namens iemand zoekt. De API is versie 1 en alleen om te lezen.
De volgorde van codes en routes hangt af van wat je bespaart, nooit van wat wij aan een shop verdienen. In de API staat geen commissie, geen programma en geen netwerk.
Zonder sleutel kun je de API proberen, met hooguit 60 aanroepen per minuut per IP-adres. Met een sleutel krijg je eigen limieten, zie je in de headers wat er over is, en staat bij een code de code zelf erin.
Stuur de sleutel mee als header, nooit in de URL: die belandt in logs.
Authorization: Bearer kdr_...
X-Api-Key: kdr_...
Een sleutel vraag je aan via het contactformulier. Noem je naam, waar je de API voor gebruikt en welke rechten je nodig hebt.
merchants:read:
Shops zoeken en bekijken.
coupons:read:
Codes met verificatie lezen.
routes:read:
Bespaarroutes berekenen.
pools:read:
Open Samen Kopen-pools lezen.
code_requests:write:
Codes aanvragen bij een shop, alleen op verzoek.
Een sleutel mag standaard 60 aanroepen per minuut en 10.000 per dag doen.
Elk antwoord bevat X-RateLimit-Limit en
X-RateLimit-Remaining. Kom je erboven, dan krijg je
status 429 met Retry-After: het aantal seconden tot je
weer mag.
Alle antwoorden zijn JSON. Tijden zijn ISO 8601 met tijdzone, bedragen in euro.
Shops zoeken op naam of domein. Zonder zoekterm de shops met de hoogste score, per pagina.
q: Zoekterm, optioneel.page: Paginanummer, optioneel.Recht: merchants:read
Eén shop met profiel, actieve codes en deals, en het kortingsritme onder `rhythm` (of null bij te weinig historie).
Recht: merchants:read
Actieve codes en deals van één shop, in de volgorde van de shoppagina.
Recht: coupons:read
Codes zoeken, of de nieuwste publieke codes, per pagina.
q: Zoekterm, optioneel.exclusive: Met 1 alleen codes die je alleen via ons krijgt.page: Paginanummer, optioneel.Recht: coupons:read
Eén code met de nieuwste controles onder `verification_history`. Met een sleutel staat de code zelf erin, behalve bij codes die we alleen per mail geven.
Recht: coupons:read
Lopende en komende acties, zoals Black Friday, de eerstvolgende eerst.
Recht: coupons:read
Open Samen Kopen-groepen, alleen geteld en nooit per deelnemer.
merchant: Slug van een shop, optioneel.Recht: pools:read
De goedkoopste routes voor een shop en een orderbedrag: welke codes en voordelen samen gaan, en wat je dan betaalt.
merchant: Slug van de shop, verplicht.order_amount: Orderbedrag in euro met een punt als decimaalteken, verplicht.context: Optioneel: new_customer, prepurchase_ok, is_student, memberships, payment_methods.Recht: routes:read
Een code aanvragen bij een shop. Alleen met de scope `code_requests:write`, die je op verzoek krijgt.
merchant_domain: Domein van de webshop, verplicht.email: E-mailadres van wie de code wil, optioneel.Recht: code_requests:write
Stand en tijdlijn van één aanvraag, zonder adressen en zonder de code.
Recht: code_requests:write
Werk je met een AI-assistent die MCP kent, zoals Claude of ChatGPT, dan kun je dezelfde gegevens als tools aanbieden. De server spreekt Streamable HTTP op dit adres:
https://kodari.nl/mcp
Geef je sleutel mee in dezelfde header als bij de API. Elke tool is een aanroep van de API: dezelfde rechten, dezelfde limieten en dezelfde links, en hij telt mee in je gebruik. Zonder sleutel werkt het ook, met de limiet per IP-adres. Net als in de lijsten van de API staat de code zelf niet in een tool. Stuur mensen via de meegegeven link naar de shop.
Zoekt een Nederlandse webshop op naam of domein. Geeft per shop de slug, naam, domein, categorie en de pagina op Kodari. Gebruik de slug in de andere tools.
Geeft de actieve kortingscodes en deals van een shop, door Kodari gecontroleerd. Elke code heeft bewijs: verification.verified_at (laatste controle), verification.success_rate_7d, confidence en source. Noem de controledatum als je een code laat zien, en stuur mensen naar de shop via de meegegeven link, niet via een eigen link.
Is deze korting goed voor deze shop? Geeft het kortingsritme uit de historie van Kodari: de gebruikelijke korting (typical_low tot typical_high), de beste korting ooit, en per maand hoe vaak er een code was. Vergelijk een code hiermee, of met het rhythm_label bij get_coupons. Is rhythm null, dan is er te weinig historie; zeg dat eerlijk.
Rekent voor een shop en een orderbedrag de goedkoopste route uit: welke code, cashback of cadeaukaart samen werken, wat je dan betaalt, met aannames en zekerheid per route. De bedragen komen uit de rekenmodule van Kodari; neem ze over zoals ze zijn. Stuur de gebruiker naar de shop via de meegegeven link. Gebruik alleen een orderbedrag dat de gebruiker zelf noemde.
Geeft de lopende en komende kortingsacties in Nederland, zoals Black Friday, de eerstvolgende eerst. is_running zegt of een actie nu loopt. Handig om te zeggen of wachten op een actie zin heeft.
Elke code draagt mee waarom we hem tonen:
verification.status: waar de code staat, bijvoorbeeld verified of published.verification.verified_at: wanneer we de code voor het laatst controleerden.verification.success_rate_7d: het deel van de stemmen van de laatste 7 dagen dat zei dat de code werkte. Met minder dan 5 stemmen is dit null: een paar stemmen zeggen te weinig.confidence: hoe zeker we de voorwaarden hebben gelezen, van 0 tot 1.source: waar de code vandaan komt, zoals een feed van een netwerk, de shop zelf of een bezoeker.rhythm_label: hoe de korting zich verhoudt tot wat we bij die shop meestal zien (best_ever, above_usual, usual of below_usual), of null bij te weinig historie. Zie hoe wij meten.
GET /api/v1/coupons/{id} geeft daarnaast de nieuwste
20 controles: hoe (rules,
landing of user_votes),
met welke uitkomst en wanneer. Noem de controledatum als je een code aan iemand laat zien.
Voorbeeld van GET /api/v1/coupons/{id} met een sleutel. De waarden zijn verzonnen:
{
"data": {
"id": 123,
"merchant_id": 45,
"type": "code",
"title": "15% op alles",
"conditions": [
"Vanaf € 50,00 besteding."
],
"discount": {
"type": "percent",
"value": 15,
"max_amount": 25,
"min_order_value": 50
},
"is_exclusive": true,
"requires_code": true,
"code": "VOORBEELD15",
"expires_at": "2026-11-30T22:59:59+00:00",
"verification": {
"status": "verified",
"verified_at": "2026-09-24T08:10:00+00:00",
"success_rate_7d": 0.86,
"votes_7d": 42
},
"confidence": 0.9,
"source": "network",
"rhythm_label": "above_usual",
"link": "https://kodari.nl/uit/voorbeeldshop?code=123&van=api&c=7"
},
"verification_history": [
{
"method": "landing",
"result": "passed",
"checked_at": "2026-09-24T08:10:00+00:00"
},
{
"method": "user_votes",
"result": "passed",
"checked_at": "2026-09-23T19:02:00+00:00"
}
]
}
Elke code heeft een link. Gebruik die als je iemand naar
de shop stuurt. Met een sleutel staat je client erin, zodat we zien welk verkeer via jou komt.
Zo houden we de API gratis voor ontwikkelaars en persoonlijke agents.
errors staat per veld wat er mis is.Retry-After.link uit de API.