Wave Developer API
Maak een scoped token en lees of werk je Wave-sessies, transcripten en actiepunten bij vanuit je eigen code — met zoeken, bulk-export en webhooks.
De Wave Developer API is een REST API over je eigen opnames. Richt je code op 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 op elk Wave-abonnement en heeft alleen toegang 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 benodigde Permissions ("Machtigingen") aan en klik op Create Token. Éé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 hierna niet meer zien.")
Stuur het als bearer token mee met elke aanvraag:
curl -H "Authorization: Bearer wave_api_xxx..." \
https://api.wave.co/v1/sessionsDe tokenlijst toont per token de naam, het wave_api_-voorvoegsel, de aanmaakdatum en het laatste gebruik. Het prullenbakicoontje opent Revoke Token ("Token intrekken") — intrekken gaat direct in, en alles dat het token nog gebruikt krijgt vanaf dat moment een 401.
API-tokens verlopen één jaar na aanmaak, en die vervaldatum staat niet in de tokenlijst. Als een integratie die maandenlang goed werkte plotseling een 401 invalid_token teruggeeft, maak dan een nieuw token aan.
Machtigingen
Machtigingen gelden per token. Geef zo weinig mogelijk mee — precies wat nodig is.
| Machtiging | Wat het toestaat |
|---|---|
| Read Sessions | Sessies opvragen en openen, statistieken, mappen, bulk-export |
| Search Sessions | Semantisch zoeken door je bibliotheek |
| Read Transcripts | Volledige transcripten met sprekersegmenten |
| Access Media | Ondertekende 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 |
Roep je een endpoint aan zonder de bijbehorende machtiging, dan krijg je een 403 met daarin wat er ontbreekt.
Je gegevens uitlezen
GET /v1/sessions— nieuwste eerst, cursor-paginering, filterbaar optype,since,folderentag. Alleen sessies die klaar zijn met verwerken worden geretourneerd.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, aan sprekers gekoppelde segmenten.GET /v1/sessions/:id/action-items— gestructureerde actiepunten en een versienummer.GET /v1/sessions/:id/media— ondertekende 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 data 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 geldt: lees ze eerst uit en geef de versie terug die je hebt ontvangen — een gelijktijdige wijziging in de Wave-app wordt dan geweigerd in plaats van stilletjes overschreven. POST /v1/folders en de endpoints voor mapkoppeling organiseren sessies; mappen zijn niet exclusief, 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 onherstelbaar.
Snelheidslimieten
Elk token krijgt 60 aanvragen per minuut en 10.000 aanvragen 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 levert ook een 429 op. Identieke zoekopdrachten geven identieke resultaten, 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 afgewezen), kies je events en klik op Create Webhook. De Signing Secret ("Ondertekeningsgeheim") wordt maar één keer getoond — bewaar hem meteen. Je kunt tot vijf webhooks hebben.
Momenteel kun je je op drie events registreren: Session Completed (vuurt eenmalig, nadat de verwerking klaar is en de samenvatting opvraagbaar is — degene die de meeste integraties willen), Session Updated en Session Deleted.
Elke aflevering is ondertekend met je 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 niet dat elk event precies één keer wordt afgeleverd. Een aflevering die time-out geeft (10 seconden) of een niet-2xx 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 terecht meer dan eens binnenkomen. Maak je afhandeling idempotent: gebruik X-Wave-Webhook-Id als key, negeer een id die je al hebt verwerkt, en geef snel een 2xx terug. Een endpoint dat langer dan dat venster niet bereikbaar is, verliest de gemiste events, gebruik dan de eventfeed hieronder om bij te werken.
Faalt een endpoint tien keer op rij, dan markeert Wave het als Auto-disabled ("Automatisch uitgeschakeld") en stopt het met versturen. Herstel het endpoint en gebruik daarna de knop om het weer in te schakelen op de webhook-regel.
Geen server? Gebruik de eventfeed
Kun je geen publieke URL hosten, dan 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 schuift deze op zodra je ze hebt verwerkt, zodat het opnieuw starten van een script niet alles opnieuw afspeelt. Pagina's tellen standaard 50 items met een maximum van 200, en de feed bevat ook wijzigingen aan actiepunten die webhook-abonnementen niet doorgeven. Hiervoor is de machtiging Read Event Feed nodig.
De Wave CLI verpakt dit in wave events tail, mocht je liever geen eigen pollinglus schrijven.
Veelgestelde vragen
api.wave.co/reference bevat elk endpoint, elke parameter en elke antwoordstructuur, met live voorbeelden. api.wave.co/llms.txt is dezelfde inhoud in 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).
Nee. Een token is gebonden aan het account dat het heeft aangemaakt en geeft alleen de sessies van dat account terug.
Was dit artikel nuttig?
Nog hulp nodig?
De Wave Agents Toolkit: koppel je gegevens aan elke andere tool
Drie manieren om je Wave-opnames naar andere tools te krijgen — MCP voor AI-assistenten, een REST API voor je eigen code, en een CLI voor de terminal.
Wave CLI
Installeer het wave-commando, log in vanuit je browser en toon, doorzoek, exporteer en organiseer je opnames vanaf de terminal.