WaveHelp Center

Wave Developer API

Erstelle ein eingeschränktes Token und lies oder aktualisiere deine Wave-Sessions, Transkripte und Action Items über eigenen Code – mit Suche, Massenexport und Webhooks.

Die Wave Developer API ist eine REST-API für deine eigenen Aufnahmen. Richte deinen Code auf https://api.wave.co/v1 mit einem Token, das du in Wave erstellst, und du kannst Sessions auflisten, Zusammenfassungen und Transkripte lesen, inhaltlich suchen, Audio herunterladen, Titel und Action Items aktualisieren und einen Webhook erhalten, sobald eine Aufnahme fertig verarbeitet ist.

Es ist in jedem Wave-Plan kostenlos enthalten und greift ausschließlich auf dein eigenes Konto zu.

Ein Token erstellen

Öffne in der Wave-Web-App unter app.wave.co dein Profil, wähle den Tab Integrations ("Integrationen") und öffne Developer API – oder gehe direkt zu app.wave.co/settings/integrations/api.

Klicke unter API Tokens auf Create Token ("Token erstellen").

Vergib einen Token Name ("Token-Name"), an dem du das Token später wiedererkennst, hake die benötigten Permissions ("Berechtigungen") ab und klicke auf Create Token. Ein eigenes Token pro Integration lässt sich deutlich einfacher verwalten als ein gemeinsam genutztes Token.

Kopiere das Token. Wave zeigt es nur einmal an: Copy this token now. You will not be able to see it again. ("Kopiere dieses Token jetzt. Du wirst es danach nicht mehr sehen können.")

Sende es bei jeder Anfrage als Bearer-Token:

curl -H "Authorization: Bearer wave_api_xxx..." \
  https://api.wave.co/v1/sessions

Die Token-Liste zeigt zu jedem Token den Namen, das wave_api_-Präfix, das Erstellungsdatum und die letzte Verwendung. Über das Papierkorb-Symbol öffnest du Revoke Token ("Token widerrufen") – der Widerruf wirkt sofort, und alles, was dieses Token verwendet, erhält ab dann einen 401-Fehler.

API-Tokens laufen ein Jahr nach ihrer Erstellung ab, und das Ablaufdatum wird in der Token-Liste nicht angezeigt. Wenn eine Integration, die monatelang problemlos lief, plötzlich 401 invalid_token zurückgibt, erstelle ein neues Token.

Berechtigungen

Berechtigungen gelten pro Token. Vergib immer nur die nötigsten.

BerechtigungWas sie erlaubt
Read SessionsSessions auflisten und öffnen, Statistiken, Ordner, Massenexport
Search SessionsSemantische Suche über deine gesamte Bibliothek
Read TranscriptsVollständige Transkripte mit Sprecher-Segmenten
Access MediaSignierte Download-URLs für Audio und Video
Write Sessions & Action ItemsTitel, Notizen, Tags, Favorit, Action Items aktualisieren
Delete SessionsEine Session dauerhaft löschen
Manage FoldersOrdner erstellen, Sessions hinzufügen und entfernen
Manage WebhooksWebhook-Endpunkte registrieren und verwalten
Read Event FeedDen Event-Feed abrufen und bestätigen
Read AccountKontoinformationen und Abo-Status

Rufst du einen Endpunkt ohne die passende Berechtigung auf, erhältst du einen 403-Fehler, der die fehlende Berechtigung benennt.

Deine Daten lesen

  • GET /v1/sessions — neueste zuerst, per Cursor paginiert, filterbar nach type, since, folder und tag. Es werden nur Sessions zurückgegeben, deren Verarbeitung abgeschlossen ist.
  • GET /v1/sessions/:id — Titel, Dauer, Markdown-Zusammenfassung, Notizen, Tags, Favorit. Bei Telefonanrufen zusätzlich Richtung und Rufnummern.
  • GET /v1/sessions/:id/transcript — ein durchgehender Transkript-String sowie zeitgestempelte, sprecherbeschriftete Segmente.
  • GET /v1/sessions/:id/action-items — strukturierte Action Items und eine Versionsnummer.
  • GET /v1/sessions/:id/media — signierte Audio- und Video-URLs, eine Stunde gültig.
  • POST /v1/sessions/search — semantische Suche, bis zu 50 Ergebnisse, optionale Tag-Filter.
  • POST /v1/sessions/bulk — bis zu 50 Sessions in einem Aufruf, mit Zusammenfassungen und Transkripten. Der schnelle Weg, um Altbestände nachzuladen.
  • GET /v1/folders, GET /v1/sessions/stats — Ordner sowie Gesamtzahlen nach Typ und Plattform.

Daten zurückschreiben

PATCH /v1/sessions/:id setzt Titel, Notizen, Tags, Favorit und Action Items. Bei Action Items solltest du sie zuerst lesen und die erhaltene Version zurücksenden – eine gleichzeitige Bearbeitung in der Wave-App wird dann abgelehnt, statt stillschweigend überschrieben zu werden. POST /v1/folders und die Endpunkte für die Ordnerzugehörigkeit organisieren Sessions; Ordner schließen sich nicht gegenseitig aus, eine Session kann also in mehreren liegen.

DELETE /v1/sessions/:id ist endgültig und nicht dasselbe wie das Löschen in der App. Behandle es als nicht wiederherstellbar.

Rate-Limits

Jedes Token erhält 60 Anfragen pro Minute und 10.000 Anfragen pro Tag. Antworten enthalten X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset, und ein 429-Fehler enthält Retry-After – warte dann, statt sofort erneut zu versuchen.

Wird dieselbe Suchanfrage mehr als zehnmal pro Stunde wiederholt, gibt es ebenfalls einen 429-Fehler. Identische Suchanfragen liefern identische Ergebnisse, nutze also Webhooks oder GET /v1/sessions?since=, um Neues zu finden.

Webhooks

Statt zu pollen, kannst du Wave an dich POSTen lassen. Klicke im Bereich Webhooks auf Add Webhook ("Webhook hinzufügen"), trage eine Endpoint URL ("Endpunkt-URL") ein (nur HTTPS, URLs, die zu privaten Adressen auflösen, werden abgelehnt), wähle deine Events aus und klicke auf Create Webhook. Das Signing Secret ("Signatur-Geheimnis") wird nur einmal angezeigt – speichere es dann sofort. Du kannst bis zu fünf Webhooks anlegen.

Derzeit sind drei Events verfügbar: Session Completed (feuert einmal, sobald die Verarbeitung abgeschlossen und die Zusammenfassung abrufbar ist – das, was die meisten Integrationen wollen), Session Updated und Session Deleted.

Jede Zustellung wird mit deinem Secret signiert und enthält die Header X-Wave-Webhook-Id, X-Wave-Webhook-Timestamp und X-Wave-Webhook-Signature. Prüfe die Signatur, bevor du einer Payload vertraust; den genauen zu signierenden String findest du in der API-Referenz.

Wave garantiert keine genau einmalige Zustellung pro Event. Eine Zustellung, die ein Timeout (10 Sekunden) erreicht oder einen Non-2xx-Status zurückgibt, wird mit kurzem Backoff bis zu dreimal wiederholt – nach etwa 10 Sekunden, dann einer Minute, dann fünf Minuten – und dasselbe Event kann durchaus mehrfach ankommen. Gestalte deinen Handler idempotent: Verwende X-Wave-Webhook-Id als Schlüssel, ignoriere bereits verarbeitete IDs und antworte zügig mit 2xx. Ein Endpunkt, der länger als dieses Zeitfenster ausfällt, verliert die verpassten Events – nutze in diesem Fall den Event-Feed unten, um aufzuholen.

Schlägt ein Endpunkt zehnmal in Folge fehl, markiert Wave ihn als Auto-disabled ("automatisch deaktiviert") und stellt die Zustellung ein. Behebe das Problem am Endpunkt und nutze dann die Schaltfläche zum erneuten Aktivieren in der Webhook-Zeile.

Kein Server? Nutze den Event-Feed

Falls du keine öffentliche URL hosten kannst, pollst du stattdessen. GET /v1/events liefert Events nach einem Cursor, den Wave pro Token verfolgt, und POST /v1/events/ack schaltet diesen weiter, sobald du die Events verarbeitet hast – ein Neustart deines Skripts spielt so nicht alles erneut ab. Seiten umfassen standardmäßig 50 Einträge und maximal 200, und der Feed enthält zudem Änderungen an Action Items, die Webhook-Abonnements nicht liefern. Erfordert die Berechtigung Read Event Feed.

Die Wave CLI bildet das über wave events tail ab, falls du die Polling-Schleife nicht selbst schreiben möchtest.

FAQ

War dieser Artikel hilfreich?

Brauchst du noch Hilfe?

Support per E-Mail

Auf dieser Seite