> ## 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).

# Як працює API TrendHero?

API **trendHero** побудовано на основі принципів REST. Усі запити здійснюються з використанням передбачуваних URL-адрес, орієнтованих на ресурси, відповіді повертаються у форматі JSON. API використовує стандартні коди відповідей HTTP та підтримує аутентифікацію, що забезпечує простоту використання та інтеграції. Завдяки послідовності та надійності інтерфейсу взаємодія з сервісами стає інтуїтивно зрозумілою.

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

### Аутентифікація

Для аутентифікації запитів в API **trendHero** використовується API-ключ. Керувати ключами можна на сторінці [Токени доступу](https://trendhero.io/app/api/access-tokens).  
Усі запити повинні містити API-ключ через аутентифікацію носія. Для цього необхідно передавати ключ у заголовку запиту:

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

**Важливо:** Запити без аутентифікації виконуватися не будуть.

### Робота з звітами

###### Статуси звітів

Звіти в **trendHero** можуть перебувати в різних статусах залежно від етапу їх обробки.

**Готові статуси:**
- `ready` — Звіт готовий і доступний.
- `impossibleButReady` — Звіт позначений як готовий, незважаючи на труднощі в його створенні.

**Статуси збору:**
- `collecting` — Звіт знаходиться в процесі збору даних.
- `recollecting` — Повторна спроба збору даних для звіту.

**Недоступні статуси:**
- `impossible` — Звіт не може бути створений через непереборні обмеження.

###### Структура звіту

Спочатку звіт містить лише ключ `preview`. Після покупки доступні наступні ключі:
- `report` — Основні дані звіту.
- `openai_report` — Дані звіту, згенеровані OpenAI.
- `saves_shares_report` — Дані про поділ і збереження.

Кожен із цих ключів має свій статус, який відображає етап обробки відповідної частини звіту.

###### Створити звіт

Ця точка дозволяє створити звіт для конкретного користувача.

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

**Параметри:**
- Тип: рядок
- Приклад: `davidrobsonyoga`
- Опис: Ім'я користувача, для якого потрібно створити звіт.

**Приклад запиту:**
```json
POST /api/reports
```

**Відповідь:**
Відповідь API на POST-запит на створення звіту міститиме JSON-об'єкт з кількома вкладеними полями. Кожне поле міститиме різні підполя з різними типами даних, такими як цілі числа, рядки, масиви та вкладені об'єкти.

Якщо статус звіту `collecting`, система надішле вам зворотний виклик, коли звіт буде готовий.

###### Показати звіт

Ця точка дозволяє отримати звіт для конкретного користувача.

**Параметри:**
- Тип: рядок
- Приклад: `davidrobsonyoga`
- Опис: Ім'я користувача, для якого потрібно отримати звіт.

**Приклад запиту:**
```bash
GET /api/reports/{username}
```

**Відповідь:**
Відповідь API на GET-запит на отримання звіту міститиме JSON-об'єкт з кількома вкладеними полями. Кожне поле міститиме різні підполя з різними типами даних, такими як цілі числа, рядки, масиви та вкладені об'єкти.