# Autentikasi

Kirim API key di header Authorization. Aturan kunci yang aktif, diblokir, dan kedaluwarsa.

Setiap request membawa API key.

```text
Authorization: Bearer SIVCLOUD_API_KEY
```

Untuk `/v1/messages` dan `/v1/models`, header `x-api-key: SIVCLOUD_API_KEY` juga diterima, seperti pada SDK Anthropic.

## Aturan

- Kirim kunci hanya di header. Jangan taruh kunci di URL, kode di browser, atau repositori publik.
- Satu akun boleh punya banyak kunci, sampai 100 secara bawaan. Pakai satu kunci untuk satu aplikasi supaya mudah dicabut.
- Kunci yang diblokir, kedaluwarsa, atau dicabut ditolak dengan `invalid_api_key` (HTTP 401).
- Kunci bisa dibatasi ke model tertentu. Model di luar batas dijawab `model_not_found` (HTTP 404).
- Kunci yang aktif bisa Anda salin lagi dari console. Kunci yang diblokir atau kedaluwarsa tidak bisa.
- Curiga kunci bocor? Rotasi kunci di console. Kunci lama langsung mati.

Pengaturan kunci dijelaskan di halaman [API key](https://sivcloud.com/docs/console/api-key/).

## Cek saldo dari kunci

`GET https://ai.sivcloud.com/v1/balance` menjawab saldo akun pemilik kunci, tanpa membuka console.

```bash
curl https://ai.sivcloud.com/v1/balance -H "Authorization: Bearer $SIVCLOUD_API_KEY"
```

```json
{
  "balance_rp": 125000,
  "key_limit_rp": null,
  "allowances": [
    {"plan": "Pro", "models": [], "remaining": 3400000, "resets_at": "2026-12-01T00:00:00+07:00"}
  ]
}
```

- `balance_rp`: saldo rupiah akun.
- `key_limit_rp`: sisa batas kredit kunci ini dalam rupiah, atau `null` bila kunci tidak dibatasi.
- `allowances`: jatah token paket yang sedang berlaku. `plan` nama paket (kosong bila tidak diketahui), `remaining` dalam token, `models` kosong berarti semua model, dan `resets_at` kosong bila jatah tidak kedaluwarsa.

Hanya data akun pemilik kunci yang dikembalikan.

## Contoh galat

```json
{
  "error": {
    "message": "invalid api key",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}
```

Daftar lengkap ada di [Kode galat](https://sivcloud.com/docs/galat/).
