API-Dokumentation

Steuern Sie SmartBrief AI programmatisch. Alles, was Sie in der Weboberfläche tun können - Themen anlegen, Berichte erstellen, automatische Zustellung konfigurieren - steht auch über die HTTP-API zur Verfügung.

Basis-URL für alle Endpunkte:

https://smartbrief-ai.promptingbirds.com/api/v1

Alle Anfragen und Antworten verwenden application/json (Ausnahme: der PDF-Download). Die API arbeitet ausschließlich auf Ihren eigenen Daten - exakt mit den gleichen Rechten und Limits wie Ihr Konto in der Weboberfläche.

Authentifizierung

Jede Anfrage benötigt einen persönlichen API-Key.

  1. Öffnen Sie Ihr Konto → Abschnitt API-Zugriff und erstellen Sie einen Key.
  2. Der vollständige Key wird nur einmal angezeigt. Bewahren Sie ihn sicher auf (z. B. in einem Secret-Manager).
  3. Übergeben Sie den Key bei jeder Anfrage in einem der beiden Header:
Authorization: Bearer sbk_ihr_key_hier
# oder alternativ
X-API-Key: sbk_ihr_key_hier

Sie können mehrere Keys anlegen (bis zu 10 aktive) und jeden einzeln widerrufen. Voraussetzung zum Erstellen von Berichten ist ein aktiver Plan (siehe unten); Themen und Zeitpläne funktionieren auf jedem Plan.

Sicherheit: Keys werden serverseitig nur als Hash gespeichert und können jederzeit im Konto widerrufen werden. Ein Key wirkt ausschließlich für Ihr eigenes Konto. Behandeln Sie ihn wie ein Passwort und geben Sie ihn niemals an clientseitigen Code oder in ein öffentliches Repository.

Kontingent & Limits

Die API nutzt dasselbe Plan-Kontingent wie die Weboberfläche.

  • Das Erstellen eines Berichts (POST /v1/topics/{id}/reports) zählt gegen Ihr monatliches Berichtskontingent Ihres Plans.
  • Ist das Kontingent erschöpft oder kein aktives Abonnement vorhanden, antwortet die API mit 402 Payment Required.
  • Ihren aktuellen Verbrauch fragen Sie jederzeit über GET /v1/me ab (reports_used / reports_remaining).
  • Themen, Zeitpläne und weitere Verwaltungsaktionen sind nicht kontingentiert.

Schnellstart

Ein Thema anlegen und sofort einen Bericht auslösen:

# 1) Thema anlegen
curl -X POST https://smartbrief-ai.promptingbirds.com/api/v1/topics \
  -H "Authorization: Bearer sbk_ihr_key_hier" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Wettbewerber XY",
    "description": "Neuigkeiten, Produkte und Personalien",
    "schedule_interval_weeks": 1
  }'
# → { "id": 42, "name": "Wettbewerber XY", ... }

# 2) Bericht für dieses Thema erstellen
curl -X POST https://smartbrief-ai.promptingbirds.com/api/v1/topics/42/reports \
  -H "Authorization: Bearer sbk_ihr_key_hier" \
  -H "Content-Type: application/json" \
  -d '{ "timeframe_preset": "last_week" }'
# → { "id": 1337, "status": "running", ... }

# 3) Bericht abrufen (Status/Markdown)
curl https://smartbrief-ai.promptingbirds.com/api/v1/reports/1337 \
  -H "Authorization: Bearer sbk_ihr_key_hier"

Berichte werden asynchron erzeugt: Der Bericht startet mit status: "running" und wechselt später auf completed (bzw. failed). Fragen Sie den Bericht erneut ab, bis er abgeschlossen ist.

Konto & Verbrauch

GET/v1/me
Konto-Informationen und aktueller Verbrauch im laufenden Abrechnungszeitraum.
{
  "email": "sie@firma.de",
  "plan": "professional",
  "reports_used": 12,
  "reports_limit": 60,
  "reports_remaining": 48,
  "period_start": "2026-06-15T00:00:00.000Z",
  "period_end": "2026-07-15T00:00:00.000Z",
  "plan_expired": false
}

Themen

Ein Thema (Topic) bündelt eine Rechercheanfrage und deren Einstellungen. Felder beim Anlegen/Ändern: name (Pflicht), description, extra_urls, report_layout, schedule_interval_weeks (0 = kein Zeitplan).

Antwort-Objekt (das Suchfeld query wird automatisch aus name + description erzeugt):

{
  "id": 42,
  "name": "Marktbeobachtung",
  "query": "Marktbeobachtung Regulatorik & Preise",
  "description": "Regulatorik & Preise",
  "extra_urls": null,
  "report_layout": null,
  "owner_email": "sie@firma.de",
  "schedule_interval_weeks": 4,
  "created_at": "2026-07-01T09:00:00.000Z",
  "updated_at": "2026-07-01T09:00:00.000Z"
}
GET/v1/topics
Listet alle Ihre Themen.
POST/v1/topics
Legt ein neues Thema an.
curl -X POST https://smartbrief-ai.promptingbirds.com/api/v1/topics \
  -H "Authorization: Bearer sbk_ihr_key_hier" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Marktbeobachtung", "description": "Regulatorik & Preise", "schedule_interval_weeks": 4 }'
GET/v1/topics/{id}
Ruft ein einzelnes Thema ab.
PUT/v1/topics/{id}
Aktualisiert ein Thema. Es werden nur mitgesendete Felder geändert.
DELETE/v1/topics/{id}
Löscht ein Thema. Laufende Berichte dazu werden als fehlgeschlagen markiert; bereits fertige Berichte bleiben erhalten. Antwort 204 No Content.

Berichte

Berichte werden asynchron erzeugt. Statuswerte: pending, running, completed, failed. Bei completed enthält markdown den fertigen Bericht; bei failed nennt error_message den Grund. Weitere Felder u. a.: title, topic_id, timeframe_start/timeframe_end, completed_at.

POST/v1/topics/{id}/reports
Erstellt (triggert) einen neuen Bericht für das Thema. Optionaler Body: timeframe_preset = "last_week" oder "last_month" (Standard: Themen-Einstellung). Zählt gegen Ihr Kontingent.
{
  "id": 1337,
  "topic_id": 42,
  "topic_name": "Wettbewerber XY",
  "status": "running",
  "timeframe_preset": "last_week",
  "created_at": "2026-07-01T09:12:00.000Z"
}
GET/v1/reports
Listet alle Ihre Berichte (neueste zuerst), inkl. Status und Markdown-Inhalt.
GET/v1/reports/{id}
Ruft einen einzelnen Bericht ab (inkl. markdown, sobald status: "completed").
GET/v1/reports/{id}/download
Lädt den Bericht als PDF herunter (Content-Type: application/pdf). Nur verfügbar, wenn der Bericht Inhalt hat.

Hinweis: Berichte können über die API nicht gelöscht werden.

Automatische Zustellung

Konfigurationen für den automatischen Versand von Berichten per E-Mail. Empfänger müssen Mitglieder Ihrer Organisation sein.

GET/v1/auto-report-configs
Listet alle Ihre Zustell-Konfigurationen.
POST/v1/auto-report-configs
Legt Zustellungen an. Body: topic_id (Pflicht), frequency (daily/weekly/monthly), scheduled_day_of_week (0-6), scheduled_hour, scheduled_minute, sowie emails (Liste) oder email (einzeln).
curl -X POST https://smartbrief-ai.promptingbirds.com/api/v1/auto-report-configs \
  -H "Authorization: Bearer sbk_ihr_key_hier" \
  -H "Content-Type: application/json" \
  -d '{
    "topic_id": 42,
    "frequency": "weekly",
    "scheduled_day_of_week": 1,
    "scheduled_hour": 8,
    "emails": ["team@firma.de"]
  }'

Antwort: { "created": [...], "skipped": [...] }. Empfänger, die keine Organisationsmitglieder sind oder bereits konfiguriert waren, erscheinen in skipped mit Grund not_member bzw. already_configured. Pro Empfänger wird eine Konfiguration angelegt.

PUT/v1/auto-report-configs/{id}
Aktualisiert den Zeitplan einer einzelnen Konfiguration.
PUT/v1/auto-report-configs/group
Aktualisiert einen ganzen Zustell-Satz (Zeitplan + Empfängerliste) in einem Aufruf. Body: config_ids, Zeitplanfelder und emails.
DELETE/v1/auto-report-configs/{id}
Entfernt eine Zustell-Konfiguration. Antwort 204 No Content.

Fehler

Fehler kommen als JSON mit einem detail-Feld: { "detail": "…" }.

  • 400 - Ungültige Eingabe.
  • 401 - API-Key fehlt, ist ungültig oder widerrufen.
  • 402 - Kein aktives Abonnement oder Berichtskontingent erschöpft.
  • 404 - Ressource nicht gefunden (oder gehört nicht Ihrem Konto).