berape-API für Partner
Zeige berape-Anzeigen auf deiner Website und lass Besucher Anzeigen aufgeben, ohne deine Seite zu verlassen. Alle Anzeigen landen in einer gemeinsamen Datenbank; über deine Website aufgegebene Anzeigen werden dir zugeordnet.
Am schnellsten: das Widget
Füge diese zwei Zeilen in deine Seite ein. Kein Programmieren nötig; das Aussehen übernimmt Linkfarbe und Schrift deiner Website.
<script src="https://berape.com/widget/v1.js" defer></script> <!-- Kompletter Markt: Suche, Details, WhatsApp-Chat, Anzeige aufgeben, meine Anzeigen --> <berape-pasar kunci="pk_…"></berape-pasar> <!-- Kleine Box, z. B. auf der Startseite oder neben Artikeln --> <berape-terbaru kunci="pk_…" jumlah="4" tautan="/pasar"></berape-terbaru>
Optionale Attribute: lokasi (PLZ oder Ort), radius (km), kategori (Slug), warna (z. B. #0a6ebd), sudut (px), bahasa (id, de oder en; Standard: Sprache deiner Seite), jumlah und tautan (deine Marktseite, für <berape-terbaru>). Ohne lokasi verwendet das Widget den Standardort deines Partnerkontos.
WordPress
WordPress-Website: Installiere das Plugin berape Pasar (Plugins → Neues Plugin hinzufügen → Plugin hochladen), trage unter Einstellungen → berape Pasar den öffentlichen Schlüssel ein und schreibe [berape_pasar] auf eine neue Seite. Box mit neuesten Anzeigen: [berape_terbaru jumlah="4" tautan="/pasar"] oder das Widget Neueste berape-Anzeigen.
Schlüssel
- Öffentlicher Schlüssel (
pk_…): darf auf Webseiten stehen. Gilt nur von registrierten Domains aus (HeaderOrigin). - Geheimer Schlüssel (
sk_…): nur für deinen Server. Ohne Domain-Beschränkung, auch für Statistiken.
Sende den Schlüssel im Header X-Berape-Kunci. Die Schlüssel findest du nach Registrierung und Domain-Bestätigung im Partner-Dashboard.
Adresse
https://api.berape.com/v1, Antworten sind immer JSON. Fehler: {"galat": "…"} mit HTTP-Code 4xx/5xx.
Sprache
Hänge ?bahasa=de oder ?bahasa=en an, um Kategorienamen und Fehlermeldungen auf Deutsch oder Englisch zu erhalten. Die Originalmeldung steht weiterhin in galatAsli. Anzeigentexte bleiben so, wie der Verkäufer sie geschrieben hat. Feldnamen der API sind indonesisch (z. B. judul = Titel, harga = Preis).
Endpoint
| GET | /v1 | Schlüssel prüfen, Partnerinfo |
| GET | /v1/kategori | Kategorien und Unterkategorien (Slug für Suche und Aufgeben) |
| GET | /v1/lokasi?q=294 | Vorschläge für PLZ, Stadt, Bezirk, Ortsteil beim Tippen |
| GET | /v1/lokasi?kp=29432 | Ortsteile mit dieser PLZ (id → Feld desa) |
| GET | /v1/iklan?q=&kategori=&lokasi=&radius=&min=&maks=&urut=&hal= | Anzeigen suchen. Ohne lokasi: Standardort des Partners; lokasi=semua für ganz Indonesien |
| GET | /v1/iklan/{id} | Anzeigendetails (eigene Anzeigen auch vor Freischaltung, mit Token) |
| POST | /v1/iklan/{id}/kontak | WhatsApp-Link zum Verkäufer (zählt als Klick) |
| POST | /v1/iklan/{id}/laporan | Anzeige melden: {"alasan": "penipuan|terlarang|spam|salah|terjual|lainnya"} |
| POST | /v1/masuk/kode | Login-Code per WhatsApp an den Verkäufer: {"nomor": "0812…"} |
| POST | /v1/masuk/verifikasi | {"nomor", "kode"} → {"token"} (90 Tage) |
| POST | /v1/masuk/pesan | Login per WhatsApp-Nachricht (wenn GET /v1 "masuk": "pesan" liefert): → {"id", "rahasia", "waUrl", "teks"} |
| POST | /v1/masuk/pesan/cek | {"id", "rahasia"} → {"status": "menunggu"} … {"status": "masuk", "token"}. Alle 2–3 Sekunden abfragen. |
| GET | /v1/saya | Verkäuferdaten und seine Anzeigen (Token) |
| POST | /v1/iklan | Anzeige aufgeben, multipart (Token) |
| POST | /v1/iklan/{id} | Eigene Anzeige bearbeiten, multipart (Token) |
| POST | /v1/iklan/{id}/aksi | {"aksi": "terjual|perpanjang|hapus"} (Token) |
| GET | /v1/statistik | Über deine Website aufgegebene Anzeigen (geheimer Schlüssel) |
Beispiel: neueste Anzeigen rund um deine Stadt
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 (Titel), .harga (Preis), .foto[0].kecil, .lokasi.teks, .urlKanonikBeispiel: Verkäufer einloggen und Anzeige aufgeben
// 1. Code an die WhatsApp des Verkäufers
await fetch('https://api.berape.com/v1/masuk/kode', { method: 'POST', headers, body: JSON.stringify({ nomor: '0812…' }) })
// 2. Verkäufer tippt den Code ein → 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. Anzeige aufgeben (multipart): judul, deskripsi, harga, nego, kondisi, kategori (Slug),
// desa (id aus /lokasi?kp=), nama, foto (1–8 Dateien 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,
})Regeln
- Anzeigen neuer Verkäufer werden zuerst moderiert; die Antwort enthält
"tayang": false. - Die WhatsApp-Nummer des Verkäufers wird nie übertragen; nutze
/kontakfür den Chat-Link. - Verlinke jede Anzeige auf
urlKanonik(Originalseite auf berape.com), damit Google keinen doppelten Inhalt sieht. - Anfragelimit pro Schlüssel und Minute je nach Paket; darüber → HTTP 429.