Skip to main content
Alle Endpunkte erfordern eine angemeldete Sitzung. Grundlagen siehe API-Überblick. Konzepte siehe Spaces & Wissen.

POST /api/spaces

Einen neuen Space anlegen. Request-Body:
{
  "account_id": "uuid",
  "name": "Marketing-Material",
  "description": "Markenrichtlinien und Vorlagen",
  "goal": "Konsistente Markenstimme sicherstellen",
  "tone_and_format": "Professionell, freundlich",
  "target_group": "Marketing-Team",
  "rules": "Immer den Markenrichtlinien folgen",
  "context": "Wir sind ein B2B-SaaS-Unternehmen"
}
Validierung: account_id und name sind Pflicht; die übrigen Felder sind optional. Antwort:
{
  "success": true,
  "space": {
    "id": "uuid",
    "account_id": "uuid",
    "accountId": "uuid",
    "name": "Marketing-Material",
    "description": "Markenrichtlinien und Vorlagen",
    "systemPrompt": null,
    "status": "draft",
    "created_at": "2026-01-24T10:00:00Z",
    "createdAt": "2026-01-24T10:00:00Z"
  }
}
Ein neuer Space startet im Status draft und wird erst nach der Verarbeitung active.

GET /api/spaces

Eigene Spaces des aktuellen Nutzers in einem Account abrufen. Der Endpoint ist keine account-weite Gesamtliste aller geteilten Spaces. Query-Parameter:
ParameterTypPflichtStandardBeschreibung
account_idUUIDJaAccount
statusstringNeinFilter (draft / processing / active)
limitnumberNein50Max. Anzahl (Obergrenze: 100)
offsetnumberNein0Paginierungs-Offset

GET /api/spaces/[spaceId]

Einen einzelnen Space inklusive Dateien und eigener Berechtigungsstufe abrufen. Antwort:
{
  "success": true,
  "space": {
    "id": "uuid",
    "name": "Marketing-Material",
    "status": "active",
    "systemPrompt": "Generierter Prompt ...",
    "files": [
      {
        "id": "uuid",
        "spaceId": "uuid",
        "accountId": "uuid",
        "uploadedBy": "uuid",
        "storagePath": "account/space/leitfaden.pdf",
        "filename": "leitfaden.pdf",
        "mimeType": "application/pdf",
        "sizeBytes": 102400,
        "status": "ready",
        "processingError": null,
        "extractedText": "Extrahierter Text ...",
        "metadata": {},
        "createdAt": "2026-01-24T10:00:00Z",
        "updatedAt": "2026-01-24T10:00:00Z"
      }
    ]
  },
  "permission": "owner"
}
Mögliche Werte für permission: owner, read_write, read. Datei-Felder sind camelCase; status einer Datei ist pending, processing, ready oder error.

PATCH /api/spaces/[spaceId]

Einen Space aktualisieren. Alle Felder sind optional; nur übergebene Felder werden geändert.

DELETE /api/spaces/[spaceId]

Einen Space löschen. Berechtigung: Ersteller:in oder Account-Owner. Dateien und aufbereitete Inhalte werden mit entfernt.
{
  "success": true
}

POST /api/spaces/[spaceId]/process

Einen Space verarbeiten: Text extrahieren, durchsuchbar machen und einen System-Prompt erzeugen. Es handelt sich um eine länger laufende Operation (bis zu 5 Minuten). Antwort:
{
  "success": true,
  "space": {
    "id": "uuid",
    "system_prompt": "Generierter System-Prompt ...",
    "score": 85,
    "status": "active"
  },
  "filesProcessed": 5,
  "sectionsCreated": 42
}