# Referensi API

> ClearLogo mengekspos satu endpoint HTTP, `GET /logo/{domain}`, yang mengembalikan PNG (atau WebP/JPEG) dari logo domain dengan rasio konsisten dan latar belakang transparan. Penggunaan anonim bekerja untuk pengujian volume rendah; traffic produksi menggunakan browser key (klien) atau server key (backend).

## Endpoint

```
GET https://api.clearlogo.dev/logo/:domain
```

`:domain` adalah hostname murni tanpa skema atau path, misalnya `github.com`. API mengembalikan `image/png` secara default.

## Parameter query

| Nama | Tipe | Default | Catatan |
| --- | --- | --- | --- |
| `size` | number | `128` | Dimensi output dalam px. Persegi saja. Nilai yang diizinkan: 16, 32, 48, 64, 96, 128, 192, 256, 512, 1024. |
| `content` | number | `80` | Jejak logo di dalam kanvas (50–100, langkah 5). |
| `format` | `png \| webp \| jpeg` | `png` | Format keluaran. Dinegosiasi otomatis dari header `Accept` — browser modern menerima WebP secara otomatis melalui `<img>`. |
| `theme` | `light \| dark` | `light` | Mengembalikan varian gelap jika tersedia, jika tidak maka kembali ke terang. |
| `token` | string | — | Browser key yang digunakan dari kode klien. Origin atau Referer harus cocok dengan domain yang diizinkan di kunci. |

## Autentikasi

Permintaan anonim bekerja untuk pengujian volume rendah. Untuk traffic produksi, gunakan browser key (klien) atau server key (backend):

**Browser**

```html
<img
  src="https://api.clearlogo.dev/logo/example.com?token=YOUR_BROWSER_KEY"
  alt="" />
```

**Server**

```bash
curl \
  -H "Authorization: Bearer YOUR_SERVER_KEY" \
  "https://api.clearlogo.dev/logo/example.com"
```

## Batas kecepatan

Batas per-kunci dikembalikan di header `X-RateLimit-*`. Ketika Anda melebihinya, API merespons dengan `429` dan menyertakan petunjuk `Retry-After`.

## Pertanyaan yang sering diajukan

### Bagaimana cara mendapatkan logo untuk sebuah domain?

Kirim permintaan GET ke `https://api.clearlogo.dev/logo/{domain}` di mana `{domain}` adalah hostname seperti `github.com`. Login tidak diperlukan untuk pengujian volume rendah. Respons adalah PNG secara default dan bekerja langsung di tag `<img>`.

### Apa perbedaan antara browser key dan server key?

Browser key aman untuk dikirim dalam kode frontend dan tag `<img>`; permintaan divalidasi terhadap domain yang diizinkan yang Anda konfigurasikan pada kunci. Server key mengautentikasi melalui header `Authorization: Bearer` dari backend dan tidak boleh sampai ke browser.

### Format output apa yang didukung?

`png` (default), `webp`, dan `jpeg`. Ketika parameter `format` dihilangkan, ClearLogo menegosiasikan konten dari header `Accept` permintaan — browser modern menerima WebP secara otomatis ketika API dimuat melalui tag `<img>`.
