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

# Como funciona a API TrendHero?

A API **trendHero** é baseada nos princípios REST. Todas as requisições são feitas utilizando URLs previsíveis e orientadas a recursos, e as respostas são retornadas no formato JSON. A API utiliza códigos de resposta HTTP padrão e suporta autenticação, garantindo facilidade de uso e integração. Com uma interface consistente e confiável, a interação com os serviços torna-se intuitiva.

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

### Autenticação

A API **trendHero** utiliza uma chave de API para autenticação. As chaves podem ser gerenciadas na página [Tokens de Acesso](https://trendhero.io/app/api/access-tokens).  
Todas as requisições devem incluir a chave de API via autenticação do tipo bearer. A chave deve ser passada no cabeçalho da requisição:

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

**Importante:** Requisições sem autenticação não serão executadas.

### Trabalhando com Relatórios

###### Status dos Relatórios

Os relatórios no **trendHero** podem estar em diferentes status dependendo da fase de processamento.

**Status prontos:**
- `ready` — O relatório está pronto e disponível.
- `impossibleButReady` — O relatório é marcado como pronto, apesar de problemas durante sua criação.

**Status de coleta:**
- `collecting` — O relatório está no processo de coleta de dados.
- `recollecting` — Tentativa de coleta de dados para o relatório novamente.

**Status não disponíveis:**
- `impossible` — O relatório não pode ser criado devido a limitações insuperáveis.

###### Estrutura do Relatório

Inicialmente, o relatório contém apenas a chave `preview`. Após a compra, as seguintes chaves estão disponíveis:
- `report` — Dados principais do relatório.
- `openai_report` — Dados do relatório gerados pela OpenAI.
- `saves_shares_report` — Dados sobre compartilhamentos e salvamentos.

Cada uma dessas chaves tem seu status, indicando a fase de processamento da parte correspondente do relatório.

###### Criar Relatório

Este endpoint permite criar um relatório para um usuário específico.

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

**Parâmetros:**
- Tipo: string
- Exemplo: `davidrobsonyoga`
- Descrição: O nome de usuário para o qual o relatório precisa ser criado.

**Exemplo de requisição:**
```json
POST /api/reports
```

**Resposta:**
A resposta da API para a requisição POST para criar o relatório conterá um objeto JSON com vários campos aninhados. Cada campo conterá diferentes subcampos com diversos tipos de dados, como números inteiros, strings, arrays e objetos aninhados.

Se o status do relatório for `collecting`, o sistema enviará um callback quando o relatório estiver pronto.

###### Mostrar Relatório

Este endpoint permite recuperar um relatório para um usuário específico.

**Parâmetros:**
- Tipo: string
- Exemplo: `davidrobsonyoga`
- Descrição: O nome de usuário para o qual o relatório precisa ser recuperado.

**Exemplo de requisição:**
```bash
GET /api/reports/{username}
```

**Resposta:**
A resposta da API para a requisição GET para recuperar um relatório conterá um objeto JSON com vários campos aninhados. Cada campo conterá diferentes subcampos com diversos tipos de dados, como números inteiros, strings, arrays e objetos aninhados.