> ## 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'
```

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

### Работа с отчетами

###### Cтатусы отчетов

Отчеты в **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-объект с несколькими вложенными полями. Каждое поле будет содержать различные подполе с разными типами данных, такими как целые числа, строки, массивы и вложенные объекты.