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

# ¿Cómo funciona la API de trendHero?

La API **trendHero** está basada en principios REST. Todas las solicitudes se realizan utilizando URLs predecibles orientadas a recursos, y las respuestas se devuelven en formato JSON. La API utiliza códigos estándar de respuesta HTTP y soporta autenticación, asegurando facilidad de uso e integración. Con una interfaz consistente y confiable, interactuar con los servicios se vuelve intuitivo.

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

### Autenticación

La API **trendHero** utiliza una clave API para la autenticación. Las claves se pueden gestionar en la página de [Tokens de acceso](https://trendhero.io/app/api/access-tokens).  
Todas las solicitudes deben incluir la clave API a través de autenticación de portador. La clave debe ser pasada en el encabezado de la solicitud:

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

**Importante:** Las solicitudes sin autenticación no se ejecutarán.

### Trabajar con Reportes

###### Estados de los Reportes

Los reportes en **trendHero** pueden encontrarse en diferentes estados dependiendo de la etapa de su procesamiento.

**Estados listos:**
- `ready` — El reporte está listo y disponible.
- `impossibleButReady` — El reporte está marcado como listo a pesar de los problemas en su creación.

**Estados de recopilación:**
- `collecting` — El reporte está en proceso de recopilación de datos.
- `recollecting` — Se está realizando un nuevo intento para recopilar datos para el reporte.

**Estados no disponibles:**
- `impossible` — El reporte no puede ser creado debido a limitaciones insuperables.

###### Estructura del Reporte

Inicialmente, el reporte contiene solo la clave `preview`. Después de la compra, las siguientes claves están disponibles:
- `report` — Los datos principales del reporte.
- `openai_report` — Los datos del reporte generados por OpenAI.
- `saves_shares_report` — Datos sobre compartidos y guardados.

Cada una de estas claves tiene su propio estado, que indica la etapa de procesamiento de la parte correspondiente del reporte.

###### Crear un Reporte

Este punto de la API permite crear un reporte para un usuario 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: cadena
- Ejemplo: `davidrobsonyoga`
- Descripción: El nombre de usuario para el cual se debe crear el reporte.

**Ejemplo de solicitud:**
```json
POST /api/reports
```

**Respuesta:**
La respuesta de la API a la solicitud POST para crear un reporte contendrá un objeto JSON con varios campos anidados. Cada campo contendrá subcampos con diferentes tipos de datos, como enteros, cadenas, arreglos y objetos anidados.

Si el estado del reporte es `collecting`, el sistema te enviará una notificación cuando el reporte esté listo.

###### Mostrar Reporte

Este punto de la API permite obtener un reporte para un usuario específico.

**Parámetros:**
- Tipo: cadena
- Ejemplo: `davidrobsonyoga`
- Descripción: El nombre de usuario para el cual se debe obtener el reporte.

**Ejemplo de solicitud:**
```bash
GET /api/reports/{username}
```

**Respuesta:**
La respuesta de la API a la solicitud GET para obtener un reporte contendrá un objeto JSON con varios campos anidados. Cada campo contendrá subcampos con diferentes tipos de datos, como enteros, cadenas, arreglos y objetos anidados.