WaveHelp Center

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/sessions

De 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.

MachtigingWat het toestaat
Read SessionsSessies opvragen en openen, statistieken, mappen, bulk-export
Search SessionsSemantisch zoeken door je bibliotheek
Read TranscriptsVolledige transcripten met sprekersegmenten
Access MediaOndertekende downloadlinks voor audio en video
Write Sessions & Action ItemsTitel, notities, tags, favoriet en actiepunten bijwerken
Delete SessionsEen sessie permanent verwijderen
Manage FoldersMappen aanmaken, sessies toevoegen en verwijderen
Manage WebhooksWebhook-eindpunten registreren en beheren
Read Event FeedDe eventfeed ophalen en bevestigen
Read AccountAccountinformatie 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 op type, since, folder en tag. 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

Was dit artikel nuttig?

Nog hulp nodig?

Mail de support

Op deze pagina