Help Center

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

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

MachtigingWat het toestaat
Read SessionsSessies opvragen en openen, statistieken, mappen, bulkexport
Search SessionsSemantisch zoeken door je hele bibliotheek
Read TranscriptsVolledige transcripten met sprekersegmenten
Access MediaGetekende 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
Share Sessions & Manage AccessJe 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 op type, since, folder en tag. 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

Was dit artikel nuttig?

Nog hulp nodig?

Mail de support

Op deze pagina