Skip to main content
VoicePing API Access und Integration — Meeting-Transkripte von Ihrem Backend abfragen

Meeting-Transkripte von Ihrem Backend abfragen

API Access ist für Server-zu-Server-Workflows gedacht — geplante Exporte, CRM-Sync, Dashboards, Compliance-Archive. Sie erstellen in Ihrem Workspace einen API-Schlüssel, weisen ihm eine Menge von Scopes zu, und Ihr Backend ruft die VoicePing-API mit einem standardmäßigen Bearer-Token auf. Wenn eine Person über einen KI-Client Fragen stellt, verwenden Sie stattdessen MCP Access.
If a person is asking questions, use MCP Access.
If a server is fetching data, use API Access.

Wann Sie API Access verwenden sollten

AnwendungsfallBeispiel
Geplante ExporteJeden Freitag die Transkripte dieser Woche exportieren
Internes ReportingEinen wöchentlichen Meeting-Zusammenfassungsbericht erstellen
CRM- oder PM-WorkflowsTranskript-Zusammenfassungen in Salesforce oder Asana übergeben
Compliance-ArchiveMeeting-Aufzeichnungen in freigegebenem Speicher ablegen
DashboardsTranskript-Metadaten in Analytics-Systeme einspeisen

Einen API-Schlüssel erstellen

  1. Öffnen Sie Workspace-Einstellungen → External Access → API Access.
  2. Aktivieren Sie den API Access Mode, falls noch nicht aktiv.
  3. Klicken Sie auf API-Schlüssel erstellen.
  4. Wählen Sie einen Namen, die erlaubte IP-Adresse (empfohlen), die Scopes, die der Schlüssel benötigt, und eine Gültigkeitsdauer.
  5. Kopieren Sie den erzeugten Schlüssel sofort und speichern Sie ihn in Ihrem Secret-Manager. Der vollständige Schlüssel wird nur einmal angezeigt.
Dialog zur API-Schlüssel-Erstellung mit Feldern für Name, erlaubte IP, Scopes und Gültigkeit
After the key is created, VoicePing shows the raw key only once. Copy it before dismissing the success panel.
API key created success panel with the raw key masked and API Access key list visible
Committen Sie API-Schlüssel niemals. Halten Sie sie in Umgebungsvariablen oder Ihrem Secret-Manager. Für zusätzliche Sicherheit binden Sie jeden Schlüssel im Erstellungs-Dialog an eine bestimmte erlaubte IP-Adresse — jede Anfrage von einer anderen IP wird abgelehnt, selbst wenn der Schlüssel durchgesickert ist.

Anfragen authentifizieren

Jede Anfrage authentifiziert sich mit einem Bearer-Token gegen https://api.voiceping.io:
GET /api/v1/transcripts/search?q=pricing&limit=10 HTTP/1.1
Host: api.voiceping.io
Authorization: Bearer <VOICEPING_API_KEY>
Setzen Sie den Schlüssel einmal als Umgebungsvariable VOICEPING_API_KEY, und die folgenden Beispiele greifen ihn automatisch auf.

Quickstart — die API in Ihrer Sprache aufrufen

Derselbe zweistufige Ablauf — Transkripte suchen, dann eines abrufen — in vier Sprachen. TypeScript wird zuerst gezeigt; wechseln Sie die Tabs für Ihren Stack.
// Requires Node.js 18+ (for built-in fetch)
const apiKey = process.env.VOICEPING_API_KEY!;
const base = "https://api.voiceping.io/api/v1";
const headers = { Authorization: `Bearer ${apiKey}` };

// 1. Search transcripts
const searchRes = await fetch(
  `${base}/transcripts/search?q=pricing&limit=10`,
  { headers },
);
const { transcripts } = await searchRes.json();

// 2. Read the first result in full
const detailRes = await fetch(
  `${base}/transcripts/${transcripts[0].id}`,
  { headers },
);
const transcript = await detailRes.json();

console.log(transcript.title, transcript.content);
# pip install requests
import os
import requests

api_key = os.environ["VOICEPING_API_KEY"]
base = "https://api.voiceping.io/api/v1"
headers = {"Authorization": f"Bearer {api_key}"}

# 1. Search transcripts
search = requests.get(
    f"{base}/transcripts/search",
    headers=headers,
    params={"q": "pricing", "limit": 10},
).json()

# 2. Read the first result in full
first_id = search["transcripts"][0]["id"]
detail = requests.get(
    f"{base}/transcripts/{first_id}",
    headers=headers,
).json()

print(detail["title"], detail["content"])
// Java 11+ (uses built-in java.net.http)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class VoicePingQuickstart {
    public static void main(String[] args) throws Exception {
        String apiKey = System.getenv("VOICEPING_API_KEY");
        String base = "https://api.voiceping.io/api/v1";
        HttpClient client = HttpClient.newHttpClient();

        // 1. Search transcripts
        HttpRequest search = HttpRequest.newBuilder()
            .uri(URI.create(base + "/transcripts/search?q=pricing&limit=10"))
            .header("Authorization", "Bearer " + apiKey)
            .GET()
            .build();
        HttpResponse<String> searchRes =
            client.send(search, HttpResponse.BodyHandlers.ofString());
        System.out.println(searchRes.body());

        // 2. Read a transcript (parse the id from searchRes.body() first;
        //    shown here with a placeholder)
        HttpRequest detail = HttpRequest.newBuilder()
            .uri(URI.create(base + "/transcripts/TRANSCRIPT_ID"))
            .header("Authorization", "Bearer " + apiKey)
            .GET()
            .build();
        HttpResponse<String> detailRes =
            client.send(detail, HttpResponse.BodyHandlers.ofString());
        System.out.println(detailRes.body());
    }
}
// go run main.go
package main

import (
    "fmt"
    "io"
    "net/http"
    "os"
)

func main() {
    apiKey := os.Getenv("VOICEPING_API_KEY")
    base := "https://api.voiceping.io/api/v1"

    // 1. Search transcripts
    req, _ := http.NewRequest("GET",
        base+"/transcripts/search?q=pricing&limit=10", nil)
    req.Header.Set("Authorization", "Bearer "+apiKey)

    res, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)
    fmt.Println(string(body))

    // 2. Read a transcript by id (parse id from body first)
    detailReq, _ := http.NewRequest("GET",
        base+"/transcripts/TRANSCRIPT_ID", nil)
    detailReq.Header.Set("Authorization", "Bearer "+apiKey)

    detailRes, _ := http.DefaultClient.Do(detailReq)
    defer detailRes.Body.Close()
    detailBody, _ := io.ReadAll(detailRes.Body)
    fmt.Println(string(detailBody))
}

Nächste Schritte

External Access — Übersicht

Zurück zu Scopes, Lifecycle-Steuerungen und Ereignisprotokollen, die für MCP und API gelten.

MCP Access für KI-Clients

Wenn eine Person über Claude, ChatGPT, Codex, Claude Code oder Gemini CLI Fragen stellt, verwenden Sie stattdessen MCP Access.