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

# Bagaimana cara kerja API TrendHero?

API **trendHero** dibangun berdasarkan prinsip REST. Semua permintaan dilakukan menggunakan URL yang dapat diprediksi, berorientasi pada sumber daya, dan respons dikembalikan dalam format JSON. API menggunakan kode status HTTP standar dan mendukung otentikasi, memastikan kemudahan penggunaan dan integrasi. Dengan antarmuka yang konsisten dan dapat diandalkan, interaksi dengan layanan menjadi intuitif.

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

### Autentikasi

API **trendHero** menggunakan kunci API untuk autentikasi. Kunci dapat dikelola di halaman [Token Akses](https://trendhero.io/app/api/access-tokens).  
Semua permintaan harus menyertakan kunci API melalui autentikasi bearer. Kunci harus diteruskan dalam header permintaan:

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

**Penting:** Permintaan tanpa autentikasi tidak akan dijalankan.

### Bekerja dengan Laporan

###### Status Laporan

Laporan di **trendHero** dapat berada dalam berbagai status tergantung pada tahap pemrosesannya.

**Status siap:**
- `ready` — Laporan siap dan tersedia.
- `impossibleButReady` — Laporan ditandai sebagai siap meskipun ada masalah dalam pembuatannya.

**Status pengumpulan:**
- `collecting` — Laporan sedang dalam proses pengumpulan data.
- `recollecting` — Upaya pengumpulan data ulang untuk laporan.

**Status tidak tersedia:**
- `impossible` — Laporan tidak dapat dibuat karena batasan yang tidak dapat diatasi.

###### Struktur Laporan

Awalnya, laporan hanya berisi kunci `preview`. Setelah pembelian, kunci berikut tersedia:
- `report` — Data utama dari laporan.
- `openai_report` — Data laporan yang dihasilkan oleh OpenAI.
- `saves_shares_report` — Data tentang pembagian dan penyimpanan.

Setiap kunci ini memiliki status yang menunjukkan tahap pemrosesan bagian yang sesuai dari laporan.

###### Membuat Laporan

Endpoint ini memungkinkan untuk membuat laporan untuk pengguna tertentu.

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

**Parameter:**
- Tipe: string
- Contoh: `davidrobsonyoga`
- Deskripsi: Nama pengguna untuk siapa laporan perlu dibuat.

**Contoh permintaan:**
```json
POST /api/reports
```

**Respons:**
Respons API terhadap permintaan POST untuk membuat laporan akan berisi objek JSON dengan beberapa bidang bersarang. Setiap bidang akan berisi sub-bidang yang berbeda dengan berbagai tipe data, seperti bilangan bulat, string, array, dan objek bersarang.

Jika status laporan adalah `collecting`, sistem akan mengirimkan panggilan balik kepada Anda ketika laporan sudah siap.

###### Menampilkan Laporan

Endpoint ini memungkinkan untuk mengambil laporan untuk pengguna tertentu.

**Parameter:**
- Tipe: string
- Contoh: `davidrobsonyoga`
- Deskripsi: Nama pengguna untuk siapa laporan perlu diambil.

**Contoh permintaan:**
```bash
GET /api/reports/{username}
```

**Respons:**
Respons API terhadap permintaan GET untuk mengambil laporan akan berisi objek JSON dengan beberapa bidang bersarang. Setiap bidang akan berisi sub-bidang yang berbeda dengan berbagai tipe data, seperti bilangan bulat, string, array, dan objek bersarang.