Zum Inhalt springen

Entwickler

Bauen Sie auf Mets

Eine REST-API und signierte Webhooks für Meetings, Aufzeichnungen, Transkripte und KI-Zusammenfassungen. Ihre Daten bleiben in der EU.

Schnellstart

Vom Nichts zum Meeting in drei Schritten

Kein SDK nötig. Einfaches HTTPS und JSON.

  1. 1

    API-Schlüssel erstellen

    Öffnen Sie Einstellungen, Entwickler und erstellen Sie einen Schlüssel mit genau den nötigen Berechtigungen. Er wird nur einmal angezeigt.

  2. 2

    API aufrufen

    Senden Sie den Schlüssel als Bearer-Token. Erstellen Sie Meetings, listen Sie Aufzeichnungen auf, laden Sie Transkripte und Zusammenfassungen.

  3. 3

    Auf Ereignisse reagieren

    Fügen Sie einen Webhook-Endpunkt hinzu und reagieren Sie, wenn ein Meeting endet oder ein Transkript fertig ist, oder fragen Sie den Ereignis-Feed ab.

Meeting erstellenbash
curl -X POST https://mets.ulewicz.space/api/v1/public/meetings \
  -H "Authorization: Bearer $METS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Weekly sync",
    "scheduled_at": "2026-11-03T09:00:00+01:00",
    "duration_minutes": 30,
    "settings": { "waiting_room": true, "transcription_auto": true }
  }'

# -> 201 { "id": "…", "code": "abc-defg-hjk", "join_url": "https://mets.ulewicz.space/m/abc-defg-hjk", … }
Aufzeichnungen auflistenbash
curl https://mets.ulewicz.space/api/v1/public/meetings/abc-defg-hjk/recordings \
  -H "Authorization: Bearer $METS_API_KEY"

# -> { "data": [ { "id": "…", "kind": "video", "status": "ready",
#                  "duration_seconds": 1834, "download_url": "https://…" } ] }

Webhooks

Sofort wissen, wenn etwas passiert

Jede Zustellung ist ein signierter HTTPS-POST. Fehlgeschlagene Zustellungen werden mit exponentiellem Backoff wiederholt, insgesamt fünf Versuche.

  • meeting.startedDer erste Teilnehmer ist beigetreten, das Meeting läuft.
  • meeting.endedDas Meeting ist beendet.
  • recording.readyEine Aufzeichnung wurde verarbeitet und kann heruntergeladen werden.
  • transcript.readyDas Transkript ist vollständig.
  • summary.readyDie KI-Zusammenfassung ist verfügbar.
  • registration.createdJemand hat sich für eines Ihrer Webinare angemeldet.
Eine Webhook-Zustellunghttp
POST https://your-server.example/webhooks/mets
X-Mets-Event: meeting.ended
X-Mets-Delivery: 7c0f…
X-Mets-Timestamp: 1790000000
X-Mets-Signature: sha256=9f2b…

{
  "id": "evt_1042",
  "type": "meeting.ended",
  "created_at": "2026-11-03T09:31:07Z",
  "data": { "meeting": { "id": "…", "code": "abc-defg-hjk", "title": "Weekly sync", "status": "ended" } }
}

Prüfen Sie jede Anfrage

Mets signiert den Body mit dem Geheimnis Ihres Endpunkts: X-Mets-Signature ist sha256= gefolgt vom HMAC-SHA256 aus Zeitstempel, Punkt und rohem Body. Vergleichen Sie in konstanter Zeit und verwerfen Sie Zeitstempel, die älter als fünf Minuten sind.

Webhook prüfen (Node.js)node.js
import crypto from "node:crypto";

// Express: use express.raw({ type: "application/json" }) so you get the exact bytes.
export function verify(rawBody, headers, secret) {
  const ts = headers["x-mets-timestamp"];
  const expected =
    "sha256=" + crypto.createHmac("sha256", secret).update(`${ts}.${rawBody}`).digest("hex");
  const given = headers["x-mets-signature"] ?? "";
  const fresh = Math.abs(Date.now() / 1000 - Number(ts)) < 300; // reject replays
  return (
    fresh &&
    given.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected))
  );
}
Webhook prüfen (Python)python
import hashlib, hmac, time

def verify(raw_body: bytes, headers: dict, secret: str) -> bool:
    ts = headers["X-Mets-Timestamp"]
    mac = hmac.new(secret.encode(), ts.encode() + b"." + raw_body, hashlib.sha256).hexdigest()
    expected = "sha256=" + mac
    fresh = abs(time.time() - int(ts)) < 300  # reject replays
    return fresh and hmac.compare_digest(expected, headers["X-Mets-Signature"])

Referenz

Alles, was Sie brauchen, nichts darüber hinaus

Zwölf Endpunkte decken Meetings, Aufzeichnungen, Transkripte, Zusammenfassungen, Webinar-Anmeldungen und Ereignisse ab.

Basis-URL: https://mets.ulewicz.space/api/v1/public
  • GET/me—
  • GET/meetingsmeetings:read
  • POST/meetingsmeetings:write
  • GET/meetings/{id}meetings:read
  • PATCH/meetings/{id}meetings:write
  • DELETE/meetings/{id}meetings:write
  • GET/meetings/{id}/participantsmeetings:read
  • GET/meetings/{id}/recordingsrecordings:read
  • GET/meetings/{id}/transcripttranscripts:read
  • GET/meetings/{id}/summarytranscripts:read
  • POST/webinars/{slug}/registrationswebinars:write
  • GET/eventsmeetings:read

API-Schlüssel mit Berechtigungen

Authorization: Bearer mets_sk_…. Schlüssel tragen nur die gewährten Berechtigungen, können auf eine Organisation beschränkt werden, ablaufen oder jederzeit widerrufen werden.

Faire Limits

120 Anfragen pro Minute und Spitzen von 20 pro Sekunde je Schlüssel. Jede Antwort enthält X-RateLimit-Header.

OpenAPI 3

Ein vollständiges maschinenlesbares Schema und eine interaktive Konsole zum Ausprobieren.

Interaktive Referenz öffnen

API im Business-Tarif enthalten

Die öffentliche API und Webhooks gehören zum Business-Tarif, ohne Gebühren pro Anfrage. Sie brauchen höhere Limits oder einen individuellen Vertrag? Schreiben Sie uns.

Starten Sie heute Ihre erste Integration

Konto erstellen, Schlüssel generieren und in Minuten die erste Anfrage senden.