API-documentatie
Leg webpagina's programmatisch vast als onafhankelijk verifieerbaar bewijs. Eén token,
POST een URL, download een bewijspakket.zip — te integreren in je
dossier-, DMS- of compliance-workflow.
Authenticatie
Alle /api/*-endpoints gebruiken een Bearer-token. Je token krijg je bij het
aanmaken van een gratis account (of in je dashboard). Verstuur het als header:
Authorization: Bearer <jouw-token>
https://vault.bewijskluis.nl. Alle bodies en antwoorden zijn JSON.Een pagina vastleggen
POST /api/captures
Zet een capture in de wachtrij. De worker legt de pagina vast (HTML, DOM, screenshot, netwerkverkeer), berekent een SHA-256-manifest, vraagt een RFC-3161-tijdstempel aan en verankert de hash in Bitcoin.
| Veld | Type | Omschrijving |
|---|---|---|
url | string | Publieke http(s)-URL. Privé/interne adressen worden geweigerd (SSRF-bescherming). |
label | string? | Optioneel — bijv. een zaaknummer. |
curl -X POST https://vault.bewijskluis.nl/api/captures \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://voorbeeld.nl/voorwaarden","label":"zaak-2026-012"}'
# → {"id":"01KWM…","status":"queued"}
Snel vastleggen (bladwijzer)
Sleep deze knop naar je bladwijzerbalk. Klik hem op elke pagina die je wilt vastleggen — je dashboard opent met de URL al ingevuld; één klik op Vastleggen en het bewijs staat vast.
Werkt in elke browser: sleep de knop naar je bladwijzer-/favorietenbalk. (Je moet ingelogd zijn in de Vault.)
Status opvragen
GET /api/captures/:id
Geeft de status en metadata. Poll tot status = completed
(of failed).
curl https://vault.bewijskluis.nl/api/captures/01KWM… \
-H "Authorization: Bearer $TOKEN"
# → {"id":"01KWM…","status":"completed","manifest_sha256":"…",
# "tsa_status":"ok","ots_status":"bitcoin","completed_at":"…"}
Lijst van al je captures: GET /api/captures?limit=100.
Een bestand verzegelen
POST /api/seals
Verzegel een bestand (PDF, afbeelding, document) in plaats van een URL — hetzelfde
verifieerbare pakket, alleen de SHA-256 + RFC-3161-tijdstempel + Bitcoin-anker (het bestand wordt nooit
geopend of uitgevoerd, alleen gehasht). Stuur de ruwe bytes als
application/octet-stream, met de bestandsnaam in de
X-Filename-header. Max 25 MB.
curl -X POST https://vault.bewijskluis.nl/api/seals \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/octet-stream" \
-H "X-Filename: contract.pdf" \
--data-binary @contract.pdf
# → {"id":"01KWT…","status":"queued","kind":"seal","filename":"contract.pdf"}
Daarna identiek aan een capture: poll GET /api/captures/:id, download het
pakket en verifieer het offline. Verzegelde bestanden zijn privé — een publieke
deel-link wordt ervoor geweigerd (403).
Bewijs downloaden
| Endpoint | Levert |
|---|---|
GET /api/captures/:id/package | Het bewijspakket.zip (bundle + timestamp.tsr + bundle.zip.ots + verklaring). |
GET /api/captures/:id/court-pdf | Court-ready PDF met alle feiten, hashes en verificatie-instructies. |
GET /api/captures/:id/screenshot | De full-page screenshot (PNG). |
curl -OJ https://vault.bewijskluis.nl/api/captures/01KWM…/package \ -H "Authorization: Bearer $TOKEN"
Publiek delen
POST /api/captures/:id/share
Maakt een opt-in publieke deel-link (/p/:token) waarmee een ontvanger het bewijs
zelf kan bekijken en verifiëren — zonder account. Intrekken: DELETE /api/captures/:id/share.
curl -X POST https://vault.bewijskluis.nl/api/captures/01KWM…/share \
-H "Authorization: Bearer $TOKEN"
# → {"shareUrl":"https://vault.bewijskluis.nl/p/…","token":"…"}
Webhook (capture voltooid)
Stel in je dashboard → Account een Webhook-URL in (moet https:// en publiek bereikbaar zijn — privé/interne adressen worden geweigerd). Zodra een vastlegging klaar is, POSTen we een ondertekende JSON-melding naar die URL:
POST https://jouw-systeem.nl/webhook
X-Bewijskluis-Event: capture.completed
X-Bewijskluis-Signature: sha256=<hex>
Content-Type: application/json
{"event":"capture.completed","captureId":"01KWM…","status":"completed",
"sourceUrl":"https://voorbeeld.nl/…","manifestSha256":"…","bundleSha256":"…",
"tsaStatus":"ok","otsStatus":"pending","completedAt":"…"}
Verifieer de handtekening met je API-token als sleutel: HMAC-SHA256(token, rawBody) moet gelijk zijn aan de hex-waarde in X-Bewijskluis-Signature. Levering is best-effort met een time-out van 10 s; je kunt de status altijd ook opvragen via GET /api/captures/:id.
Verifiëren (zonder ons)
Elk bewijspakket is onafhankelijk te controleren — de verificatie vertrouwt onze servers niet:
- In de browser: bewijskluis.nl/verify/online.html (er wordt niets geüpload).
- Offline, open source: de command-line verifier —
vault-verify verify bewijspakket.zip.
Limieten & fair-use
Gratis tijdens de beta. Een ruime fair-use daglimiet per gebruiker en per IP beschermt de dienst tegen
misbruik (geen betaalmuur). Antwoordcodes: 400 (ongeldige/privé-URL),
401 (token ontbreekt/ongeldig), 429 (limiet bereikt).
Zie ook Vertrouwen & beveiliging.