Stamboomzoeker: van één akte naar je overgrootouders
Begin bij een geboorteakte en laat de app via de huwelijksakten generatie na generatie terugzoeken in honderden Nederlandse archieven, met een link naar de inventaris van het Nationaal Archief.
geef_project("stamboomzoeker")geef_bron("open-archieven")geef_bron("nationaal-archief")
Ik heb het project, de geteste aanroepen en de valkuilen. Ik bouw een app met Open Archieven en Nationaal Archief, archiefinventarissen en scans. Zo kan het eruitzien:
Dit bouw je zelf. Kopieer de prompt naar Claude, ChatGPT of Cursor, met de MCP-server aan, of volg de stappen hieronder.
akte 1277 · AlleGroningers
4 generaties in ±10 s
Dit is een mockup, geen werkende versie, met de akten uit onze proefdraai van 16 oktober 2026 via Open Archieven (AlleGroningers) en het Nationaal Archief; beroepen staan zoals ze in de akte zijn gespeld. De MCP-server zet je aan met het adres op Voor AI.
Voor wie
Iedereen die zijn familiegeschiedenis wil uitzoeken, genealogische verenigingen, docenten geschiedenis en makers van een familieboek.
Wat je krijgt
Een app waarin je een naam, jaar en plaats invult en een boom terugkrijgt: ouders, grootouders en overgrootouders, elk met de huwelijksakte, datum, plaats, beroep en het archief waar de akte ligt. In de proefdraai op 16 oktober 2026 met de historicus Johan Huizinga (geboren 7 december 1872 in Groningen) vond het script in ongeveer 10 seconden vier generaties: zijn ouders Dirk Huizinga (hoogleraar) en Jacoba Tonkens, getrouwd 14 december 1866 in Groningen; zijn grootouders Jacob Huizinga (doopsgezind predikant) en Aaltje Meihuizen (Hoogezand, 1838) en Johannes Tonkens en Anna Jacoba Brugsma (Groningen, 1836); en vier van de acht overgrootouderparen. Twee paren werden niet gevonden. Voor de achternaam Huizinga gaf het Nationaal Archief via Open Archieven 705 vermeldingen (tewerkgestelden, stamboeken, verzoekschriften, beheersdossiers), en een vermelding leidt via het toegangsnummer naar de inventaris (2.09.16.06, inventarisnummer 94713).
Records in Open Archieven per Nederlands archief: het meest Brabants Historisch Informatie Centrum (25.449.700 records), dan Stadsarchief Amsterdam en Stadsarchief Rotterdam
Records in Open Archieven per Nederlands archief, oktober 2026, in records. Totaal: 286.471.667; de grootste 12 van 154 categorieën staan in de grafiek. Brabants Historisch Informatie Centrum is 9% van het totaal. Alleen Nederlandse archieven en verenigingen (ISIL-code NL- of een website in het nl-domein); alle 200 deelnemers samen hebben 368.619.131 records.
Zo zou je kunnen starten6 stappen
- 1
Zoek de eerste akte met naam, jaar en plaats
records/search.json zoekt in 368 miljoen vermeldingen. Zet het jaar in de naam ('Johan Huizinga 1872'), of een periode ('1839-1841'), en filter met eventplace. Elke vermelding is een persoon in een akte: één akte levert dus meerdere treffers (kind, vader, moeder). Kies de rij met eventtype Geboorte en relationtype Kind. Open Archieven vraagt een beschrijvende User-Agent en staat 4 verzoeken per seconde per IP toe; robots.txt staat alles toe.
https://api.openarchieven.nl/1.1/records/search.json?name=Johan Huizinga 1872&eventplace=Groningen&number_show=10&lang=nl
{"query":{"eventplace":"Groningen","name":"Johan Huizinga 1872","only_results_with_scans":false,"start":0,"number_show":10,"sort":1,"language":"nl"}, "response":{"number_found":1,"docs":[{"pid":"Person:ab7cee1b-d98d-36df-e5d9-9fd355dbbfe4", "identifier":"c6dfd867-9f3e-a0b1-e749-ac35bce34763","archive_code":"gra","archive":"AlleGroningers", "personname":"Johan Huizinga","relationtype":"Kind","eventtype":"Geboorte", "eventdate":{"day":7,"month":12,"year":1872},"eventplace":["Groningen"],"sourcetype":"BS Geboorte", "url":"https:\/\/www.openarchieven.nl\/gra:c6dfd867-9f3e-a0b1-e749-ac35bce34763"}]}} - 2
Lees de akte: wie zijn de ouders?
records/show.json met archive (de archive_code) en identifier geeft de akte in het A2A-model: Person (de personen), Event (gebeurtenis) en RelationEP (wie welke rol had). Koppel RelationEP.PersonKeyRef aan Person['@pid']. Let op: bij één persoon is Person een object, bij meer een lijst. Source geeft het register, aktenummer en een link naar de scan (SourceAvailableScans).
https://api.openarchieven.nl/1.1/records/show.json?archive=gra&identifier=c6dfd867-9f3e-a0b1-e749-ac35bce34763&lang=nl
{"Person":[{"@pid":"Person:ab7cee1b-…","PersonName":{"PersonNameFirstName":"Johan","PersonNameLastName":"Huizinga"},"Gender":"Man","BirthDate":{"Year":"1872","Month":"12","Day":"7"},"BirthPlace":{"Place":"Groningen"}}, {"@pid":"Person:f22a0acd-…","PersonName":{"PersonNameFirstName":"Dirk","PersonNameLastName":"Huizinga"},"Gender":"Onbekend","Age":{"PersonAgeLiteral":"32 jaar"},"Profession":"hoogleeraar"}, {"@pid":"Person:feab076f-…","PersonName":{"PersonNameFirstName":"Jacoba","PersonNameLastName":"Tonkens"},"Gender":"Onbekend"}], "Event":{"@eid":"Event1","EventType":"Geboorte","EventDate":{"Year":"1872","Month":"12","Day":"7"},"EventPlace":{"Place":"Groningen"}}, "RelationEP":[{"PersonKeyRef":"Person:ab7cee1b-…","RelationType":"Kind"},{"PersonKeyRef":"Person:f22a0acd-…","RelationType":"Vader"},{"PersonKeyRef":"Person:feab076f-…","RelationType":"Moeder"}], "Source":{"SourceType":"BS Geboorte","SourceReference":{"Place":"Groningen","InstitutionName":"AlleGroningers","Book":"Geboorteregister 1872","DocumentNumber":"1277"}, "SourceAvailableScans":{"Scan":{"Uri":"https:\/\/images.memorix.nl\/gra\/thumb\/640x480\/51c90b6f-713e-12dd-6399-65bbab84c4d5.jpg", …}}, …}} - 3
Zoek de huwelijksakte van de ouders
Twee namen met & ertussen zoekt akten waarin beide voorkomen. Neem de rij met eventtype Huwelijk (burgerlijke stand, vanaf 1811) of Trouwen (kerkboeken) en relationtype Bruidegom, met een jaar vóór de geboorte van het kind. In een huwelijksakte staan de ouders van bruid en bruidegom ('Vader van de bruidegom', 'Moeder van de bruid'): zo klim je een generatie hoger. Spelling verschilt per akte: in 1866 heet de vader van de bruidegom 'Jakob', in zijn eigen huwelijksakte van 1838 'Jacob'. Zoek dan opnieuw op alleen de achternamen ('Huizinga & Meihuizen') en controleer de voornamen in de akte.
https://api.openarchieven.nl/1.1/records/search.json?name=Huizinga %26 Meihuizen&number_show=100&lang=nl
{"query":{"name":"Huizinga & Meihuizen", …},"response":{"number_found":53,"docs":[ … {"personname":"Jacob Huizinga","relationtype":"Bruidegom","eventtype":"Huwelijk","eventdate":{"day":21,"month":8,"year":1838}, "eventplace":["Hoogezand"],"archive":"AlleGroningers","identifier":"1f5d4986-099e-f336-ea40-b1cf4e487bf9", …}, {"personname":"Jakob Huizinga","relationtype":"Vader van de bruidegom","eventtype":"Huwelijk","eventdate":{"day":14,"month":12,"year":1866}, "eventplace":["Groningen"], …}, …]}} - 4
Zoek dezelfde familie in de archieven van het Nationaal Archief
Het Nationaal Archief levert zijn persoonsindexen ook aan Open Archieven (archive_code ghn; ghn en rzh hebben ISIL-code NL-HaNA). Daar staan andere soorten bronnen dan akten: militaire stamboeken, verzoekschriften, tewerkgestelden in de Tweede Wereldoorlog, dossiers van het Nederlands Beheersinstituut en het CABR. Sommige voornamen zijn afgeschermd met ####.
https://api.openarchieven.nl/1.1/records/search.json?name=Huizinga&archive_code=ghn&number_show=5&lang=nl
{"query":{"archive":"Nationaal Archief","name":"Huizinga", …},"response":{"number_found":705,"docs":[ {"personname":"#### Huizinga","relationtype":"Ondertekenaar","eventtype":"Handtekening","eventdate":{"year":1878},"eventplace":["'s-Gravenhage"],"sourcetype":"Verzoekschriften", …}, … {"identifier":"5f312b07-9c20-447e-e053-09f0900afd8f","archive_code":"ghn","personname":"A. Huizinga","relationtype":"Geregistreerde", "eventtype":"Registratie","eventplace":["'s-Gravenhage"],"sourcetype":"Beheersdossier", "url":"https:\/\/www.openarchieven.nl\/ghn:5f312b07-9c20-447e-e053-09f0900afd8f"}]}} - 5
Van vermelding naar inventaris (OAI-PMH)
In records/show.json staat bij een vermelding van het Nationaal Archief het toegangsnummer in Source.SourceReference.Archive (hier 2.09.16.06) en het inventarisnummer in RegistryNumber (94713). GetRecord met dat toegangsnummer geeft de hele inventaris als EAD. De identifier van de vermelding (5f312b07-9c20-…) komt in de EAD terug als handle (hdl.handle.net/10648/5f312b07-9c20-…): daarmee vind je het juiste inventarisnummer met zijn titel. Let op de grootte: deze inventaris is 9,8 MB. Zet het adres met het uitroepteken in de shell tussen enkele aanhalingstekens.
https://service.archief.nl/gaf/oai/!open_oai.OAIHandler?verb=GetRecord&metadataPrefix=oai_ead&identifier=2.09.16.06
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"><responseDate>2026-10-16T21:41:43Z</responseDate> <request verb="GetRecord" identifier="2.09.16.06" metadataPrefix="oai_ead">…</request><GetRecord><record><header><identifier>2.09.16.06</identifier> <datestamp>2024-10-25T11:09:41Z</datestamp>…</header><metadata><ead …> <titleproper>Inventaris van het archief van het Nederlands Beheersinstituut, beheersdossiers beginnend met de letter H</titleproper> … <extref href="http://creativecommons.org/publicdomain/zero/1.0/" …>cc0</extref> … <c level="file"><did><unitid identifier="54347153">94713</unitid> <unitid audience="internal" type="handle">http://hdl.handle.net/10648/5f312b07-9c20-447e-e053-09f0900afd8f</unitid> <unittitle>Huizinga, A., Zuidhorn</unittitle></did></c> - 6
Bouw de boom en toon de bronnen
Herhaal stap 3 per paar en per generatie; elke generatie verdubbelt het aantal paren. Toon bij elke persoon de akte (datum, plaats, archief, register) en een link naar de scan of naar openarchieven.nl. Zeg eerlijk wanneer een paar niet gevonden is en waarom dat kan: kerkboeken van vóór 1811 noemen zelden ouders, sommige archieven doen niet mee, of de naam is anders gespeld. Bewaar de antwoorden in een cache: dezelfde akte komt vaak meerdere keren langs.
Hoe de bronnen samenkomen
- Open ArchievenNationaal Archief, archiefinventarissen en scansvia
toegangsnummer (Source.SourceReference.Archive, bijvoorbeeld 2.09.16.06) en de identifier, die in de EAD terugkomt als handleOpen Archieven maakt de personen in archieven van het Nationaal Archief doorzoekbaar op naam; de OAI-PMH-dienst van het Nationaal Archief geeft de inventaris waar die vermelding in zit, met de titel van het dossier en de rest van het archief.
Laat AI het bouwen
Plak deze prompt in Claude, ChatGPT, Cursor of Lovable. Hij noemt de echte endpoints, de koppelsleutels en de valkuilen, zodat de assistent meteen werkende code schrijft. Controleer de uitkomst altijd met de bron zelf.
Bouw een stamboom-app (Next.js of één HTML-bestand met JavaScript) waarin ik naam, geboortejaar en plaats invul en een boom terugkrijg van maximaal drie generaties terug, met bij elke persoon de akte en het archief.
Data:
1. Open Archieven, zonder sleutel, CORS open, OpenAPI: https://api.openarchieven.nl/openapi.yaml
- Zoeken: https://api.openarchieven.nl/1.1/records/search.json?name=Johan%20Huizinga%201872&eventplace=Groningen&number_show=100&lang=nl
- Akte: https://api.openarchieven.nl/1.1/records/show.json?archive=<archive_code>&identifier=<identifier>&lang=nl
2. Nationaal Archief, OAI-PMH: https://service.archief.nl/gaf/oai/!open_oai.OAIHandler?verb=GetRecord&metadataPrefix=oai_ead&identifier=<toegangsnummer>
Werkwijze:
- Zoek de geboorteakte: eventtype 'Geboorte', relationtype 'Kind'. Lees met show.json de ouders (RelationType 'Vader' en 'Moeder').
- Zoek per paar de huwelijksakte met name='<man> & <vrouw>': eventtype 'Huwelijk' of 'Trouwen', relationtype 'Bruidegom', jaar vóór de geboorte van het kind. Lees daarin 'Vader van de bruidegom', 'Moeder van de bruidegom', 'Vader van de bruid', 'Moeder van de bruid' en ga zo een generatie hoger.
- Lukt dat niet, zoek dan op alleen de twee achternamen en controleer in de akte of de voornamen van bruid en bruidegom ongeveer gelijk zijn (Jakob en Jacob).
Wat je moet weten:
- Maximaal 4 verzoeken per seconde per IP, anders HTTP 429. Wacht 0,3 seconde tussen aanroepen en cache alles.
- Stuur een beschrijvende User-Agent mee ('mijn-stamboom/1.0 (+jij@voorbeeld.nl)').
- number_show maximaal 100; start voor de volgende pagina; start boven 10.000 geeft HTTP 400 (geen diepe paginering).
- A2A: Person en RelationEP zijn een object bij één persoon en een lijst bij meer. Koppel RelationEP.PersonKeyRef aan Person['@pid']. Namen: PersonNameFirstName, PersonNamePatronym, PersonNamePrefixLastName ('van der'), PersonNameLastName.
- Leeftijd staat als tekst ('32 jaar'), beroep in Profession met oude spelling ('hoogleeraar').
- Eén vermelding is een persoon in een akte, geen persoon. Dezelfde akte kan bij twee archieven staan (een regionaal archief en een gemeentearchief): ontdubbel op datum, plaats en namen.
- Sommige voornamen zijn afgeschermd met '####'. Soms staat er HTML in de data ('Internerings­kaarten'): decodeer entiteiten.
- Vóór 1811 (kerkboeken, eventtype 'Trouwen' of 'Doop') staan ouders zelden in de akte; daar stopt de boom vaak.
- Nationaal Archief: archive_code 'ghn'. In show.json staat het toegangsnummer in Source.SourceReference.Archive en het inventarisnummer in RegistryNumber. De EAD van GetRecord kan bijna 10 MB zijn: haal die op de server op en bewaar hem. De identifier van de vermelding staat in de EAD als handle (hdl.handle.net/10648/<identifier>).
Uitkomst: een boom (D3 tree of eenvoudige geneste kaarten) met per persoon naam, beroep, datum en plaats van geboorte of huwelijk, en een bronregel (archief, register, aktenummer, link). Onderaan 'Andere vermeldingen bij het Nationaal Archief' met per soort bron het aantal en een link naar de inventaris. Paren zonder gevonden akte grijs, met de reden.
Probeer het zelf
De kern van het project in een klein script. Nodig: Python 3.10+ en requests. Getest op 2026-10-16; hieronder de echte uitvoer van die proefdraai.
# Stamboomzoeker: van één geboorteakte terug naar ouders, grootouders en overgrootouders.
# Bronnen: Open Archieven (records/search en records/show, A2A-model) en het Nationaal Archief (OAI-PMH). Geen sleutel.
import re, time, requests
UA = {"User-Agent": "mijn-stamboom/1.0 (+jij@voorbeeld.nl)"} # Open Archieven vraagt een beschrijvende user-agent
OA = "https://api.openarchieven.nl/1.1"
GENERATIES = 3
def oa(pad, **params): # maximaal 4 verzoeken per seconde per IP: wacht steeds 0,3 s
time.sleep(0.3)
r = requests.get(f"{OA}/{pad}", params={**params, "lang": "nl"}, headers=UA, timeout=60)
r.raise_for_status()
return r.json()
def lijst(x): # A2A: één persoon is een object, meer personen een lijst
return x if isinstance(x, list) else [x]
def naam(p):
n = p.get("PersonName", {})
return " ".join(x for x in [n.get("PersonNameFirstName"), n.get("PersonNamePatronym"),
n.get("PersonNamePrefixLastName"), n.get("PersonNameLastName")] if x).replace(" ", " ")
def rollen(doc): # haal de akte op en geef {rol: persoon}
akte = oa("records/show.json", archive=doc["archive_code"], identifier=doc["identifier"])
personen = {p["@pid"]: p for p in lijst(akte["Person"])}
return {r["RelationType"]: personen[r["PersonKeyRef"]] for r in lijst(akte["RelationEP"])}, akte
def huwelijk(man, vrouw, voor): # huwelijksakte van een paar, getrouwd uiterlijk in het jaar 'voor'
def zoek(vraag):
docs = oa("records/search.json", name=vraag, number_show=100)["response"]["docs"]
return sorted((d for d in docs if d["eventtype"] in ("Huwelijk", "Trouwen") and d["relationtype"] == "Bruidegom"
and d.get("eventdate", {}).get("year", 9999) <= voor), key=lambda d: -d["eventdate"]["year"])
# Spelling verschilt per akte (Jakob/Jacob): lukt de volledige naam niet, zoek dan op de twee achternamen
# en controleer in de akte zelf of de voornamen van bruidegom en bruid ongeveer kloppen.
for vraag in (f"{man} & {vrouw}", f"{man.split()[-1]} & {vrouw.split()[-1]}"):
for doc in zoek(vraag)[:5]:
rr, _ = rollen(doc)
if naam(rr["Bruidegom"])[:2] == man[:2] and naam(rr.get("Bruid", {}))[:2] == vrouw[:2]:
return doc, rr
return None, None
# 1. Begin bij een geboorteakte: naam, jaar en plaats maken de zoekvraag scherp.
start = oa("records/search.json", name="Johan Huizinga 1872", eventplace="Groningen")["response"]["docs"]
geboorte = next(d for d in start if d["eventtype"] == "Geboorte" and d["relationtype"] == "Kind")
r, akte = rollen(geboorte)
print(f"{naam(r['Kind'])}, geboren {geboorte['eventdate']['day']}-{geboorte['eventdate']['month']}-{geboorte['eventdate']['year']} "
f"in {geboorte['eventplace'][0]} ({geboorte['archive']}, {akte['Source']['SourceReference'].get('Book')})")
print(f" vader {naam(r['Vader'])} ({r['Vader'].get('Profession', '?')}), moeder {naam(r['Moeder'])}")
# 2. Klim per generatie omhoog via de huwelijksakten: daarin staan de ouders van bruid en bruidegom.
paren = [(naam(r["Vader"]), naam(r["Moeder"]), geboorte["eventdate"]["year"])]
for gen in range(1, GENERATIES + 1):
volgende = []
for man, vrouw, voor in paren:
doc, rr = huwelijk(man, vrouw, voor)
if not doc:
print(f"{' ' * gen}{man} x {vrouw}: geen huwelijksakte gevonden")
continue
d = doc.get("eventdate", {})
print(f"{' ' * gen}{naam(rr['Bruidegom'])} x {naam(rr['Bruid'])}: getrouwd {d.get('day', '?')}-{d.get('month', '?')}-{d.get('year', '?')} "
f"in {doc['eventplace'][0]} ({doc['archive']})")
for kant in ("bruidegom", "bruid"):
v, m = rr.get(f"Vader van de {kant}"), rr.get(f"Moeder van de {kant}")
if v and m:
print(f"{' ' * gen} ouders {kant}: {naam(v)} ({v.get('Profession', '?')}) en {naam(m)}")
volgende.append((naam(v), naam(m), d.get("year", voor)))
paren = volgende
# 3. Dezelfde achternaam in de archieven van het Nationaal Archief (archive_code ghn), per soort bron.
res = oa("records/search.json", name="Huizinga", archive_code="ghn", number_show=100)["response"]
soorten = {}
for d in res["docs"]:
soorten[d["sourcetype"]] = soorten.get(d["sourcetype"], 0) + 1
print(f"\nNationaal Archief via Open Archieven: {res['number_found']} vermeldingen van Huizinga; eerste 100 per soort:")
print(" " + ", ".join(f"{k} {v}" for k, v in sorted(soorten.items(), key=lambda x: -x[1])))
# 4. Van een vermelding naar de inventaris: het toegangsnummer staat in SourceReference.Archive.
doc = next(d for d in res["docs"] if d["sourcetype"] == "Beheersdossier")
_, akte = rollen(doc)
toegang = akte["Source"]["SourceReference"]["Archive"]
oai = requests.get("https://service.archief.nl/gaf/oai/!open_oai.OAIHandler", headers=UA, timeout=120,
params={"verb": "GetRecord", "metadataPrefix": "oai_ead", "identifier": toegang})
titel = re.search(r"<titleproper[^>]*>([^<]+)", oai.text).group(1).strip()
guid = doc["identifier"]
inv = re.search(rf"<unitid[^>]*>(\d+)</unitid>\s*<unitid[^>]*>[^<]*{guid}</unitid>\s*<unittitle>([^<]+)", oai.text)
print(f"\n{doc['personname']} ({doc['sourcetype']}): toegang {toegang}, {len(oai.content) / 1e6:.1f} MB EAD")
print(f" {titel}")
print(f" inventarisnummer {inv.group(1)}: {inv.group(2)}")
Johan Huizinga, geboren 7-12-1872 in Groningen (AlleGroningers, Geboorteregister 1872)
vader Dirk Huizinga (hoogleeraar), moeder Jacoba Tonkens
Dirk Huizinga x Jacoba Tonkens: getrouwd 14-12-1866 in Groningen (AlleGroningers)
ouders bruidegom: Jakob Huizinga (Predikant) en Aaltje Meihuizen
ouders bruid: Johannes Tonkens (hoofdonderwijzer) en Anna Jacoba Brugsma
Jacob Huizinga x Aaltje Meihuizen: getrouwd 21-8-1838 in Hoogezand (AlleGroningers)
ouders bruidegom: Dirk Huizinga (doopsgez. predikant) en Trijntje Jurjens Coolman
ouders bruid: Samuel Meihuizen (winkelier) en Grietje Romkes van der Baan
Johannes Tonkens x Anna Jacoba Brugsma: getrouwd 5-5-1836 in Groningen (AlleGroningers)
ouders bruidegom: Lammert Tonkens (?) en Jacoba van Ulphen
ouders bruid: Albert Brugsma (geregtsdienaar) en Geesje Jans Popkes
Dirk Huizinga x Trijntje Jurjens Coolman: geen huwelijksakte gevonden
Samuel Meihuizen x Grietje Romkes van der Baan: getrouwd 29-1-1814 in Sappemeer (AlleGroningers)
ouders bruidegom: Samuel Meihuizen (koopman) en Sijntje Jacobs Mulder
ouders bruid: Romke Douwes van der Baan (koopman) en Aaltje Koerts Verveld
Lammert Tonkens x Jacoba van Ulphen: getrouwd 9-11-1800 in Kerkelijke gemeente Groningen (AlleGroningers)
Albert Brugsma x Geesje Jans Popkes: geen huwelijksakte gevonden
Nationaal Archief via Open Archieven: 705 vermeldingen van Huizinga; eerste 100 per soort:
Tewerkgesteldenregistratie 31, Stamboeken 18, Verzoekschriften 11, Beheersdossier 10, CABR dossiers 7, Persoonsdossiers 6, Registratie onderscheidingen 6, Personeelsdossier 4, Staat van dienst 3, Personeelsregister 1, Stamkaarten 1, Landverhuizers 1, Internerings­kaarten 1
A. Huizinga (Beheersdossier): toegang 2.09.16.06, 9.8 MB EAD
Inventaris van het archief van het Nederlands Beheersinstituut, beheersdossiers beginnend met de letter H
inventarisnummer 94713: Huizinga, A., Zuidhorn
Waar het misgaat
- Spelling van namen verschilt per akte. De vader van de bruidegom heet in 1866 'Jakob Huizinga', in zijn eigen huwelijksakte van 1838 'Jacob'. Een exacte zoekvraag vond niets; op achternamen ('Huizinga & Meihuizen') wel. Controleer daarna in de akte of de voornamen van bruid en bruidegom kloppen, anders koppel je een verkeerde Jacob.
- Een treffer is een persoon in een akte, geen persoon. Eén geboorteakte geeft drie treffers (kind, vader, moeder) en een huwelijksakte zes. Tel nooit treffers als mensen.
- In het A2A-model zijn Person en RelationEP een object als er één persoon is en een lijst als er meer zijn. Code die altijd een lijst verwacht, breekt op akten met één persoon (zoals de beheersdossiers van het Nationaal Archief).
- Vóór 1811 zijn er alleen kerkboeken (eventtype 'Trouwen', 'Doop'). Die noemen zelden de ouders: het huwelijk van Lammert Tonkens en Jacoba van Ulphen (Groningen, 1800) werd gevonden, maar zonder ouders. Daar stopt de boom.
- Open Archieven staat 4 verzoeken per seconde per IP toe (HTTP 429 daarboven), en start boven 10.000 geeft HTTP 400. Een boom van drie generaties kost al gauw 20 tot 40 aanroepen: wacht tussen aanroepen en cache.
- Een inventaris van het Nationaal Archief kan groot zijn: GetRecord voor 2.09.16.06 gaf 9,8 MB EAD met 21.791 beschreven onderdelen. Haal hem niet in de browser op voor elke klik.
- Data zijn niet overal schoon: voornamen afgeschermd met '####', HTML-entiteiten in brontypen ('Internerings­kaarten'), beroepen in oude spelling ('hoogleeraar', 'geregtsdienaar'), patroniemen in de voornaam ('Grietje Romkes').
Verder bouwen
- Zoek per persoon ook de overlijdensakte (records/match.json met naam en geboortejaar geeft geboorte- en overlijdensakten) en zet levensjaren in de boom.
- Zet de plaatsen van alle akten op een kaart en laat zien hoe de familie verhuisde (hier: van Lagemeeden en Hoogezand naar Groningen).
- Gebruik related/weather.json voor het weer op de trouwdag en stats/familynames.json voor waar de achternaam het vaakst voorkomt.
- Laat voor militaire stamboeken en andere vermeldingen bij het Nationaal Archief de scans zien: in de EAD staat bij inventarisnummers met scans een METS-bestand met de beelden.
Meer met deze data
Archiefinventarissen van het Nationaal Archief naar jaar van de laatste wijziging: 2024 is het grootste deel, 58% in oktober 2026
Verdeling in oktober 2026: 2024 58%, 2025 31%, 2026 11%. Totaal: 7.411 inventarissen.
De bronnen2
Open Archieven
Open Archieven van Coret Genealogie bundelt de genealogische gegevens van 200 archieven en verenigingen, vooral Nederlandse, ook Belgische en Franse. Op 16 oktober 2026 telde de statistiek-API 368.475.032 records over 199 soorten bronnen: overlijdens-, geboorte- en huwelijksakten van de burgerlijke stand, bevolkingsregisters, doop-, trouw- en begraafregisters, notariële akten en meer. Een REST-API zonder sleutel, SPARQL, OAI-PMH en bestandsexports onder CC BY 4.0.

Nationaal Archief, archiefinventarissen en scans
Het Nationaal Archief zet zijn archiefinventarissen als open data (CC0) klaar via OAI-PMH, in EAD-XML. Op 16 oktober 2026 waren dat 7.411 inventarissen (7.442 sets), elk met de beschrijving van het archief en de inventarisnummers. Waar scans zijn, staat per inventarisnummer een METS-bestand met links naar de beelden (publiek domein of CC0). Inventarissen die door derden zijn gemaakt (2,8 procent) zijn geen open data.
Dashboard asielopvang: landelijk en per gemeente
Monumentenwandeling door je eigen buurt
Nederland naast Europa: een vergelijker voor elke indicator