API berape untuk mitra
Tampilkan iklan berape di situs Anda dan biarkan pengunjung memasang iklan tanpa meninggalkan halaman Anda. Semua iklan masuk ke satu database bersama; iklan yang dipasang lewat situs Anda tercatat atas nama Anda.
Cara tercepat: widget
Tempel dua baris ini di halaman Anda. Tidak perlu memprogram; tampilan ikut warna tautan dan font situs Anda.
<script src="https://berape.com/widget/v1.js" defer></script> <!-- Pasar lengkap: cari, detail, chat WhatsApp, pasang iklan, iklan saya --> <berape-pasar kunci="pk_…"></berape-pasar> <!-- Kotak kecil, mis. di halaman depan atau samping berita --> <berape-terbaru kunci="pk_…" jumlah="4" tautan="/pasar"></berape-terbaru>
Atribut pilihan: lokasi (kode pos atau kota), radius (km), kategori (slug), warna (mis. #0a6ebd), sudut (px), bahasa (id, de atau en; bawaan: bahasa halaman Anda), jumlah dan tautan (halaman pasar Anda, untuk <berape-terbaru>). Tanpa lokasi, widget memakai lokasi bawaan mitra Anda.
WordPress
Situs WordPress: pasang plugin berape Pasar (Plugin → Tambah Baru → Unggah Plugin), isi kunci publik di Pengaturan → berape Pasar, lalu tulis [berape_pasar] di halaman baru. Kotak iklan terbaru: [berape_terbaru jumlah="4" tautan="/pasar"] atau widget Iklan terbaru berape.
Kunci
- Kunci publik (
pk_…): boleh ada di halaman web. Hanya berlaku dari domain yang terdaftar (headerOrigin). - Kunci rahasia (
sk_…): hanya untuk server Anda. Tanpa batas domain, juga untuk statistik.
Kirim kunci di header X-Berape-Kunci. Kunci ada di dashboard mitra setelah mendaftar dan memverifikasi domain.
Alamat
https://api.berape.com/v1, jawaban selalu JSON. Galat: {"galat": "…"} dengan kode HTTP 4xx/5xx.
Bahasa
Tambahkan ?bahasa=de atau ?bahasa=en untuk nama kategori dan pesan galat dalam bahasa Jerman atau Inggris. Pesan aslinya tetap ada di galatAsli. Isi iklan selalu seperti ditulis penjual.
Endpoint
| GET | /v1 | Cek kunci, info mitra |
| GET | /v1/kategori | Kategori dan subkategori (slug dipakai saat mencari dan memasang) |
| GET | /v1/lokasi?q=294 | Saran kode pos, kota, kecamatan, desa saat mengetik |
| GET | /v1/lokasi?kp=29432 | Kelurahan/desa dengan kode pos ini (id → field desa) |
| GET | /v1/iklan?q=&kategori=&lokasi=&radius=&min=&maks=&urut=&hal= | Cari iklan. Tanpa lokasi: lokasi bawaan mitra; lokasi=semua untuk seluruh Indonesia |
| GET | /v1/iklan/{id} | Detail iklan (iklan sendiri juga bila belum tayang, dengan token) |
| POST | /v1/iklan/{id}/kontak | Tautan WhatsApp ke penjual (dihitung sebagai klik) |
| POST | /v1/iklan/{id}/laporan | Laporkan iklan: {"alasan": "penipuan|terlarang|spam|salah|terjual|lainnya"} |
| POST | /v1/masuk/kode | Kirim kode masuk ke WhatsApp penjual: {"nomor": "0812…"} |
| POST | /v1/masuk/verifikasi | {"nomor", "kode"} → {"token"} (90 hari) |
| POST | /v1/masuk/pesan | Masuk dengan mengirim pesan WhatsApp (bila "masuk": "pesan" di GET /v1): → {"id", "rahasia", "waUrl", "teks"} |
| POST | /v1/masuk/pesan/cek | {"id", "rahasia"} → {"status": "menunggu"} … {"status": "masuk", "token"}. Tanyakan tiap 2–3 detik. |
| GET | /v1/saya | Data penjual dan iklannya (token) |
| POST | /v1/iklan | Pasang iklan, multipart (token) |
| POST | /v1/iklan/{id} | Ubah iklan sendiri, multipart (token) |
| POST | /v1/iklan/{id}/aksi | {"aksi": "terjual|perpanjang|hapus"} (token) |
| GET | /v1/statistik | Iklan yang dipasang lewat situs Anda (kunci rahasia) |
Contoh: iklan terbaru di sekitar kota Anda
const r = await fetch('https://api.berape.com/v1/iklan?lokasi=batam&radius=20', {
headers: { 'X-Berape-Kunci': 'pk_…' },
})
const { iklan } = await r.json()
// iklan[0].judul, .harga, .foto[0].kecil, .lokasi.teks, .urlKanonikContoh: penjual masuk dan memasang iklan
// 1. Kode ke WhatsApp penjual
await fetch('https://api.berape.com/v1/masuk/kode', { method: 'POST', headers, body: JSON.stringify({ nomor: '0812…' }) })
// 2. Penjual mengetik kodenya → token
const { token } = await (await fetch('https://api.berape.com/v1/masuk/verifikasi', {
method: 'POST', headers, body: JSON.stringify({ nomor: '0812…', kode: '123456' }),
})).json()
// 3. Pasang iklan (multipart): judul, deskripsi, harga, nego, kondisi, kategori (slug),
// desa (id dari /lokasi?kp=), nama, foto (1–8 file JPG/PNG/WebP)
const f = new FormData()
f.append('judul', 'Honda Beat 2019'); f.append('kategori', 'motor'); f.append('desa', '44754')
f.append('foto', fileInput.files[0])
await fetch('https://api.berape.com/v1/iklan', {
method: 'POST', headers: { 'X-Berape-Kunci': 'pk_…', Authorization: 'Bearer ' + token }, body: f,
})Aturan
- Iklan penjual baru diperiksa moderator dulu; jawaban berisi
"tayang": false. - Nomor WhatsApp penjual tidak pernah dikirim; pakai
/kontakuntuk tautan chat. - Tautkan setiap iklan ke
urlKanonik(halaman asli di berape.com) supaya Google tidak melihat konten ganda. - Batas permintaan per kunci per menit sesuai paket; lewat batas → HTTP 429.