Open data: de catalogus als JSON

De gegevens achter KnappeKeuze zijn openbaar op te halen, voor wie er zelf iets mee wil doen: een onderzoek, een eigen overzicht of een assistent die naar ons verwijst.

Adres

GET https://knappekeuze.nl/api/v1/products. Alleen lezen, zonder sleutel, met CORS voor elke website. Het antwoord wordt 10 minuten bewaard; vaker ophalen geeft dus niets nieuws.

Zoeken en filteren

?q=sony xm6 zoekt op naam en merk (elk woord moet voorkomen). ?form=oordopjes of ?form=koptelefoon geeft alleen die soort. Elk model heeft het veld form.

Voor assistenten en chatbots

De beschrijving volgens OpenAPI staat op https://knappekeuze.nl/api/v1/openapi.json. Daarmee kan een assistent, bijvoorbeeld als GPT-actie, onze gegevens rechtstreeks opvragen. Voor assistenten die MCP gebruiken, zoals Claude, is er een alleen-lezen MCP-server op https://knappekeuze.nl/mcp met de tools search_products en compare_products. Noem bij een prijs het tijdstip van de controle, of verwijs naar de productpagina.

Wat erin staat

VeldBetekenis
id, name, brandHet model en het merk.
urlDe productpagina op KnappeKeuze.
price, currencyDe laagste prijs in euro, of null als er geen is.
price_statuslive (laatste 15 minuten gecontroleerd), recent (laatste 24 uur), stale (verouderd: laatste gelukte controle 1 tot 7 dagen oud, geen actuele prijs) of reference (richtprijs, geen winkelprijs).
price_kindDe soort prijs in woorden: actuele prijs (live of recent) of richtprijs. Zet die bij elke prijs die je noemt.
sold_out_everywheretrue als elke winkel die we de afgelopen 24 uur controleerden het model uitverkocht noemt. false zegt niet dat het op voorraad is.
price_checked_at, price_retailerWanneer en bij welke winkel de prijs is gecontroleerd.
kk_scoreDe KnappeKeuze score (1 tot 10, op onze strenge schaal) uit een vaste formule; zie Zo beoordelen we.
scaleDe versie van die strenge schaal (nu 2026-10b); de omrekening staat op /api/meetlat.
scoresDe deelscores voor geluid, noise cancelling, comfort, batterij, microfoon en gebruiksgemak (1 tot 10, dezelfde schaal).
meetlatPer deelscore de meetlat op dezelfde strenge schaal: de score, de marge (plus of min) en hoe goed die onderbouwd is (goed, redelijk of beperkt). null als er voor die deelscore geen meetlatscore is; dan geldt het oordeel van de redactie.
factsPraktische gegevens met bron (gewicht, batterijduur, multipoint, inklappen, kabel, codecs); null betekent onbekend, geen nee.
buy_momentKoopmoment uit onze eigen prijsmetingen, geen voorspelling: good (bijna de laagste prijs), fair (gelijk aan of onder de gebruikelijke prijs) of wait (erboven), met label en het aantal dagen waarmee vergeleken is. null betekent nog niet te zeggen.
upgrade_pageDe pagina “Moet ik upgraden?” als de opvolger van dit model ook in onze catalogus staat, anders null.

Ook als CSV

Voor een spreadsheet: /open-data.csv, dezelfde gegevens als het JSON-adres, één regel per model. Een leeg vakje betekent onbekend, geen nee; ja en nee staan er alleen als een bron het noemt. De kolom price_kind zegt of de prijs een actuele winkelprijs is of een richtprijs.

Alle winkelprijzen van nu, als CSV

Elke actuele prijs die we per winkel bijhouden, één regel per aanbieding: /open-data/prijzen.csv. Met de winkel, de prijs, of hij op voorraad is volgens de winkel, de kleur als de winkelpagina bij één kleur hoort, wanneer we de prijs controleerden (checked_at) en hoe (via: de winkelpagina of de productfeed). Alleen prijzen die we recent controleerden, zonder partnerlinks. Dezelfde prijzen als op de productpagina's. Als dataset, met wat er nu in staat: Dataset: gemeten winkelprijzen.

Wat een betere score kost, als CSV

Dezelfde berekening als op de pagina's per eigenschap, zoals Wat kost goede noise cancelling echt?, per soort en eigenschap: /open-data/prijspunten.csv. Per regel het aantal modellen met een prijs (n), de mediaanprijs van het beste derde (top_eur) en van het slechtste derde (low_eur), en het verschil (diff_eur), in euro, volgens de prijzen in onze catalogus. Alleen modellen met een eigen pagina; koptelefoons en oordopjes apart.

Om naar te verwijzen is er een vast adres per maand: /open-data/prijspunten-JJJJ-MM.csv. Dat is de laatste week die we in die maand vastlegden (de kolom week is de maandag van die week). Zolang de maand loopt, schuift die mee; daarna blijft hij zo. Een maand zonder vastgelegde week geeft 404.

Dossiers in een open formaat

Per model staat elke bewering waar onze scores op rusten, met de bron en de datum: GET https://knappekeuze.nl/api/v1/dossiers/<id>, met de lijst van modellen op /api/v1/dossiers. Het zijn dezelfde beweringen als onder “Wat bronnen zeggen” op de productpagina. Het formaat (knappekeuze-dossier/1) staat beschreven als JSON Schema op /api/v1/dossier.schema.json.

VeldBetekenis
kindspecificatie: wat de fabrikant opgeeft; meting: een meting van een lab of test; oordeel: het oordeel van een reviewer; eigen_test: een test van KnappeKeuze zelf
aspectWaar de bewering over gaat: sound, anc, comfort, battery, mic, use, connectivity, build, other.
statementWat de bron zegt, samengevat door de redactie in eigen woorden.
valueEen waarde uit de bewering, als die er is, of null.
sourceDe bron: adres, titel, uitgever, soort en datum (als die bekend is). Werkt de link niet meer, dan staat erbij sinds wanneer.
added_atWanneer de bewering in het dossier kwam.

Een eigenschap die geen bron noemt, staat niet in het dossier: dat is onbekend, geen nee. Publiceer je zelf tests van koptelefoons? Gebruik gerust hetzelfde formaat. Dan kan iedereen je bevindingen met bron en datum lezen, en kunnen sites ze naast elkaar leggen.

Trends per jaar van verschijnen staan op De koptelefoonmarkt in cijfers.

Goed om te weten

  • Prijzen veranderen. Noem een prijs altijd met het tijdstip van controle, of verwijs naar de productpagina.
  • Een score is ons oordeel op basis van tests en bronnen; hoe we tot een score komen, staat op Zo beoordelen we.
  • Staat er iets fout, dan passen we het aan; zie Correcties en updates.
  • Schrijf je over KnappeKeuze of wil je samenwerken? Zie Pers en partners.
  • Een korte beschrijving van de site voor taalmodellen staat in /llms.txt.
  • Licentie: CC BY 4.0. Je mag de gegevens gebruiken, ook commercieel en in je eigen overzicht, als je KnappeKeuze noemt met een link naar knappekeuze.nl (of naar de productpagina). Dat geldt voor onze scores, deelscores, prijsmetingen en de catalogus als geheel; niet voor productfoto's en niet voor de teksten van de bronnen waarnaar we linken: die zijn van hun makers.
  • Liever een kant-en-klaar stukje voor je eigen pagina, zoals de keuzehulp of een grafiek? Zie Keuzehulp en grafieken op je eigen site.
KnappeKeuze · persoonlijke keuzehulp

Vind jouw beste match in ongeveer 8 korte vragen.Welke koptelefoon past bij jou?

Geen technische kennis nodig: eerst waarvoor je hem gebruikt, dan je budget en wat voor jou telt.Hooguit 8 korte vragen. Je krijgt uitleg waarom een model past.

✓ Budget is een harde grens✓ Persoonlijke weging✓ Uitleg bij je uitkomst

Onafhankelijk: winkels betalen niet voor een plek · elke score met bron · prijzen met tijdstip van controle · Winkels betalen niet voor een plek. Zo beoordelen we

Populaire keuzes

Een snelle selectie uit de productdatabase. Gebruik de keuzehulp als je persoonlijk advies wilt.

Eigen KnappeKeuze scoreGebaseerd op relevante producteigenschappen.
ReviewscoreTestsites en gebruikersreviews samen, elk met bron.
Eerlijke prijzenPer winkel, met het tijdstip van de laatste controle.
Persoonlijke matchDe keuzehulp past de weging aan op jouw profiel.

KnappeKeuze scoreons eigen oordeel
Reviewscoretestsites en kopers

Plus- en minpunten

Sterke punten

    Aandachtspunten

      Specificaties

      Specificaties laden…