WebSalabim

Dokumentasi API

Alamat dasar https://websalabim.com/api/v1 ยท Daftar untuk mendapat kunci

1. Untuk apa API ini

API ini membuat agen AI atau skrip Anda sendiri bisa mengerjakan yang biasanya Anda lakukan lewat panel: membuat situs, meminta AI merevisi desain atau data, memantau prosesnya, lalu menerbitkannya. Cocok untuk membangun beberapa situs sekaligus, mengotomasi perubahan berkala, atau menyambungkan panel ini ke perkakas Anda.

Aturannya sama persis dengan memakai panel. Penyaringan konten tetap berjalan, tiap perintah AI tetap memakai 1 Magic token, dan batas paket tetap berlaku. Tidak ada jalur khusus yang lebih longgar lewat API.

2. Otentikasi

API tersedia mulai paket berbayar. Selama masa coba, kunci belum bisa dibuat dan permintaan dijawab 402. Dokumentasi ini bisa dibaca kapan saja, jadi agen Anda dapat disiapkan lebih dulu.

Buat kunci di menu API di dalam panel. Kunci ditampilkan sekali saja โ€” salin dan simpan seperti kata sandi. Kami hanya menyimpan sidik hash-nya, jadi kami sendiri tidak bisa membacakannya kembali.

Authorization: Bearer wsb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Kunci mewakili akun Anda sepenuhnya. Cabut lewat panel begitu tidak dipakai; pencabutan berlaku seketika. Kunci juga otomatis mati bila akun Anda ditangguhkan.

3. Bentuk permintaan dan balasan

Kirim badan permintaan sebagai JSON dengan Content-Type: application/json. Balasan selalu JSON, apa pun header Accept Anda. Setiap balasan memuat ok bertipe boolean; bila gagal, ada error berisi kalimat yang bisa langsung ditampilkan ke pengguna Anda.

{"ok": true,  "job": 42, "sumber": "paket", "kuota": {"total_sisa": 27}}
{"ok": false, "error": "Magic token habis. Beli Magic token untuk lanjut.", "beli": "/tagihan#kredit", "ajak": "/ajak"}

4. Kode status

KodeArtinyaYang sebaiknya agen Anda lakukan
200BerhasilLanjut
400Badan bukan JSON yang sahPerbaiki serialisasi Anda
401Kunci tidak ada, salah, dicabut, atau akun ditangguhkanJangan diulang โ€” periksa kuncinya
402Magic token habis, paket berakhir, atau akun belum berlanggananBerhenti dan beri tahu pemiliknya; mengulang tidak menolong
404Situs atau job tidak ada, atau bukan milik pemegang kunciPeriksa id-nya
405Metode HTTP salahPeriksa GET/POST
409Masih ada proses AI berjalan, slug terpakai, atau batas situs paket tercapaiTunggu selesai, atau ganti pilihan
422Masukan tidak sah, atau ditolak penyaring kontenJangan diulang dengan isi yang sama
429Terlalu seringTunggu, lihat header Retry-After

5. Kuota dan batas laju

Yang memakai Magic token hanya perintah AI (POST /situs/{id}/ai). Membuat situs, membaca status, dan menerbitkan tidak memotong apa pun. Permintaan yang ditolak โ€” 402, 409, 422 โ€” juga tidak memotong kuota.

Urutan pemakaian: jatah gratis saat mendaftar, lalu Magic token yang dibeli โ€” paket langganan tidak memborong Magic token. Balasan perintah AI menyertakan sumber supaya agen Anda tahu jatah mana yang terpakai.

Batas laju: 60 permintaan per menit per kunci untuk seluruh API, dan 6 perintah AI per menit per akun. Satu situs hanya boleh punya satu proses AI berjalan; permintaan berikutnya dijawab 409 sampai yang berjalan selesai.

6. Kebijakan konten

Setiap perintah dan setiap pembuatan situs disaring lebih dulu. Permintaan yang mengarah ke perjudian, konten dewasa, narkoba, penipuan, atau peniruan pihak lain dijawab 422 dan tidak pernah dijalankan. Pelanggaran dicatat, dihitung bersama pelanggaran lewat panel, dan setelah mencapai batas akun ditangguhkan โ€” kunci API ikut mati saat itu juga. Agen yang mengulang isi yang sama hanya akan mempercepat penangguhan.

7. Daftar perintah

GET /kuota

Sisa Magic token dan masa aktif paket.

curl -s https://websalabim.com/api/v1/kuota -H "Authorization: Bearer $KUNCI"

{"ok":true,"kuota":{"total_sisa":27,"gratis_sisa":0,"paket_sisa":9,"kredit":18},
 "paket":"Bisnis","berlaku_sampai":"2026-12-01"}

GET /situs

Semua situs milik pemegang kunci.

{"ok":true,"situs":[{"id":12,"slug":"warungkopisari","nama_usaha":"Warung Kopi Sari",
 "jenis":"usaha","bahasa":"id","status":"published","alamat":"https://warungkopisari.websalabim.site"}]}

POST /situs

Buat situs baru. Tidak memakai Magic token, tetapi dibatasi jumlah situs paket Anda.

KolomWajibKeterangan
nama_usahayaMinimal 2 huruf
deskripsiyaMinimal 10 huruf; makin jelas, makin baik hasil AI-nya
kategoritidakMisalnya Kuliner, Jasa, Toko
slugtidakSubdomain; bila kosong diturunkan dari nama. 3โ€“40 huruf kecil/angka/-
jenistidakusaha (bawaan) atau event
bahasatidakBahasa isi website: id atau en
curl -s -X POST https://websalabim.com/api/v1/situs \
  -H "Authorization: Bearer $KUNCI" -H "Content-Type: application/json" \
  -d '{"nama_usaha":"Warung Kopi Sari","kategori":"Kuliner",
       "deskripsi":"Kopi robusta sangrai sendiri, buka tiap hari 07.00-22.00",
       "slug":"warungkopisari","bahasa":"id"}'

{"ok":true,"id":12,"slug":"warungkopisari","alamat":"https://warungkopisari.websalabim.site"}

GET /situs/{id}

Satu situs, plus nomor versi draft dan apakah ada perubahan yang belum diterbitkan.

POST /situs/{id}/ai

Memotong kuota. Kirim satu perintah ke AI.

KolomWajibKeterangan
promptyaMinimal 5 huruf. Kalimat biasa, seperti berbicara ke perancang
kanaltidakdesain (bawaan) atau data untuk mengubah Data Usaha
modetidakrevisi (bawaan) mengubah seperlunya; ulang membuat ulang dari nol
curl -s -X POST https://websalabim.com/api/v1/situs/12/ai \
  -H "Authorization: Bearer $KUNCI" -H "Content-Type: application/json" \
  -d '{"prompt":"ganti warna utama jadi hijau dan tambah bagian promo di bawah hero"}'

{"ok":true,"job":42,"sumber":"paket","kuota":{"total_sisa":26}}

GET /situs/{id}/ai/{job}

Status pekerjaan: queued, running, done, atau failed. Saat done, balasannya menyertakan nomor versi dan tautan pratinjau yang berlaku 15 menit.

POST /situs/{id}/terbitkan

Jadikan draft sebagai versi tayang. Tidak memotong kuota.

8. Contoh alur lengkap

Siklus yang biasa dipakai agen: buat situs, minta desain, tunggu selesai, terbitkan.

#!/usr/bin/env bash
set -e
API="https://websalabim.com/api/v1"; H="Authorization: Bearer $KUNCI"; J="Content-Type: application/json"

SID=$(curl -s -X POST "$API/situs" -H "$H" -H "$J" \
  -d '{"nama_usaha":"Warung Kopi Sari","deskripsi":"Kopi robusta sangrai sendiri, buka tiap hari"}' \
  | php -r 'echo json_decode(file_get_contents("php://stdin"),true)["id"];')

JOB=$(curl -s -X POST "$API/situs/$SID/ai" -H "$H" -H "$J" \
  -d '{"prompt":"buat halaman hangat bernuansa cokelat dengan daftar menu dan tombol WhatsApp"}' \
  | php -r 'echo json_decode(file_get_contents("php://stdin"),true)["job"];')

# tunggu sampai selesai โ€” jangan memanggil lebih sering dari sekali per 3 detik
until curl -s "$API/situs/$SID/ai/$JOB" -H "$H" | grep -q '"status":"done"'; do sleep 3; done

curl -s -X POST "$API/situs/$SID/terbitkan" -H "$H"

9. Saran memakainya dengan baik

  • Jangan memanggil status lebih sering dari sekali per 3 detik; pekerjaan desain biasanya 1โ€“2 menit.
  • Hentikan agen Anda pada 401, 402, dan 422 โ€” mengulang tidak akan berhasil dan bisa memperburuk keadaan.
  • Pada 429, tunggu selama Retry-After menyebutkan.
  • Simpan kunci di variabel lingkungan, jangan di dalam kode yang ikut masuk repositori.
  • Satu kunci per agen atau per mesin, supaya bila satu bocor cukup mencabut yang itu saja.