Lewati ke konten

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.

Halaman API Key berisi daftar key dengan prefiks, cakupan, masa berlaku, dan waktu terakhir dipakai.Halaman API Key berisi daftar key dengan prefiks, cakupan, masa berlaku, dan waktu terakhir dipakai.
  1. Tekan Bikin API Key.

  2. Kasih nama yang nanti gampang dikenali. Hanya nama yang membedakan key setelah dibuat, jadi “skrip render” lebih baik dari “key 2”.

  3. Centang resource yang dibutuhkan. Yang tidak bisa diberikan paketmu tampil abu-abu.

    Dialog pembuatan API key dengan kolom nama, centang resource, dan tanggal kedaluwarsa opsional.Dialog pembuatan API key dengan kolom nama, centang resource, dan tanggal kedaluwarsa opsional.
  4. Kalau mau, isi tanggal kedaluwarsa. Kosongkan dan key berlaku sampai kamu cabut. Tanggalnya bisa diubah atau dihapus nanti lewat Edit.

  5. 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.

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.

Kirim sebagai Bearer token di header Authorization. API-nya ada di https://api.wujud.app/v1.

Terminal window
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:

Terminal window
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.

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.

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.

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.

  • 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.

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.