REST API Referenz
BetaHTTP-Schnittstelle für Projekte, Profile, Inhalte, Suche und Analyse-Jobs.
Authentifizierung
Alle geschuetzten Endpunkte erwarten einen Bearer Token.
Authorization: Bearer YOUR_API_TOKEN
Production Base URL
https://api.audience-suite.de
API Token / Key erstellen
Einen API Token oder Key koennen Sie hier erstellen: suite.audience-experts.de/api-tokens
API Tester
Antwort
Noch keine Anfrage gesendet.
Status
/api/status
Authorization not required
Liefert den Betriebszustand des Dienstes.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
Keine | -- | -- | Der Endpunkt erwartet keine Parameter. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
status | string | Fester Statuswert, aktuell ok. |
service | string | Name des Dienstes als Identifikator. |
uptime | number | Laufzeit in Sekunden seit dem Start. |
timestamp | string | ISO-8601-Zeitpunkt der Antwort. |
{
"status": "ok",
"service": "audience-suite-api",
"uptime": 175.883477544,
"timestamp": "2026-05-03T21:44:13.065Z"
}
Projekte
/api/projects
Authorization required
Listet alle Projekte des authentifizierten Nutzers.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
Keine | -- | -- | Der Endpunkt benoetigt keine Parameter. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
items | Array<Project> | Liste der Projekte des Nutzers. |
projectId | string | Eindeutige Projekt-ID im Array-Element. |
type | string | Entitaetstyp, zum Beispiel Project. |
projectType | string | Fachlicher Typ des Projekts, zum Beispiel files. |
state | string | Aktueller Verarbeitungsstatus. |
name | string | Anzeige-Name des Projekts. |
description | string | Freitextbeschreibung. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
data | object | UI-Metadaten wie Icon-Name und Farbe. |
options | object | Projektspezifische Konfiguration und Quellen. |
[
{
"projectId": "proj_demo123",
"type": "Project",
"projectType": "files",
"state": "Finished",
"name": "Demo Analyseprojekt",
"description": "Auswertung von Interviews und Frageboegen",
"context": "",
"createdAt": "2026-01-08T14:44:35.026Z",
"data": {
"iconColor": "bg-blue-500",
"iconName": "Briefcase"
},
"options": {
"profileCount": 1,
"files": [
{
"name": "Interview 01.docx",
"lastModified": 1766161526004,
"size": 18159359,
"type": "einzelinterview"
}
],
"categories": [
{
"categoryName": "Person und Kontext",
"categoryDescription": "Informationen zur Person und zum Arbeitsumfeld."
}
],
"projectContext": "Kurzbeschreibung des Analysekontexts.",
"imageStyle": "realistic",
"identityId": "eu-central-1:identity-demo"
}
}
]
Profile
/api/projects/:projectId/profilesAuthorization requiredListet alle Zielgruppenprofile eines Projekts. Die Antwort ist ein Array; jedes Element hat dieselbe Struktur wie der Detail-Endpunkt.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | Projekt-ID, z. B. proj_demo123. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
items | Array<Profile> | Liste der Profile des Projekts. |
projectId | string | ID des zugeordneten Projekts. |
profileId | string | Eindeutige Profil-ID im Element. |
name | string | Anzeige-Name des Profils. |
beschreibung | string | Freitextbeschreibung. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
schwartz_values | object | Werteprofil mit numerischen Auspraegungen. |
userNeeds | object | Beduerfnisse mit numerischen Werten. |
eigenschaften | Array<object> | Liste fachlicher Eigenschaften. |
kernwerte | Array<object> | Liste fachlicher Kernwerte. |
categories | Array<object> | Kategorien mit Quellen und Inhaltsbausteinen. |
/api/projects/:projectId/profiles/:profileIdAuthorization requiredLiefert ein einzelnes Profil inklusive Kategorien, Quellen, Kernaussagen, Eigenschaften, Werten und User-Needs.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | Projekt-ID des Containers. |
profileId | Path | string | Profil-ID des gesuchten Profils. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
projectId | string | Zuordnung zum Projekt. |
profileId | string | Eindeutige Profil-ID. |
name | string | Profilname. |
beschreibung | string | Freitextbeschreibung. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
schwartz_values | object | Numerische Werte pro Wertedimension. |
userNeeds | object | Numerische Werte pro User-Need. |
eigenschaften | Array<object> | Eigenschaften mit Name und Beschreibung. |
kernwerte | Array<object> | Kernwerte mit Name und Beschreibung. |
categories | Array<object> | Kategorien mit Quellen und Eintraegen. |
{
"projectId": "proj_demo123",
"profileId": "prof_demo456",
"name": "Alex Beispiel",
"beschreibung": "",
"createdAt": "2026-01-08T15:15:55.876Z",
"schwartz_values": {
"Macht": 3,
"Universalismus": 2,
"Tradition": 2,
"Wohltätigkeit": 5,
"Selbstbestimmung": 3,
"Hedonismus": 2,
"Stimulation": 3,
"Leistung": 3,
"Konformität": 2,
"Sicherheit": 3
},
"userNeeds": {
"Keep me engaged": 5,
"Educate me": 4,
"Give me perspective": 4,
"Inspire me": 3,
"Help me": 4,
"Connect me": 5,
"Update me": 4,
"Divert me": 1
},
"eigenschaften": [
{
"name": "Anpassungsfähigkeit",
"description": "Reagiert flexibel auf neue Situationen und Anforderungen."
}
],
"kernwerte": [
{
"name": "Innovation",
"description": "Sucht nach neuen Loesungen, um Prozesse zu verbessern."
}
],
"categories": [
{
"name": "Person und Kontext",
"sources": ["Interview 01.docx", "Fragebogen.csv"],
"items": [
{
"typ": "aussage",
"text": "Legt grossen Wert auf kollegiale Beratung in einem vertraulichen Rahmen."
},
{
"typ": "quote",
"text": "Persoenliche Kontakte und eine starke Community sind fuer mich essenziell."
}
]
}
]
}
Feeds & Plaene
/api/projects/:projectId/profiles/:profileId/feedsAuthorization requiredListet Content-Feeds eines Profils. Wenn noch keine Feeds erzeugt wurden, wird ein leeres Array geliefert.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | Projekt-ID des Feeds-Containers. |
profileId | Path | string | Profil-ID, fuer das die Feeds geladen werden. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
items | Array<Feed> | Liste der Feeds; ein leeres Array ist gueltig. |
feedId | string | Eindeutige Feed-ID im Element. |
projectId | string | Zugeordnetes Projekt. |
profileId | string | Zugeordnetes Profil. |
type | string | Fachlicher Typ des Feeds. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
[]
/api/projects/:projectId/profiles/:profileId/schedulesAuthorization requiredListet Redaktions- oder Veröffentlichungsplaene eines Profils. Wenn noch keine Plaene existieren, wird ein leeres Array geliefert.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | Projekt-ID des Containers. |
profileId | Path | string | Profil-ID, fuer die Plaene geladen werden. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
items | Array<Schedule> | Liste der Plaene; ein leeres Array ist gueltig. |
scheduleId | string | Eindeutige Plan-ID im Element. |
projectId | string | Zugeordnetes Projekt. |
profileId | string | Zugeordnetes Profil. |
type | string | Fachlicher Typ des Plans. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
[]
Knowledge Search
/api/projects/:projectId/search?q=:query&limit=:limit&type=:typeAuthorization requiredDurchsucht die ChromaDB-Wissensbasis eines Projekts. limit ist optional und wird serverseitig auf maximal 20 begrenzt. Mit type kannst du die Suche auf both, insight oder chunk einschränken.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | ID des Projekts, in dessen Wissensbasis gesucht wird. |
q | Query | string | Suchbegriff fuer die semantische Abfrage. |
limit | Query | number | Maximale Anzahl der Treffer, optional. |
type | Query | string | Optionaler Suchumfang. Erlaubt sind both, insight und chunk. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
items | Array<SearchHit> | Liste der Treffer aus ChromaDB. |
id | Array<string> | Treffer-IDs pro Resultatposition. |
text | Array<string> | Extrahierte Textausschnitte aus der Wissensbasis. |
metadata | Array<object> | Zusatzdaten wie Quelle, Typ und Projektbezug. |
[
{
"id": ["chunk_demo_001"],
"text": ["Relevanter Ausschnitt aus Interview oder Fragebogen."],
"metadata": [
{
"type": "insight",
"projectId": "proj_demo123",
"source": "Interview 01.docx"
}
]
}
]
Fehlerantwort bei nicht erreichbarer ChromaDB
{
"error": "Failed to connect to chromadb. Make sure your server is running and try again."
}
Analyse-Jobs
/api/projects/:projectId/jobs/analysisAuthorization requiredStartet eine reine Analyse mit multipart/form-data. Erwartet mindestens ein Feld file.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | ID des Projekts, in dem der Job angelegt wird. |
file | Multipart | File | Mindestens eine hochgeladene Datei fuer die Analyse. |
config | Multipart | string / JSON | Optionale JSON-Konfiguration als Textfeld. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
jobId | string | Eindeutige Job-ID. |
creditCost | number | Berechnete Kosten in Credits. |
{
"jobId": "job_demo001",
"creditCost": 2
}
/api/projects/:projectId/jobs/profileAuthorization requiredStartet eine Analyse mit Profilgenerierung. Erwartet file und profileCount.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | ID des Projekts, in dem der Job angelegt wird. |
file | Multipart | File | Mindestens eine hochgeladene Datei fuer die Analyse. |
profileCount | Multipart | number | Anzahl der zu erzeugenden Profile. |
config | Multipart | string / JSON | Optionale JSON-Konfiguration als Textfeld. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
jobId | string | Eindeutige Job-ID. |
creditCost | number | Berechnete Kosten in Credits. |
{
"jobId": "job_demo002",
"creditCost": 10
}
/api/projects/:projectId/jobsAuthorization requiredListet Jobs eines Projekts.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | ID des Projekts, dessen Jobs geladen werden. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
items | Array<Job> | Liste der Jobs des Projekts. |
projectId | string | Zugeordnetes Projekt. |
jobId | string | Eindeutige Job-ID. |
type | string | Entitaetstyp, zum Beispiel Job. |
jobType | string | Fachlicher Job-Typ. |
jobMode | string | Ausfuehrungsmodus fuer Datei-Jobs. |
status | string | Aktueller Bearbeitungsstatus. |
creditCost | number | Kosten in Credits. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
updatedAt | string | ISO-8601-Zeitstempel der letzten Aenderung. |
config | object | Gespeicherte Job-Konfiguration. |
[
{
"type": "Job",
"projectId": "proj_demo123",
"jobId": "job_demo001",
"jobType": "file",
"jobMode": "analyze-only",
"status": "Finished",
"creditCost": 2,
"createdAt": "2026-03-15T17:18:10.994Z",
"updatedAt": "2026-03-15T17:30:26.578Z",
"config": {
"profileCount": 0,
"projectContext": "Demo-Kontext",
"identityId": "eu-central-1:identity-demo",
"jobMode": "analyze-only",
"imageStyle": "realistic",
"files": [
{
"name": "Interview 01.docx",
"lastModified": 1691839900000,
"s3Key": "users/user_demo/projects/proj_demo123/readonly/Interview 01.docx",
"size": 22271,
"type": "einzelinterview"
}
],
"categories": [
{
"categoryName": "Demografie",
"description": "Alter, Rolle und weitere Basisdaten."
}
]
}
}
]
/api/projects/:projectId/jobs/:jobIdAuthorization requiredLiefert denselben Job-Datensatz als einzelnes Objekt. Bei unbekannter ID wird 404 mit {"error":"Job not found"} geliefert.
| Request-Parameter | Ort | Typ | Erlaeuterung |
|---|---|---|---|
projectId | Path | string | ID des Projekts. |
jobId | Path | string | Job-ID des gesuchten Eintrags. |
| Response-Attribut | Typ | Erlaeuterung |
|---|---|---|
projectId | string | Zugeordnetes Projekt. |
jobId | string | Eindeutige Job-ID. |
type | string | Entitaetstyp, zum Beispiel Job. |
jobType | string | Fachlicher Job-Typ. |
jobMode | string | Modus des Datei-Jobs. |
status | string | Aktueller Bearbeitungsstatus. |
creditCost | number | Kosten in Credits. |
createdAt | string | ISO-8601-Zeitstempel der Anlage. |
updatedAt | string | ISO-8601-Zeitstempel der letzten Aenderung. |
config | object | Gespeicherte Job-Konfiguration. |
Request JSON
{
"projectId": "proj_demo123",
"jobId": "job_demo001"
}
Response JSON
{
"type": "Job",
"projectId": "proj_demo123",
"jobId": "job_demo001",
"jobType": "file",
"jobMode": "analyze-only",
"status": "Finished",
"creditCost": 2,
"createdAt": "2026-03-15T17:18:10.994Z",
"updatedAt": "2026-03-15T17:30:26.578Z",
"config": {
"profileCount": 0,
"projectContext": "Demo-Kontext",
"files": [],
"categories": []
}
}