# Kunci API

> Membuat, membatasi, dan mengelola kunci untuk API.

Source: https://reverie.im/id/docs/integrations/api-keys
Language: id

Kunci API mengautentikasi permintaan ke [Open API](https://reverie.im/id/docs/integrations/open-api) milik Reverie. Kunci tinggal di **Pengaturan → Lainnya → Kunci API**, yang juga menjadi tujuan ubin **Open API** di Labs. Akun mana pun boleh membuatnya — tidak ada syarat tingkatan dan tidak ada batas berapa banyak yang kamu simpan.

## Membuat kunci \[#create-a-key]

### Tekan Buat Kunci API Baru \[#press-create-new-api-key]

Di halaman yang masih kosong, tombolnya berbunyi **Buat Kunci API Pertama Anda**.

### Beri nama \[#name-it]

**Nama** wajib diisi, 1–100 karakter. Begitulah kuncinya dilabeli di daftar dan di statistik penggunaan — "Speaker Ruang Tamu", "staging worker".

### Pilih Global atau karakter tertentu \[#choose-global-or-a-specific-character]

**Pemilihan Karakter** adalah pilihan antara **Global (Semua Karakter)** dan **Karakter Tertentu**, bukan tambahan opsional. Karakter tertentu itu menjadi karakter yang disematkan pada kunci.

### Kalau mau, atur jenis perangkat dan masa berlaku \[#optionally-set-a-device-type-and-an-expiry]

**Jenis Perangkat** berupa teks bebas (`speaker`, `phone`, `iot`). **Kedaluwarsa** meminta tanggal *dan* jam; pada saat itulah kuncinya berhenti bekerja dengan sendirinya.

Kuncinya langsung muncul sebagai `rk_` diikuti 64 karakter heksadesimal.

## Kunci tetap bisa dilihat lagi \[#keys-stay-retrievable]

Rahasianya bukan tampil sekali lalu hilang. Kartu tiap kunci punya **Tampilkan kunci API**, **Sembunyikan kunci API**, dan **Salin kunci API**, kapan saja, selama kuncinya masih ada.

> Karena rahasia utuhnya tetap terbaca dari pengaturanmu, perlakukan akses ke akun sebagai akses ke kunci. Simpan kuncinya di server atau di pengelola rahasia, jangan pernah di kendali versi atau di kode peramban.

## Kunci global dan kunci tersemat \[#global-keys-and-pinned-keys]

|                                 | **Global (Semua Karakter)**      | **Karakter Tertentu**                                                       |
| ------------------------------- | -------------------------------- | --------------------------------------------------------------------------- |
| Yang dikembalikan `GET /models` | Karakter-karaktermu yang terbaru | Skenario karakter itu, atau karakternya sendiri kalau ia tak punya skenario |
| `model` dikosongkan             | Jatuh ke obrolan terakhirmu      | Memakai karakter yang tersemat                                              |
| ID skenario pendek              | Tidak pernah dikenali            | Dikenali terhadap karakter yang tersemat                                    |

## Menonaktifkan, menghapus, mengganti \[#disable-delete-rotate]

| Tindakan          | Efek                                                               | Bisa dibatalkan |
| ----------------- | ------------------------------------------------------------------ | --------------- |
| Sakelar **Aktif** | Selama mati, permintaan dengan kunci itu ditolak                   | Ya              |
| **Hapus**         | Kuncinya dimusnahkan dan aplikasi yang memakainya kehilangan akses | Tidak           |

Tidak ada tindakan pencabutan terpisah — menonaktifkan dan menghapus, itulah dua pilihannya.

> Menghapus kunci tidak bisa dibatalkan, dan ia membawa serta catatan kepemilikannya: lalu lintas lamanya pindah ke kelompok **Kunci yang dihapus** di statistik penggunaan, dan di sana kamu tak bisa lagi tahu integrasi mana menghabiskan apa. Nonaktifkan dulu kuncinya kalau riwayatnya mungkin masih kamu perlukan.

Untuk mengganti, buat kunci penggantinya, pasang, lalu nonaktifkan atau hapus kunci yang lama. Tidak ada penggantian otomatis dan tidak ada tenggang setelah kedaluwarsa — kunci yang lewat masa berlaku ditolak dengan `api_key_expired` pada permintaan berikutnya.

## Cakupan \[#scopes]

Kunci membawa cakupan, dan dialog pembuatannya tidak menampilkannya. Kunci yang kamu buat di Pengaturan bisa memanggil endpoint obrolan, dan hanya itu.

Endpoint pengimpor karakter butuh cakupan lain, dan satu-satunya cara mendapat kunci seperti itu adalah membuka **Labs → Skill Impor Karakter**, yang membuatkan satu untukmu bernama **Reverie Character Importer (Skill)**. Memanggil pengimpor dengan kunci biasa dari pengaturan menghasilkan 403. [Mengimpor karakter →](https://reverie.im/id/docs/characters/import-characters)

## Statistik penggunaan \[#usage-statistics]

Panel **Statistik penggunaan** di halaman yang sama melaporkan **Permintaan**, **Token**, **Kredit**, dan **Kunci aktif**, dikelompokkan per hari UTC, dengan rincian per kunci di bawah **Penggunaan per kunci**. Saring berdasarkan satu kunci atau **Semua kunci**, dalam rentang 7 sampai 90 hari — 30 secara bawaan. Hanya obrolan yang dibuat lewat API yang dihitung.

Panel inilah satu-satunya tempat pengeluaran per kunci ada. Riwayat kreditmu mencatat biaya tiap pesan, tetapi tidak menandai transaksinya dengan kunci yang memakainya, jadi pakailah statistik di sini untuk membandingkan integrasi.

## Buat permintaan \[#build-a-request]

**Buat permintaan** membuka sebuah perakit: pilih salah satu kunci aktifmu, pilih karakter atau skenario dari daftar yang bisa dilihat kunci itu, ketik sebuah pesan, tentukan streaming dan temperature, lalu salin cURL, TypeScript, atau Python yang langsung jalan.

Kuncinya dipakai di peramban hanya untuk memuat daftar karakter. Kode yang dihasilkan membaca `REVERIE_API_KEY` dari lingkungan, bukan menanam rahasianya di dalam.

## Batas \[#limits]

| Batas                               | Nilai                                         |
| ----------------------------------- | --------------------------------------------- |
| Kunci per akun                      | Tanpa batas                                   |
| Batas laju per kunci                | Tidak ada                                     |
| Batas permintaan serentak per kunci | Tidak ada                                     |
| Yang sebenarnya membatasi pemakaian | Saldo kreditmu, ditambah jendela model gratis |

## Terkait \[#related]

* [Open API](https://reverie.im/id/docs/integrations/open-api) — endpoint, bentuk permintaan, dan kesalahan
* [Mengimpor karakter](https://reverie.im/id/docs/characters/import-characters) — untuk apa kunci pengimpor itu
* [Reverie Labs](https://reverie.im/id/docs/integrations/labs) — ubin Open API dan pengimpor
* [Keamanan](https://reverie.im/id/docs/account/security) — sisa pengaturan akses akunmu
