REST-API

Die ContextDecay REST-API ermöglicht es, Entscheidungen programmatisch zu lesen, erstellen, aktualisieren und zu exportieren. Ideal für Automatisierungen, eigene Dashboards oder die Anbindung an interne Systeme.

Authentifizierung

Alle API-Anfragen erfordern einen API-Key im Authorization-Header:

Authorization: Bearer cd_IhrApiKey...

API-Keys erstellen Sie in der App unter Einstellungen → API-Keys. Jeder Key hat einen Scope (read oder write) und ist an Ihre Organisation gebunden.

Basis-URL

UmgebungURL
Cloudhttps://app.contextdecay.de/api/v1
On-Premisehttps://ihre-domain.de/api/v1

Entscheidungen lesen

GET /api/v1/decisions

Query-Parameter:
  status    - Filtern nach Status (proposed, under_review, accepted, rejected, superseded)
  area      - Filtern nach Bereich
  limit     - Max. Ergebnisse (1-500, Standard: 50)
  offset    - Pagination-Offset (Standard: 0)

Beispiel:
  GET /api/v1/decisions?status=accepted&area=IT&limit=20

Antwort: JSON-Array mit Entscheidungs-Objekten

Einzelne Entscheidung

GET /api/v1/decisions/:id

Antwort: Einzelnes Entscheidungs-Objekt mit allen Feldern

Entscheidung erstellen

POST /api/v1/decisions
Content-Type: application/json

{
  "title": "Wechsel zu Grafana",
  "area": "IT",
  "context": "Monitoring-Lösung zu teuer",
  "reasoning": "Grafana ist günstiger und self-hosted",
  "alternatives": [
    {"title": "Datadog beibehalten", "reason": "Zu teuer"}
  ],
  "consequences": ["Migrationsaufwand", "Kostensenkung"],
  "tags": ["monitoring", "infrastruktur"],
  "owner": "Sarah",
  "deadline": "2026-06-30",
  "confidence": 0.8,
  "reviewIntervalDays": 90
}

Antwort: Erstelltes Entscheidungs-Objekt mit ID

Entscheidung aktualisieren

PATCH /api/v1/decisions/:id
Content-Type: application/json

{
  "status": "accepted",
  "reasoning": "Aktualisierte Begründung..."
}

Antwort: Aktualisiertes Entscheidungs-Objekt

Export

GET /api/v1/export          - JSON-Export aller Entscheidungen
GET /api/v1/export/csv      - CSV-Export
GET /api/v1/export/pdf      - PDF-Export
GET /api/v1/export/calendar - iCal-Export (Review-Termine)

Health-Check

GET /api/v1/health

Antwort: {"status": "ok", "version": "..."}

OData-Endpunkt

Für die Anbindung an Power BI oder Excel:

GET /api/v1/odata/decisions

Unterstützt $filter, $select, $orderby, $top, $skip.
Verbinden Sie Power BI mit der URL als OData-Feed.

KI-Proxy (für On-Premise)

On-Premise-Installationen können KI-Funktionen über den Cloud-Proxy nutzen:

POST /api/v1/ai-proxy
Content-Type: application/json

{
  "action": "quick-capture",    // oder "extract"
  "text": "Beschreibung der Entscheidung...",
  "locale": "de",               // optional: "de" oder "en"
  "existingAreas": ["IT", "QM"] // optional: bestehende Bereiche
}

Antwort Quick Capture: Einzelnes Entscheidungs-Objekt
Antwort Extract: {"decisions": [...]}

Webhooks

ContextDecay kann bei Änderungen an Entscheidungen Ihre Systeme benachrichtigen. Konfigurieren Sie Webhooks unter Einstellungen → Webhooks.

Payload-Format

{
  "event": "decision.created",  // .updated, .reviewed, .status_changed
  "decision": {
    "id": "dec-...",
    "title": "...",
    "status": "proposed",
    "area": "IT",
    "owner": "...",
    "healthScore": 0.85,
    "updatedAt": "2026-04-13T10:00:00Z"
  },
  "timestamp": "2026-04-13T10:00:00Z",
  "organization": "Ihre Firma"
}

Der Webhook wird mit einer HMAC-SHA256-Signatur im Header X-Signature-256 gesendet. Verifizieren Sie die Signatur mit dem Webhook-Secret aus den Einstellungen.

Rate-Limits

EndpunktLimit
Lesen (GET)100 Anfragen/Minute pro API-Key
Schreiben (POST/PATCH)100 Anfragen/Minute pro API-Key
KI-Proxy20 Anfragen/Stunde pro Organisation
Export10 Anfragen/Minute pro API-Key

Bei Überschreitung erhalten Sie HTTP 429 Too Many Requests mit einem Retry-After-Header.

Fehlercodes

CodeBedeutung
401Kein oder ungültiger API-Key
403Unzureichende Berechtigung (falscher Scope)
404Ressource nicht gefunden
429Rate-Limit oder KI-Budget überschritten
500Interner Serverfehler