API key
API key membuat kode kamu sendiri bisa bicara dengan Wujud: menjalankan alat AI dari skrip, menarik hasil ke proses build, atau mengecek saldo kredit dari dasbor. Satu key milik satu ruang kerja dan hanya membawa cakupan yang kamu berikan.
Mau asisten AI seperti Claude memakai Wujud untukmu? Key yang sama bisa dipakai di sana, lihat Hubungkan asisten AI.
Letaknya di Pengembang lalu API Key di sidebar.


Bikin key
Section titled “Bikin key”-
Tekan Bikin API Key.
-
Kasih nama yang nanti gampang dikenali. Hanya nama yang membedakan key setelah dibuat, jadi “skrip render” lebih baik dari “key 2”.
-
Centang resource yang dibutuhkan. Yang tidak bisa diberikan paketmu tampil abu-abu.


-
Kalau mau, isi tanggal kedaluwarsa. Kosongkan dan key berlaku sampai kamu cabut. Tanggalnya bisa diubah atau dihapus nanti lewat Edit.
-
Tekan Create. Key-nya cuma tampil sekali.
Key berbentuk wujud_sk_ diikuti 64 karakter. Setelah dibuat, daftar hanya menampilkan awalnya
sebagai prefiks, misalnya wujud_sk_7f3a…, cukup untuk tahu baris log itu milik key yang mana.
Cakupan
Section titled “Cakupan”Key hanya menjangkau yang kamu centang. Yang relevan di Wujud:
| Cakupan | Isinya |
|---|---|
| AI | Menjalankan alat AI, menghitung harga sebelum jalan, dan mengecek pekerjaan |
| Media | Melihat, mengunduh, mengunggah, dan menghapus file |
| Usage | Baca saja. Pemakaian paket dan saldo kredit AI |
| Webhooks | Membuat, mengubah, mengetes, dan menghapus webhook, serta membaca atau mengulang pengirimannya |
| Members | Melihat anggota dan undangan, mengundang lewat email, mengeluarkan anggota |
Dialognya juga menampilkan cakupan untuk fitur yang belum dibuka di Wujud, seperti Posts, Ideas, dan Analytics. Biarkan saja mati.
Cakupan yang bisa mengubah sesuatu juga bisa dibuat baca saja: centang cakupannya, lalu
nyalakan Read only di bagian Access. Key itu tetap bisa membaca, tapi semua yang membuat,
mengubah, atau menghapus dijawab 403 dengan kode READ_ONLY_KEY. Menghitung harga lewat path
/estimate dihitung sebagai baca.
Cakupan yang bisa diberikan bergantung pada paketmu. Tiap tingkat mencakup semua yang di bawahnya:
| Paket | Key | Request per hari | Tambahan |
|---|---|---|---|
| Gratis | 1 | 100 | AI, Usage |
| Starter | 1 | 200 | Media, Webhooks |
| Creator | 1 | 1.000 | — |
| Pro | 3 | 10.000 | Members |
| Agency | 5 | 50.000 | — |
Kalau kamu turun ke paket dengan tingkat lebih rendah, key-mu tetap jalan. Cakupan yang tidak termasuk paket baru berhenti dihormati, dan dialog edit menandainya Kept from a previous plan. Naik lagi, dan cakupan itu jalan lagi.
Anggota ruang kerja hanya melihat halaman ini kalau diberi hak akses API Keys. Reset dan cabut hanya bisa dilakukan pemilik, karena keduanya bisa memutus integrasi yang sedang jalan.
Memakai key
Section titled “Memakai key”Kirim sebagai Bearer token di header Authorization. API-nya ada di https://api.wujud.app/v1.
curl https://api.wujud.app/v1/me \ -H "Authorization: Bearer wujud_sk_key_kamu"Header X-API-Key: wujud_sk_key_kamu juga bisa. Pilih salah satu, hasilnya sama.
/me adalah panggilan pertama yang berguna: memberi tahu key ini milik ruang kerja mana dan
cakupan apa saja yang dipegang, tanpa butuh cakupan apa pun.
Dengan cakupan AI, menjalankan teks ke suara bentuknya seperti ini:
curl -X POST https://api.wujud.app/v1/ai/audio/tts \ -H "Authorization: Bearer wujud_sk_key_kamu" \ -H "Content-Type: application/json" \ -d '{"text": "Selamat pagi, ini Wujud.", "voice": "Kore"}'Endpoint AI menjawab 202 dan sebuah jobId, bukan hasil jadinya. Cek
GET /v1/ai/jobs/{jobId} sampai status jadi COMPLETED atau FAILED. Untuk tahu harganya dulu,
kirim body yang sama ke path /estimate alat itu, misalnya /v1/ai/audio/tts/estimate. Ini tidak
memakai kredit.
Daftar endpoint lengkap, beserta cakupan yang dibutuhkan, ada di referensi API.
Satu hal yang tidak bisa dilakukan key: mengelola API key. Membuat, reset, dan mencabut key butuh pengguna yang login, jadi key tidak pernah bisa membuat key lain.
Batas request
Section titled “Batas request”Request harus muat di dua batas.
Harian, per ruang kerja: semua key di ruang kerja memakai jatah yang sama (lihat tabel di atas),
dan hitungannya mulai lagi jam 00:00 UTC. Tiap respons membawa X-RateLimit-Limit,
X-RateLimit-Remaining, dan X-RateLimit-Reset. Kalau lewat, kamu dapat 429 dengan
DAILY_LIMIT_REACHED dan header Retry-After.
Per menit, per key:
| Jenis request | Per menit |
|---|---|
| Baca, termasuk mengecek pekerjaan | 600 |
Menghitung harga (/estimate) |
60 |
| Unggah | 30 |
| Generate AI | 10 |
Generate yang paling ketat, karena tiap pekerjaan memakai kredit. Kalau menjalankan banyak sekaligus, beri jeda sedikit di antaranya.
Mengulang dengan aman
Section titled “Mengulang dengan aman”Kalau POST timeout, kamu tidak tahu apakah Wujud sudah menerimanya, dan mengirim ulang bisa
menjalankan pekerjaan dua kali. Header Idempotency-Key mengatasinya. Pakai string unik apa
pun, maksimal 255 karakter.
- Key dan body yang sama dalam 24 jam mengembalikan respons pertama, dengan header
Idempotent-Replayed: true, dan tidak ada yang jalan dua kali. - Key yang sama dengan body berbeda dijawab
422. - Kalau request pertama masih berjalan, pengulangan dijawab
409. Tunggu sebentar lalu coba lagi. - Error server (
5xx) dan respons batas request tidak disimpan, jadi boleh diulang dengan key yang sama.
Log request
Section titled “Log request”Tab Logs mencatat setiap request dari key di ruang kerja: kapan, key mana, method dan endpoint, status, durasi, dan IP. Hanya itu yang disimpan, isi request dan responsnya tidak. Log disimpan 1 hari di Gratis, 3 di Starter, 7 di Creator, 30 di Pro, dan 90 di Agency.
Ganti dan cabut
Section titled “Ganti dan cabut”- Edit mengubah cakupan dan masa berlaku tanpa mengganti key-nya.
- Reset membuat key baru untuk baris yang sama. Key lama langsung berhenti bekerja. Pakai ini kalau key bocor.
- Revoke menghapus key selamanya.
Kalau tidak jalan
Section titled “Kalau tidak jalan”missing API key: tidak ada key yang sampai. Cek ejaan header, dan pastikan Bearer token diawali
kata Bearer dan satu spasi.
unauthorized: invalid api key: key-nya salah, atau sudah di-reset atau dicabut.
unauthorized: api key expired: tanggal kedaluwarsanya lewat. Edit dan geser tanggalnya.
403 yang menyebut resource: key tidak memegang cakupan itu. Edit dan centang resource-nya,
kalau paketmu mengizinkan.
“the … scope is not enabled on your plan”: key memegang cakupannya, tapi paketmu tidak mencakupnya, biasanya setelah turun paket.