Zum Hauptinhalt springen

Zusammenfassungen

Eine Zusammenfassung gehört zu einer Aufnahme und existiert einmal je Sprache. Mit diesen Endpunkten durchsuchst du Zusammenfassungen, rufst eine einzelne per Id ab und lädst sie als fertige Datei herunter.

Jeder Endpunkt unten zeigt in der Mitte seine Parameter und Antwortfelder. Rechts findest du Anfragebeispiele in cURL, JavaScript und Python, eine Beispielantwort und Ausprobieren, das die Anfrage mit deinem eigenen Token wirklich abschickt.

POST/v1.0/directories/{directoryId}/summaries/searchAusprobieren →

Durchsucht Zusammenfassungen und gibt pro Treffer einen gekürzten Ausschnitt aus dem Text der Zusammenfassung zurück.

Feldübersicht aus der Spezifikation

Felder im Body:

  • search (string, optional, min. 3 Zeichen): Teilstring ohne Beachtung der Groß- und Kleinschreibung, der an beliebiger Stelle im Text der Zusammenfassung, in den erzeugten Abschnittseinträgen (Titel/Inhalt/Betreff/Beschreibung) UND in den Zellen eines strukturierten Tabellenabschnitts gesucht wird; eine Aufnahme ist ein Treffer, wenn IRGENDEINER davon passt.
  • page (number, optional, Standard 1): Seitennummer, beginnend bei 1.
  • pageSize (number, optional, Standard 25): Seitengröße, max. 100.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: appointmentId, createdOn, languageCode, recordingId, recordingSummaryId, snippet.

    Beispiel: appointmentId,createdOn

Request-Body application/json

  • searchstringoptionalkann null sein

    Teilstring-Suche ohne Beachtung der Groß- und Kleinschreibung im Text der Zusammenfassung und in den erzeugten Abschnittseinträgen (Titel/Inhalt/Betreff/Beschreibung). Mindestens 3 Zeichen.

  • pagenumberoptional

    Seite (beginnend bei 1, Standard 1).

  • pageSizenumberoptional

    Seitengröße (Standard 25, max. 100).

Antwort: je Eintrag in items

  • recordingSummaryIdstringPflicht

    Id der Zusammenfassung.

  • recordingIdstringPflicht

    Id der zugehörigen Aufnahme.

  • appointmentIdstringPflichtkann null sein

    Id des zugehörigen Termins (falls vorhanden).

  • languageCodestringPflichtkann null sein

    Sprachcode der Zusammenfassung (IETF-Sprach-Tag, z. B. de-DE, en-US).

  • snippetstringPflicht

    Gekürzter Ausschnitt aus dem Text der Zusammenfassung (max. 300 Zeichen).

  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

Jede Seite trägt außerdem page, pageSize, total, hasMore.

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Gibt eine einzelne Zusammenfassung anhand ihrer Id zurück​

GET/v1.0/directories/{directoryId}/summaries/{recordingSummaryId}Ausprobieren →

Gibt die vollständige Zusammenfassung zur angegebenen recordingSummaryId zurück. 404, wenn die Zusammenfassung nicht existiert oder der Aufrufer keinen Zugriff auf die zugrunde liegende Aufnahme hat. Gültige Ids erhältst du über die Suche nach Zusammenfassungen (POST .../summaries/search) oder über GET .../recordings/{recordingId}/summaries.

Feldübersicht aus der Spezifikation

Pfadparameter:

  • directoryId (string): Id des Unternehmenskontos (der Organisation), zu dem die Zusammenfassung gehört.
  • recordingSummaryId (string): Id der Zusammenfassung, die zurückgegeben werden soll.

Felder der Antwort:

  • recordingSummaryId (string): Id dieser Zusammenfassung. Eine Aufnahme kann mehrere Zusammenfassungen haben, eine pro Sprache.
  • recordingId (string): Id der Aufnahme, aus der diese Zusammenfassung erzeugt wurde.
  • appointmentId (string | null): Id des eigenen Termins des Aufrufers, der mit der Aufnahme verknüpft ist; null, wenn die Aufnahme mit keinem Termin verknüpft ist.
  • languageCode (string | null): Sprache des Zusammenfassungstexts als IETF-Sprach-Tag (z. B. de-DE, en-US); null, wenn unbekannt.
  • summary (string | null): der Text der Zusammenfassung (Markdown); null, wenn kein Text erzeugt wurde.
  • createdOn (string): Zeitstempel der Erstellung der Zusammenfassung (UTC ISO-8601).
  • sectionItems (array): die strukturierten Ergebnisse pro Abschnitt aus dem Meetingtemplate, das diese Zusammenfassung erzeugt hat (bei diesem Endpunkt immer enthalten). Jeder Eintrag enthält:
    • sectionItemId (string): Id des Abschnittseintrags.
    • meetingTemplateSectionId (string | null): Id des Meetingtemplate-Abschnitts, aus dem dieser Eintrag erzeugt wurde (auflösen über GET .../meetingtemplates/{meetingTemplateId}); null bei abgeleiteten Einträgen ohne Template-Abschnitt (z. B. Aufgabeneinträge).
    • title (string): Titel des Abschnittseintrags.
    • sectionType (string enum): der Abschnittstyp (summary, tasks, topics, decisions, customList, freeText, table, appointment oder email).
    • outputFormat (string enum): das Format von content (html oder markdown).
    • sortOrder (number): Reihenfolge des Eintrags innerhalb der Zusammenfassung.
    • content (string | null): der Freitext- bzw. Markdown-Inhalt des Eintrags. Bei table, appointment und email enthält er eine lesbare Markdown-Darstellung der eigenen Felder unten, sodass auch ein Client, der nur content liest, den Abschnitt sieht; outputFormat ist dann markdown.
    • tableVariant (string enum | null): nur bei table. structured bedeutet, dass die Spalten im Template festgelegt sind und das Ergebnis in tableData steht; free bedeutet, dass Sally sie gewählt hat und das Ergebnis eine Markdown-Tabelle in content ist.
    • tableData (object | null): Spalten und Zeilen eines strukturierten table-Abschnitts.
    • followUpMeetingStartTime / followUpMeetingEndTime (string | null): die vereinbarte Uhrzeit eines appointment-Abschnitts, ohne Zeitzone.
    • followUpMeetingParticipants (array | null): Teilnehmende eines appointment-Abschnitts.
    • emailRecipients (array | null): Empfänger eines email-Abschnitts, to und cc in einer Liste, unterschieden über kind.
    • subject (string | null): Betreff der Aufgabe (bei aufgabenartigen Abschnittseinträgen).
    • description (string | null): Beschreibung der Aufgabe (bei aufgabenartigen Abschnittseinträgen).
    • responsibleUserName (string | null): Name der verantwortlichen Person (Aufgabeneinträge).
    • responsibleUserEmail (string | null): E-Mail der verantwortlichen Person (Aufgabeneinträge).
    • dueDate (string | null): Fälligkeitsdatum des Aufgabeneintrags (ISO-8601).

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • recordingSummaryIdstringPflicht

    Id der Zusammenfassung.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: appointmentId, createdOn, isSummarizationCompleted, isSummarizationSucceeded, languageCode, recordingId, recordingSummaryId, sectionItems, summarizationCompletionReason, summary.

    Beispiel: appointmentId,createdOn

Antwort

  • recordingSummaryIdstringPflicht

    Id der Zusammenfassung.

  • recordingIdstringPflicht

    Id der zugehörigen Aufnahme.

  • appointmentIdstringPflichtkann null sein

    Id des zugehörigen Termins (falls vorhanden).

  • languageCodestringPflichtkann null sein

    Sprachcode der Zusammenfassung (IETF-Sprach-Tag, z. B. de-DE, en-US).

  • summarystringPflichtkann null sein

    Text der Zusammenfassung.

  • isSummarizationCompletedbooleanPflicht

    True, sobald der Zusammenfassungsdurchlauf beendet ist, unabhängig davon, ob er etwas erzeugt hat.

  • isSummarizationSucceededbooleanPflicht

    True, wenn es etwas zu lesen gibt: Text der Zusammenfassung oder mindestens ein Abschnittseintrag. Auch ein Durchlauf über eine Aufnahme ohne Transkript wird beendet, und dann bleibt dieser Wert false.

  • summarizationCompletionReasonstringPflicht

    Warum der Zusammenfassungsdurchlauf beendet wurde. noTranscript bedeutet, dass es nichts zusammenzufassen gab; das ist ein erwartetes Ergebnis und kein Fehler. unknown, solange er nicht beendet ist. Der zugrunde liegende Fehlertext wird bewusst nicht offengelegt.

    Erlaubte Werte: succeedednoTranscriptemptyResulterrorunknown
  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

  • sectionItemsobject[]Pflichtkann null sein

    Die erzeugten Abschnittseinträge der Zusammenfassung (die strukturierten Ergebnisse des Meetingtemplates pro Abschnitt). Null, wenn nicht geladen (der Listen-Endpunkt der Aufnahmen füllt dieses Feld nur mit ?includeDetails=true); der Endpunkt für eine einzelne Zusammenfassung liefert es immer mit.

    18 Unterfelder
    • sectionItemIdstringPflicht

      Id des Abschnittseintrags.

    • meetingTemplateSectionIdstringPflichtkann null sein

      Id des Meetingtemplate-Abschnitts, aus dem dieser Eintrag erzeugt wurde. Auflösen über GET /v1.0/directories/{directoryId}/meetingtemplates/{meetingTemplateId} (entspricht der meetingTemplateSectionId eines Abschnitts). Null bei abgeleiteten Einträgen ohne Template-Abschnitt (z. B. Aufgabeneinträge).

    • titlestringPflicht

      Titel des Template-Abschnittseintrags.

    • sectionTypestringPflicht

      Abschnittstyp des Eintrags.

      Erlaubte Werte: summarytaskstopicsdecisionscustomListfreeTexttableappointmentemailunknown
    • outputFormatstringPflicht

      Ausgabeformat des Eintragsinhalts.

      Erlaubte Werte: htmlmarkdownunknown
    • sortOrdernumberPflicht

      Reihenfolge innerhalb der Zusammenfassung.

    • contentstringPflichtkann null sein

      Freitext- bzw. Markdown-Inhalt des Eintrags. Bei den Abschnittstypen, die ihr Ergebnis in eigenen Feldern ablegen (Tabelle, Termin, E-Mail), enthält er eine lesbare Markdown-Darstellung dieser Felder, sodass auch ein Client, der nur dieses eine Feld liest, den Abschnitt sieht. Die eigenen Felder werden unverändert daneben zurückgegeben.

    • subjectstringPflichtkann null sein

      Betreff der Aufgabe (bei aufgabenartigen Abschnittseinträgen).

    • descriptionstringPflichtkann null sein

      Beschreibung der Aufgabe.

    • responsibleUserNamestringPflichtkann null sein

      Verantwortliche Person (Name).

    • responsibleUserEmailstringPflichtkann null sein

      Verantwortliche Person (E-Mail).

    • dueDatestringPflichtkann null sein

      Fälligkeitsdatum (ISO-8601).

    • tableVariantstringPflichtkann null sein

      Nur bei sectionType: table. structured bedeutet, dass das Template die Spalten festgelegt hat und das Ergebnis in tableData steht. free bedeutet, dass Sally die Spalten selbst gewählt hat und das Ergebnis eine Markdown-Tabelle in content ist. Bei allen anderen Abschnittstypen null.

      Erlaubte Werte: freestructuredunknown
    • tableDataanyPflichtkann null sein

      Das Tabellenergebnis, nur gesetzt bei sectionType: table mit tableVariant: structured. Bei tableVariant: free ist es null und die Tabelle steht als Markdown-Tabelle in content.

    • followUpMeetingStartTimestringPflichtkann null sein

      Beginn des vorgeschlagenen Folgetermins als LOKALES Datum mit Uhrzeit OHNE Zeitzone (YYYY-MM-DDTHH:mm:ss, z. B. 2026-10-16T09:00:00). Bewusst kein UTC-Zeitpunkt: Vereinbart wurde im Meeting eine Uhrzeit (Donnerstag um neun), und eine Zeitzone würde diese Uhrzeit für jeden Leser in einer anderen Zone verschieben. Wende die Zeitzone der Beteiligten an. Nur gesetzt bei sectionType: appointment.

    • followUpMeetingEndTimestringPflichtkann null sein

      Ende des vorgeschlagenen Folgetermins, im selben lokalen Zeitformat wie followUpMeetingStartTime. Null, wenn im Meeting ein Beginn, aber kein Ende genannt wurde.

    • followUpMeetingParticipantsobject[]Pflichtkann null sein

      Die Personen, die im Meeting für den Folgetermin genannt wurden. Nur gesetzt bei sectionType: appointment.

      4 Unterfelder
      • userIdstringPflichtkann null sein

        Id des zugeordneten Nutzerkontos, oder null, wenn für diese Person kein Konto gefunden wurde. Auflösen über GET /v1.0/directories/{directoryId}/memberships/users/{userId}.

      • namestringPflicht

        Name der Person, wie er im Meeting erkannt wurde.

      • emailstringPflichtkann null sein

        E-Mail-Adresse, wie sie im Meeting erkannt wurde, in Kleinbuchstaben. Null, wenn die Person im Meeting ohne Adresse genannt wurde.

      • isExternalbooleanPflichtkann null sein

        True, wenn die Person als nicht zur eigenen Organisation gehörend erkannt wurde. Null, wenn das Meeting keinen Hinweis darauf gab.

    • emailRecipientsobject[]Pflichtkann null sein

      Empfänger der vorgeschlagenen E-Mail, direkt und in Kopie (siehe kind). Nur gesetzt bei sectionType: email; der Betreff steht in subject, der Text in description.

      4 Unterfelder
      • userIdstringPflichtkann null sein

        Id des zugeordneten Nutzerkontos, oder null, wenn für diese Person kein Konto gefunden wurde. Auflösen über GET /v1.0/directories/{directoryId}/memberships/users/{userId}.

      • namestringPflicht

        Name der Person, wie er im Meeting erkannt wurde.

      • emailstringPflichtkann null sein

        E-Mail-Adresse, wie sie im Meeting erkannt wurde, in Kleinbuchstaben. Null, wenn die Person im Meeting ohne Adresse genannt wurde.

      • kindstringPflicht

        Ob die Person direkter Empfänger (to) oder in Kopie (cc) ist.

        Erlaubte Werte: tocc

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Gibt eine Zusammenfassung als fertige Dokumentdatei zurück​

GET/v1.0/directories/{directoryId}/summaries/{recordingSummaryId}/documentAusprobieren →

Gibt dieselbe Datei zurück, die die Sally-Weboberfläche für diese Zusammenfassung herunterlädt: mit Branding, Logos, Kopf- und Fußzeile, Tabellen und der Abschnittsreihenfolge des Meetingtemplates. Die Datei wird bei der Anfrage erzeugt und direkt in der Antwort zurückgegeben; es gibt keinen Auftrag, der abgefragt werden muss.

Immer die vollständige Zusammenfassung in der Sprachfassung, die recordingSummaryId bezeichnet (eine Aufnahme hat eine Zusammenfassung pro Sprache, siehe GET .../recordings/{recordingId}/summaries). Eigene Einblicke und einzelne Abschnitte sind nicht Teil dieses Dokuments.

Feldübersicht aus der Spezifikation

Pfadparameter:

  • directoryId (string): Id des Unternehmenskontos, zu dem die Zusammenfassung gehört.
  • recordingSummaryId (string): Id der Zusammenfassung.

Abfrageparameter:

  • format (string enum, Pflicht): einer der Werte pdf, docx, odt, txt, md.
  • languageCode (string enum, optional): einer der Werte de-DE, en-US, es-ES, fr-FR, it-IT, nl-NL, pl-PL; Standard ist die Sprache des Token-Inhabers.

Dieser Endpunkt unterstützt ?fields= nicht.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • recordingSummaryIdstringPflicht

    Id der Zusammenfassung.

Query-Parameter

  • formatstringPflicht

    Dateiformat des Dokuments.

    Erlaubte Werte: pdfdocxodttxtmd
  • languageCodestringoptional

    IETF-Sprach-Tag für die Beschriftungen und das Datumsformat im Dokument, z. B. de-DE. Standard ist die Sprache des Token-Inhabers, genau wie in der Sally-Weboberfläche. Die Sprache des Inhalts ändert sich dadurch NICHT, und die Schrift richtet sich immer nach der Sprache der Aufnahme, sodass chinesische Schriftzeichen auch mit en-US-Beschriftungen lesbar bleiben.

    Erlaubte Werte: de-DEen-USes-ESfr-FRit-ITnl-NLpl-PL

Statuscodes

  • 200Die Datei selbst. `Content-Disposition` enthält den Dateinamen, den die Sally-Weboberfläche für denselben Download verwendet (ASCII in `filename`, UTF-8 in `filename*`).
  • 400

    format fehlt oder ist unbekannt, oder languageCode ist unbekannt. Der Body nennt die erlaubten Werte (code: UNKNOWN_DOCUMENT_FORMAT oder UNKNOWN_LANGUAGE_CODE).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Das Unternehmenskonto hat diesen Download für seine Mitglieder gesperrt (code: SUMMARY_DOWNLOAD_PREVENTED).

  • 404

    Die Quelle existiert nicht, gehört zu einem anderen Unternehmenskonto, oder der Aufrufer hat keinen Zugriff auf die zugrunde liegende Aufnahme.

  • 409

    Die Zusammenfassung hat keinen Inhalt, der in ein Dokument übernommen werden könnte (sie wurde erzeugt, bevor es Meetingtemplates gab, oder ihr Template hat keine Abschnitte) (code: SUMMARY_HAS_NO_CONTENT).

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.