Wave Developer API
Maak een scoped token aan en lees of bewerk je Wave-sessies, transcripten en actiepunten vanuit je eigen code — met zoekfunctie, bulkexport en webhooks.
De Wave Developer API is een REST API over je eigen opnames. Laat je code verwijzen naar https://api.wave.co/v1 met een token dat je in Wave aanmaakt, en je kunt sessies opvragen, samenvattingen en transcripten lezen, op betekenis zoeken, audio downloaden, titels en actiepunten bijwerken, en een webhook ontvangen zodra een opname klaar is met verwerken.
Het is gratis bij elk Wave-abonnement en reikt uitsluitend tot je eigen account.
Een token aanmaken
Open in de Wave-webapp op app.wave.co je profiel, kies het tabblad Integrations ("Integraties") en open Developer API — of ga direct naar app.wave.co/settings/integrations/api.
Klik onder API Tokens op Create Token ("Token aanmaken").
Geef het een Token Name ("Tokennaam") die je later herkent, vink de Permissions ("Machtigingen") aan die het nodig heeft, en klik op Create Token. Eén token per integratie is veel makkelijker te beheren dan één gedeeld token.
Kopieer het token. Wave toont het maar één keer: Copy this token now. You will not be able to see it again. ("Kopieer dit token nu. Je kunt het niet opnieuw bekijken.")
Stuur het als bearer token mee bij elk verzoek:
curl -H "Authorization: Bearer wave_api_xxx..." \
https://api.wave.co/v1/sessionsDe tokenlijst toont de naam van elk token, het wave_api_-voorvoegsel, wanneer het is aangemaakt en wanneer het voor het laatst is gebruikt. Het prullenbakicoon opent Revoke Token ("Token intrekken") — intrekking gaat direct in, en alles wat dat token gebruikt krijgt vanaf dat moment een 401.
API-tokens verlopen één jaar na aanmaak, en de vervaldatum staat niet in de tokenlijst. Als een integratie die maandenlang prima werkte plotseling 401 invalid_token teruggeeft, maak dan een nieuw token aan.
Machtigingen
Machtigingen gelden per token. Ken zo min mogelijk toe, alleen wat nodig is.
| Machtiging | Wat het toestaat |
|---|---|
| Read Sessions | Sessies opvragen en openen, statistieken, mappen, bulkexport |
| Search Sessions | Semantisch zoeken door je hele bibliotheek |
| Read Transcripts | Volledige transcripten met sprekersegmenten |
| Access Media | Getekende downloadlinks voor audio en video |
| Write Sessions & Action Items | Titel, notities, tags, favoriet en actiepunten bijwerken |
| Delete Sessions | Een sessie permanent verwijderen |
| Manage Folders | Mappen aanmaken, sessies toevoegen en verwijderen |
| Manage Webhooks | Webhook-eindpunten registreren en beheren |
| Read Event Feed | De eventfeed ophalen en bevestigen |
| Read Account | Accountinformatie en abonnementsstatus |
| Share Sessions & Manage Access | Je sessies delen met andere Wave-gebruikers, zien wie toegang heeft, en mensen verwijderen |
Roep je een eindpunt aan zonder de bijbehorende machtiging, dan krijg je een 403 met vermelding van wat ontbreekt.
Je gegevens lezen
GET /v1/sessions— nieuwste eerst, cursor-gepagineerd, filterbaar optype,since,folderentag. Alleen sessies die klaar zijn met verwerken worden teruggegeven.GET /v1/sessions/:id— titel, duur, markdown-samenvatting, notities, tags, favoriet. Telefoongesprekken bevatten ook richting en nummers.GET /v1/sessions/:id/transcript— een platte transcripttekst plus getimede, van spreker voorziene segmenten.GET /v1/sessions/:id/action-items— gestructureerde actiepunten en een versienummer.GET /v1/sessions/:id/media— getekende audio- en video-URL's, een uur geldig.POST /v1/sessions/search— semantisch zoeken, tot 50 resultaten, met optionele tagfilters.POST /v1/sessions/bulk— tot 50 sessies in één aanroep, met samenvattingen en transcripten. De snelste manier om achterstallige gegevens op te halen.GET /v1/folders,GET /v1/sessions/stats— mappen, en totalen per type en platform.
Terugschrijven
PATCH /v1/sessions/:id stelt titel, notities, tags, favoriet en actiepunten in. Voor actiepunten: lees ze eerst uit en geef de versie terug die je hebt gekregen — een gelijktijdige wijziging in de Wave-app wordt dan geweigerd in plaats van stilzwijgend overschreven. POST /v1/folders en de eindpunten voor mapllidmaatschap organiseren sessies; mappen sluiten elkaar niet uit, dus een sessie kan in meerdere mappen staan.
DELETE /v1/sessions/:id is permanent en niet hetzelfde als verwijderen in de app. Beschouw het als onomkeerbaar.
Delen
Een token handelt namens jou, dus het kan de sessies lezen die andere Wave-gebruikers met jou hebben gedeeld, met de machtigingen hierboven. GET /v1/shared-sessions toont ze, en GET /v1/shared-sessions/{owner_id}/{id} plus de bijbehorende /transcript, /action-items en /media lezen er één uit. Voeg include=shared toe aan GET /v1/sessions om ze te mengen met je eigen lijst; elke rij bevat dan access (owner of shared) en, bij gedeelde rijen, de eigenaar. Gedeelde rijen kunnen niet worden gefilterd op map of tag, gedeelde sessies zijn alleen-lezen, en zoeken bestrijkt uitsluitend je eigen sessies.
Met Share Sessions & Manage Access kan een token je eigen sessies delen: /v1/sessions/{id}/sharing toont wie toegang heeft, en de eindpunten daaronder maken een uitnodigingslink aan, sturen e-mailuitnodigingen (tot 10 adressen per aanroep), annuleren een openstaande uitnodiging, verwijderen één persoon, of resetten de link. Zie Sessies delen vanuit Claude, ChatGPT, de API en de CLI voor de volledige lijst en de limieten.
Snelheidslimieten
Elk token krijgt 60 verzoeken per minuut en 10.000 verzoeken per dag. Antwoorden bevatten X-RateLimit-Limit, X-RateLimit-Remaining en X-RateLimit-Reset, en een 429 bevat Retry-After — wacht dan even in plaats van meteen opnieuw te proberen.
Dezelfde zoekopdracht meer dan tien keer per uur herhalen geeft ook een 429. Identieke zoekopdrachten leveren identieke resultaten op, gebruik dus webhooks of GET /v1/sessions?since= om te zien wat er nieuw is.
Webhooks
In plaats van te pollen kun je Wave naar jou laten POST'en. Klik in het gedeelte Webhooks op Add Webhook ("Webhook toevoegen"), voer een Endpoint URL in (alleen HTTPS, en URL's die naar privéadressen verwijzen worden geweigerd), kies je events, en klik op Create Webhook. De Signing Secret ("Ondertekeningsgeheim") wordt maar één keer getoond — sla het dan meteen op. Je kunt maximaal vijf webhooks hebben.
Er zijn momenteel drie events beschikbaar: Session Completed (wordt eenmalig geactiveerd, nadat de verwerking klaar is en de samenvatting opvraagbaar is — degene die de meeste integraties willen), Session Updated, en Session Deleted.
Elke aflevering wordt ondertekend met jouw geheim en komt binnen met de headers X-Wave-Webhook-Id, X-Wave-Webhook-Timestamp en X-Wave-Webhook-Signature. Controleer de handtekening voordat je een payload vertrouwt; de exacte string om te ondertekenen staat in de API-referentie.
Wave garandeert geen eenmalige aflevering per event. Een aflevering die time-out geeft (10 seconden) of een niet-2xx-status teruggeeft, wordt tot drie keer opnieuw geprobeerd met een korte backoff — ongeveer 10 seconden, dan een minuut, dan vijf minuten — en hetzelfde event kan dus legitiem meer dan eens binnenkomen. Maak je handler idempotent: gebruik X-Wave-Webhook-Id als sleutel, negeer een id die je al hebt verwerkt, en geef snel een 2xx terug. Een eindpunt dat langer dan dat venster onbereikbaar is, verliest de events die het heeft gemist — gebruik dan de eventfeed hieronder om bij te werken.
Faalt een eindpunt tien keer op rij, dan markeert Wave het als Auto-disabled ("Automatisch uitgeschakeld") en stopt met versturen. Los het eindpunt op en gebruik daarna de knop om opnieuw in te schakelen op de webhookrij.
Geen server? Gebruik de eventfeed
Als je geen publieke URL kunt hosten, kun je in plaats daarvan pollen. GET /v1/events geeft events terug na een cursor die Wave per token bijhoudt, en POST /v1/events/ack zet die verder zodra je ze hebt verwerkt, zodat het herstarten van een script niet alles opnieuw afspeelt. Pagina's tonen standaard 50 items en maximaal 200, en de feed bevat ook wijzigingen aan actiepunten die webhook-abonnementen niet doorgeven. Vereist de machtiging Read Event Feed.
De Wave CLI verpakt dit in wave events tail als je liever geen pollinglus schrijft.
Veelgestelde vragen
api.wave.co/reference bevat elk eindpunt, elke parameter en elke responsvorm met live voorbeelden. api.wave.co/llms.txt bevat dezelfde inhoud als platte tekst — plak het in een AI-assistent en laat die de integratie voor je schrijven.
Altijd JSON, met een code en een message. De meest voorkomende: 401 invalid_token (verlopen, ingetrokken of verkeerd getypt), 403 insufficient_scope (het token mist een machtiging), en 429 (snelheidslimiet bereikt).
Alleen degene die mensen met jou hebben gedeeld. Een token is gebonden aan het account dat het heeft aangemaakt: het geeft de sessies van dat account terug, plus sessies die andere Wave-gebruikers met dat account hebben gedeeld, alleen-lezen.
Was dit artikel nuttig?
Nog hulp nodig?
De Wave Agents Toolkit: koppel je gegevens aan elke andere tool
Drie manieren om je Wave-opnames in andere tools te krijgen — MCP voor AI-assistenten, een REST API voor je eigen code en een CLI voor de terminal.
Sessions delen vanuit Claude, ChatGPT, de API en de CLI
Lees de sessies die anderen met je hebben gedeeld en deel je eigen sessies, vanuit een AI-assistent, je eigen code of de terminal.