Disukai

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 (header Origin).
  • 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/v1Cek kunci, info mitra
GET/v1/kategoriKategori dan subkategori (slug dipakai saat mencari dan memasang)
GET/v1/lokasi?q=294Saran kode pos, kota, kecamatan, desa saat mengetik
GET/v1/lokasi?kp=29432Kelurahan/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}/kontakTautan WhatsApp ke penjual (dihitung sebagai klik)
POST/v1/iklan/{id}/laporanLaporkan iklan: {"alasan": "penipuan|terlarang|spam|salah|terjual|lainnya"}
POST/v1/masuk/kodeKirim kode masuk ke WhatsApp penjual: {"nomor": "0812…"}
POST/v1/masuk/verifikasi{"nomor", "kode"} → {"token"} (90 hari)
POST/v1/masuk/pesanMasuk 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/sayaData penjual dan iklannya (token)
POST/v1/iklanPasang iklan, multipart (token)
POST/v1/iklan/{id}Ubah iklan sendiri, multipart (token)
POST/v1/iklan/{id}/aksi{"aksi": "terjual|perpanjang|hapus"} (token)
GET/v1/statistikIklan 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, .urlKanonik

Contoh: 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 /kontak untuk 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.