Zum Inhalt springen

companyRAG API

Diese Dokumentation beschreibt die API-Schnittstelle für den CompanyRAG Indexer, die über API-Key-Authentifizierung gesichert ist.

Alle Endpunkte in dieser Spezifikation erfordern eine Authentifizierung über API Key. Der API Key muss im Authorization-Header im Bearer Token-Format übermittelt werden.

API Keys werden über das Admin-Panel generiert und haben das Format rag_<64-character-hex-string>.

Beispiel für den Authentifizierungs-Header:

Authorization: Bearer rag_a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890

Alternative (Cookie-basiert für Browser-Clients): Die API unterstützt auch ein access_token-Cookie als Fallback-Authentifizierung.

Name: BearerAuth Typ: HTTP Schema: bearer Beschreibung: API Key Authentifizierung mittels Bearer Token. Format: Bearer rag_<64-character-hex>.


Alle Fehler folgen diesem Format:

{
"error": "Error message description"
}

Häufige HTTP-Statuscodes:

  • 400 Bad Request: Ungültige Anfrageparameter
  • 401 Unauthorized: Fehlende oder ungültige Authentifizierung
  • 403 Forbidden: Unzureichende Berechtigungen
  • 404 Not Found: Ressource nicht gefunden
  • 500 Internal Server Error: Server-seitiger Fehler

Die API ist über die folgenden Server erreichbar:

https://[FIRMA].company-gpt.com/companygpt/rag/api (Bitte [FIRMA] an der richtigen Stelle durch die tatsächliche Domain ersetzen oder in der RAG-UI unter API-Schlüssel demensprechend aus der Browser-Adressleiste kopieren)


Fehlermeldungs-Objekt.

PropertyTypBeschreibung
errorstringFehlermeldung

Metadaten für die Paginierung.

PropertyTypBeschreibung
totalintegerGesamtzahl der Elemente
pageintegerAktuelle Seitennummer (1-indiziert)
pageSizeintegerAnzahl der Elemente pro Seite
totalPagesintegerGesamtzahl der Seiten

Metadaten einer Datei.

PropertyTypFormatBeschreibung
idstringuuidEindeutige Datei-ID
namestringOriginaler Dateiname
blobPathstringPfad im Blob-Speicher
sizeBytesintegerint64Dateigröße in Bytes (optional)
contentTypestringMIME-Typ (optional)
statusstringVerarbeitungsstatus der Datei (pending, indexed, failed, deleted)
collectionIdstringuuidZugehörige Sammlungs-ID (optional)
collectionNamestringZugehöriger Sammlungsname (optional)
createdAtstringdate-timeISO 8601 Erstellungszeitstempel
updatedAtstringdate-timeISO 8601 Letzter Aktualisierungszeitstempel
lastIndexedAtstringdate-timeISO 8601 Letzter Indexierungszeitstempel (optional)

Paginierte Liste von Dateien.

PropertyTypBeschreibung
filesarray of FileInfo
totalinteger
pageinteger
pageSizeinteger
totalPagesinteger

Anfrage zum Hochladen einer Datei (multipart/form-data).

PropertyTypFormatBeschreibung
filestringbinaryHochzuladende Datei
collectionIdstringuuidZiel-Sammlungs-ID (optional)

Antwort nach erfolgreichem Dateiupload.

PropertyTypFormatBeschreibung
idstringuuidDatei-ID
namestringDateiname
statusstringStatus der Datei (pending, indexed, failed)
collectionIdstringuuidSammlungs-ID
createdAtstringdate-timeErstellungszeitstempel

Informationen zu einem Indexierungs-Job.

PropertyTypFormatBeschreibung
idstringuuidEindeutige Job-ID
fileIdstringuuidZugehörige Datei-ID
fileNamestringName der verarbeiteten Datei (optional)
collectionIdstringuuidZugehörige Sammlungs-ID (optional)
collectionNamestringZugehöriger Sammlungsname (optional)
typestringJob-Aktionstyp (index, delete, reindex)
statusstringAktueller Job-Status (pending, running, completed, failed, cancelled)
retryCountintegerAnzahl der Versuche
maxRetriesintegerMaximale Anzahl erlaubter Versuche
errorstringFehlermeldung bei fehlgeschlagenem Job (optional)
createdAtstringdate-timeISO 8601 Erstellungszeitstempel
startedAtstringdate-timeISO 8601 Startzeitstempel (optional)
completedAtstringdate-timeISO 8601 Abschlusszeitstempel (optional)

Paginierte Liste von Jobs.

PropertyTypBeschreibung
jobsarray of JobInfo
totalinteger
pageinteger
pageSizeinteger
totalPagesinteger
statusCountsobjectAnzahl der Jobs pro Status (pending, running, completed, failed, cancelled)

Metadaten einer Sammlung.

PropertyTypFormatBeschreibung
idstringuuidEindeutige Sammlungs-ID
namestringSammlungsname
descriptionstringSammlungsbeschreibung (optional)
createdAtstringdate-time
updatedAtstringdate-time

Paginierte Liste von Sammlungen.

PropertyTypBeschreibung
collectionsarray of CollectionInfo
totalinteger
pageinteger
pageSizeinteger
totalPagesinteger

Anfrage zum Erstellen einer Sammlung.

PropertyTypBeschreibung
namestringSammlungsname
descriptionstringSammlungsbeschreibung (optional)

Anfrage zum Aktualisieren einer Sammlung.

PropertyTypBeschreibung
namestringNeuer Sammlungsname (optional)
descriptionstringNeue Sammlungsbeschreibung (optional)

Konfiguration einer Datenquelle.

PropertyTypFormatBeschreibung
idstringuuid
namestring
typestringTyp der Quelle (sharepoint, firecrawl, custom)
configobjectQuellen-spezifische Konfiguration
createdAtstringdate-time
updatedAtstringdate-time

Paginierte Liste von Datenquellen.

PropertyTypBeschreibung
sourcesarray of SourceInfo
totalinteger
pageinteger
pageSizeinteger

Anfrage zum Erstellen einer Datenquelle.

PropertyTypBeschreibung
namestring
typestringTyp der Quelle (sharepoint, firecrawl, custom)
configobjectQuellen-spezifische Konfiguration

Informationen zu einem API-Key.

PropertyTypFormatBeschreibung
idstringuuid
clientNamestringMenschlich lesbarer Name für den Schlüssel
permissionsarray of stringArray von Berechtigungen (z.B. ["read", "write"])
createdAtstringdate-time
lastUsedAtstringdate-timeLetzter Verwendungszeitstempel (kann null sein)
revokedbooleanGibt an, ob der Schlüssel widerrufen wurde

Paginierte Liste von API-Keys.

PropertyTypBeschreibung
keysarray of APIKeyInfo
totalinteger
pageinteger
pageSizeinteger

Anfrage zum Erstellen eines API-Keys.

PropertyTypBeschreibung
clientNamestringMenschlich lesbarer Name für diesen API-Key
permissionsarray of stringAngefragte Berechtigungen (Standard: ['read'])

Antwort nach Erstellung eines API-Keys.

PropertyTypFormatBeschreibung
idstringuuid
keystringDer tatsächliche API-Key (nur einmal angezeigt)
clientNamestring
permissionsarray of string
createdAtstringdate-time

Endpoints zur Verwaltung von Dateien.

Zusammenfassung: Dateien auflisten Beschreibung: Ruft eine paginierte Liste der für den authentifizierten Benutzer zugänglichen Dateien ab. Die Ergebnisse werden basierend auf den Sammlungsberechtigungen des Benutzers gefiltert. Operation-ID: listFiles Parameter:

  • page (query, optional): Seitennummer (1-indiziert, Standard 1). Typ: integer, Minimum: 1.
  • pageSize (query, optional): Elemente pro Seite (Standard 20, Max 100). Typ: integer, Minimum: 1, Maximum: 100.
  • collectionId (query, optional): Filtern nach Sammlungs-ID. Typ: string, Format: uuid.
  • status (query, optional): Filtern nach Dateistatus. Typ: string, Enum: ['pending', 'indexed', 'failed']. Antworten:
  • 200 OK: Erfolgreiche Antwort. Schema: FileListResponse.
  • 401 Unauthorized: Schema: Error.
  • 500 Internal Server Error: Schema: Error.

Zusammenfassung: Eine Datei hochladen Beschreibung: Lädt eine neue Datei in eine Sammlung hoch. Die Datei wird zur Indexierung in die Warteschlange gestellt. Operation-ID: uploadFile Anfragebody (multipart/form-data):

  • file (erforderlich): Die hochzuladende Datei (binär). Typ: string, Format: binary.
  • collectionId (optional): Ziel-Sammlungs-UUID. Typ: string, Format: uuid. Antworten:
  • 201 Created: Datei erfolgreich hochgeladen. Schema: FileUploadResponse.
  • 400 Bad Request: Ungültige Anfrage. Schema: Error.
  • 401 Unauthorized: Schema: Error.
  • 413 Payload Too Large: Datei zu groß. Schema: Error.

Zusammenfassung: Dateidetails abrufen Beschreibung: Ruft Metadaten und die Indexierungshistorie für eine bestimmte Datei ab. Operation-ID: getFile Parameter:

  • fileId (path, erforderlich): Datei-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Dateidetails. Schema: FileInfo.
  • 401 Unauthorized: Schema: Error.
  • 403 Forbidden: Zugriff verweigert. Schema: Error.
  • 404 Not Found: Datei nicht gefunden. Schema: Error.

Zusammenfassung: Eine Datei löschen Beschreibung: Löscht eine Datei und entfernt sie aus allen Indizes. Operation-ID: deleteFile Parameter:

  • fileId (path, erforderlich): Datei-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Datei gelöscht. Content: application/json, Schema: object mit Property status (string, Beispiel: ‘deleted’).
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Datei nicht gefunden.

Zusammenfassung: Eine Datei neu indexieren Beschreibung: Stellt eine Datei zur erneuten Verarbeitung in die Warteschlange. Operation-ID: reindexFile Parameter:

  • fileId (path, erforderlich): Datei-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Reindex-Job in die Warteschlange gestellt. Schema: JobInfo.
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Datei nicht gefunden.

Endpoints zur Verwaltung von Indexierungs-Jobs.

Zusammenfassung: Indexierungs-Jobs auflisten Beschreibung: Ruft eine paginierte Liste von Indexierungs-Jobs mit optionaler Filterung ab. Operation-ID: listJobs Parameter:

  • page (query, optional): Seitennummer (Standard 1). Typ: integer, Minimum: 1.
  • pageSize (query, optional): Elemente pro Seite (Standard 20, Max 100). Typ: integer, Minimum: 1, Maximum: 100.
  • status (query, optional): Filtern nach Job-Status. Typ: string, Enum: ['pending', 'running', 'completed', 'failed', 'cancelled'].
  • collectionId (query, optional): Filtern nach Sammlungs-ID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Liste von Jobs. Schema: JobListResponse.
  • 401 Unauthorized:

Zusammenfassung: Job-Details abrufen Beschreibung: Ruft detaillierte Informationen zu einem bestimmten Job ab. Operation-ID: getJob Parameter:

  • jobId (path, erforderlich): Job-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Job-Details. Schema: JobInfo.
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Job nicht gefunden.

Zusammenfassung: Einen Job löschen/abbrechen Beschreibung: Bricht einen ausstehenden Job ab oder löscht einen abgeschlossenen Job. Operation-ID: deleteJob Parameter:

  • jobId (path, erforderlich): Job-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Job gelöscht. Content: application/json, Schema: object mit Property status (string, Beispiel: ‘deleted’).
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Job nicht gefunden.

Zusammenfassung: Einen fehlgeschlagenen Job erneut versuchen Beschreibung: Versucht einen fehlgeschlagenen Indexierungs-Job erneut. Operation-ID: retryJob Parameter:

  • jobId (path, erforderlich): Job-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Job erneut versucht. Schema: JobInfo.
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Job nicht gefunden.
  • 409 Conflict: Job kann im aktuellen Zustand nicht erneut versucht werden.

Zusammenfassung: Alle fehlgeschlagenen Jobs erneut versuchen Beschreibung: Versucht alle fehlgeschlagenen Jobs für die zugänglichen Sammlungen des Benutzers erneut. Operation-ID: retryAllFailedJobs Antworten:

  • 200 OK: Erneuter Versuch für alle fehlgeschlagenen Jobs in die Warteschlange gestellt. Content: application/json, Schema: object mit Property retried (integer, Beschreibung: Anzahl der zur Wiederholung in die Warteschlange gestellten Jobs).

Zusammenfassung: Alle fehlgeschlagenen Jobs löschen Beschreibung: Löscht alle fehlgeschlagenen Jobs für die zugänglichen Sammlungen des Benutzers. Operation-ID: deleteAllFailedJobs Antworten:

  • 200 OK: Fehlgeschlagene Jobs gelöscht. Content: application/json, Schema: object mit Property deleted (integer).

Zusammenfassung: Alle Dateien neu indexieren Beschreibung: Stellt alle Dateien in den zugänglichen Sammlungen des Benutzers zur Neuindexierung in die Warteschlange. Operation-ID: reindexAll Antworten:

  • 200 OK: Reindex-Jobs in die Warteschlange gestellt. Content: application/json, Schema: object mit Property queued (integer, Beschreibung: Anzahl der zur Neuindexierung in die Warteschlange gestellten Dateien).

Endpoints zur Verwaltung von Sammlungen.

Zusammenfassung: Sammlungen auflisten Beschreibung: Ruft eine paginierte Liste der für den Benutzer zugänglichen Sammlungen ab. Operation-ID: listCollections Parameter:

  • page (query, optional): Seitennummer (Standard 1). Typ: integer.
  • pageSize (query, optional): Elemente pro Seite (Standard 20, Max 100). Typ: integer. Antworten:
  • 200 OK: Liste von Sammlungen. Schema: CollectionListResponse.
  • 401 Unauthorized:

Zusammenfassung: Sammlung erstellen Beschreibung: Erstellt eine neue Sammlung. Operation-ID: createCollection Anfragebody (application/json):

  • Schema: CollectionCreateRequest. Antworten:
  • 201 Created: Sammlung erstellt. Schema: CollectionInfo.
  • 400 Bad Request: Ungültige Anfrage. Schema: Error.
  • 401 Unauthorized:

Zusammenfassung: Sammlungsdetails abrufen Beschreibung: Ruft Metadaten für eine bestimmte Sammlung ab. Operation-ID: getCollection Parameter:

  • collectionId (path, erforderlich): Sammlungs-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Sammlungsdetails. Schema: CollectionInfo.
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Sammlung nicht gefunden.

Zusammenfassung: Sammlung aktualisieren Beschreibung: Aktualisiert Sammlungsmetadaten. Operation-ID: updateCollection Parameter:

  • collectionId (path, erforderlich): Sammlungs-UUID. Typ: string, Format: uuid. Anfragebody (application/json):
  • Schema: CollectionUpdateRequest. Antworten:
  • 200 OK: Sammlung aktualisiert. Schema: CollectionInfo.
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Sammlung nicht gefunden.

Zusammenfassung: Sammlung löschen Beschreibung: Löscht eine Sammlung und alle zugehörigen Daten. Operation-ID: deleteCollection Parameter:

  • collectionId (path, erforderlich): Sammlungs-UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: Sammlung gelöscht.
  • 401 Unauthorized:
  • 403 Forbidden: Zugriff verweigert.
  • 404 Not Found: Sammlung nicht gefunden.

Endpoints zur Verwaltung von Datenquellen.

Zusammenfassung: Datenquellen auflisten Beschreibung: Ruft eine paginierte Liste der konfigurierten Datenquellen ab. Operation-ID: listSources Parameter:

  • page (query, optional): Typ: integer.
  • pageSize (query, optional): Typ: integer. Antworten:
  • 200 OK: Liste von Quellen. Schema: SourceListResponse.
  • 401 Unauthorized:

Zusammenfassung: Datenquelle erstellen Beschreibung: Konfiguriert eine neue Datenquelle (SharePoint, Firecrawl, etc.). Operation-ID: createSource Anfragebody (application/json):

  • Schema: SourceCreateRequest. Antworten:
  • 201 Created: Quelle erstellt. Schema: SourceInfo.
  • 400 Bad Request: Ungültige Anfrage.
  • 401 Unauthorized:

Zusammenfassung: Quellendetails abrufen Operation-ID: getSource Parameter:

  • sourceId (path, erforderlich): Typ: string, Format: uuid. Antworten:
  • 200 OK: Quellendetails. Schema: SourceInfo.
  • 401 Unauthorized:
  • 404 Not Found: Quelle nicht gefunden.

Zusammenfassung: Quelle aktualisieren Operation-ID: updateSource Parameter:

  • sourceId (path, erforderlich): Typ: string, Format: uuid. Anfragebody (application/json):
  • Schema: SourceCreateRequest. Antworten:
  • 200 OK: Quelle aktualisiert. Schema: SourceInfo.
  • 401 Unauthorized:
  • 404 Not Found: Quelle nicht gefunden.

Zusammenfassung: Quelle löschen Operation-ID: deleteSource Parameter:

  • sourceId (path, erforderlich): Typ: string, Format: uuid. Antworten:
  • 200 OK: Quelle gelöscht.
  • 401 Unauthorized:
  • 404 Not Found: Quelle nicht gefunden.

Zusammenfassung: Quellensynchronisierung auslösen Beschreibung: Löst manuell eine Synchronisierung von dieser Datenquelle aus. Operation-ID: syncSource Parameter:

  • sourceId (path, erforderlich): Typ: string, Format: uuid. Antworten:
  • 200 OK: Synchronisierung ausgelöst. Schema: JobInfo.
  • 401 Unauthorized:
  • 404 Not Found: Quelle nicht gefunden.

Endpoints für die Verwaltung von API-Keys durch Administratoren.

Zusammenfassung: API-Keys auflisten (Admin) Beschreibung: Listet alle API-Keys auf (nur für Administratoren). Operation-ID: listAPIKeys Parameter:

  • page (query, optional): Typ: integer.
  • pageSize (query, optional): Typ: integer. Antworten:
  • 200 OK: Liste von API-Keys. Schema: APIKeyListResponse.
  • 401 Unauthorized:
  • 403 Forbidden: Admin-Zugriff erforderlich.

Zusammenfassung: API-Key erstellen (Admin) Beschreibung: Erstellt einen neuen API-Key für einen Benutzer oder eine Anwendung. Operation-ID: createAPIKey Anfragebody (application/json):

  • Schema: APIKeyCreateRequest. Antworten:
  • 201 Created: API-Key erstellt (Schlüssel wird nur einmal angezeigt). Schema: APIKeyCreateResponse.
  • 400 Bad Request: Ungültige Anfrage. Schema: Error.
  • 401 Unauthorized:
  • 403 Forbidden: Admin-Zugriff erforderlich.

Zusammenfassung: API-Key widerrufen (Admin) Beschreibung: Widerruft einen API-Key, wodurch die weitere Verwendung verhindert wird. Operation-ID: revokeAPIKey Parameter:

  • keyId (path, erforderlich): API-Key UUID. Typ: string, Format: uuid. Antworten:
  • 200 OK: API-Key widerrufen.
  • 401 Unauthorized:
  • 403 Forbidden: Admin-Zugriff erforderlich.
  • 404 Not Found: API-Key nicht gefunden.