> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.trendhero.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Wie funktioniert die API von TrendHero?

Die **trendHero** API basiert auf den Prinzipien von REST. Alle Anfragen erfolgen über vorhersehbare, ressourcenorientierte URLs, und die Antworten werden im JSON-Format zurückgegeben. Die API verwendet standardisierte HTTP-Statuscodes und unterstützt die Authentifizierung, um die Nutzung und Integration zu erleichtern. Durch die Konsistenz und Zuverlässigkeit der Schnittstelle wird die Interaktion mit den Diensten intuitiv.

```json
https://api.trendhero.io/api/public/v1
```

### Authentifizierung

Für die Authentifizierung von Anfragen in der **trendHero** API wird ein API-Schlüssel verwendet. Die Verwaltung der Schlüssel erfolgt über die Seite [Access Tokens](https://trendhero.io/app/api/access-tokens).  
Alle Anfragen müssen den API-Schlüssel über die Bearer-Authentifizierung enthalten. Der Schlüssel sollte im Anfrage-Header übergeben werden:

```json
curl ... -H 'Authorization: Bearer access_token'
```

**Wichtig:** Anfragen ohne Authentifizierung werden nicht ausgeführt.

### Arbeiten mit Berichten

###### Berichtstatus

Berichte in **trendHero** können sich je nach Verarbeitungsstand in verschiedenen Status befinden.

**Fertige Status:**
- `ready` — Der Bericht ist fertig und verfügbar.
- `impossibleButReady` — Der Bericht ist als fertig markiert, obwohl es Probleme bei der Erstellung gab.

**Sammlungsstatus:**
- `collecting` — Der Bericht befindet sich im Prozess der Datensammlung.
- `recollecting` — Ein erneuter Versuch wird unternommen, um die Daten für den Bericht zu sammeln.

**Nicht verfügbare Status:**
- `impossible` — Der Bericht kann aufgrund unüberwindbarer Einschränkungen nicht erstellt werden.

###### Berichtstruktur

Zunächst enthält der Bericht nur den Schlüssel `preview`. Nach dem Kauf sind die folgenden Schlüssel verfügbar:
- `report` — Die Hauptdaten des Berichts.
- `openai_report` — Die vom OpenAI generierten Berichtsdaten.
- `saves_shares_report` — Daten zu geteilten und gespeicherten Inhalten.

Jeder dieser Schlüssel hat seinen eigenen Status, der den Verarbeitungsstand des entsprechenden Teils des Berichts anzeigt.

###### Bericht erstellen

Dieser Endpunkt ermöglicht es, einen Bericht für einen bestimmten Benutzer zu erstellen.

```json
curl --location --request POST 'https://api.trendhero.io/api/public/v1/reports?username=davidrobsonyoga' --header 'Authorization: Bearer access_token'
```

**Parameter:**
- Typ: string
- Beispiel: `davidrobsonyoga`
- Beschreibung: Der Benutzername, für den der Bericht erstellt werden soll.

**Beispielanfrage:**
```json
POST /api/reports
```

**Antwort:**
Die Antwort der API auf die POST-Anfrage zur Erstellung eines Berichts wird ein JSON-Objekt mit mehreren verschachtelten Feldern enthalten. Jedes Feld wird verschiedene Unterfelder mit unterschiedlichen Datentypen wie Ganzzahlen, Zeichenketten, Arrays und verschachtelten Objekten enthalten.

Wenn der Bericht den Status `collecting` hat, sendet das System eine Rückmeldung, wenn der Bericht fertig ist.

###### Bericht anzeigen

Dieser Endpunkt ermöglicht es, einen Bericht für einen bestimmten Benutzer abzurufen.

**Parameter:**
- Typ: string
- Beispiel: `davidrobsonyoga`
- Beschreibung: Der Benutzername, für den der Bericht abgerufen werden soll.

**Beispielanfrage:**
```bash
GET /api/reports/{username}
```

**Antwort:**
Die Antwort der API auf die GET-Anfrage zum Abrufen eines Berichts wird ein JSON-Objekt mit mehreren verschachtelten Feldern enthalten. Jedes Feld wird verschiedene Unterfelder mit unterschiedlichen Datentypen wie Ganzzahlen, Zeichenketten, Arrays und verschachtelten Objekten enthalten.