REST API v1

BasedOnB API Referansı

Google Maps müşteri adayı çekimini otomatikleştirin, webhook'ları yönetin ve CRM veya iş akışı otomasyon araçlarınızla entegre edin.

Hızlı Başlangıç

curl https://www.basedonb.com/api/v1/account \
  -H "Authorization: Bearer bdb_live_YOUR_KEY_HERE"

Kimlik Doğrulama

Tüm API istekleri (GET /api/v1/health hariç) bir API anahtarı gerektirir. Ayarlar → API Anahtarları üzerinden oluşturun.

Anahtarınızı iki yoldan biriyle gönderin:

Authorization header (önerilen)

Authorization: Bearer bdb_live_...

X-API-Key header

X-API-Key: bdb_live_...

Temel URL

https://www.basedonb.com/api/v1

Hız Limitleri

API anahtarı başına dakikada 100 istek. Bu sınırı aşmak 429 Too Many Requests döner.

Uç Noktalar

Sağlık

Hesap

Taramalar

Coğrafi Veri

Scrapes API'nin kabul ettiği ülke / eyalet / şehir değerlerini arayın. Eyaletler GeoNames nokta kod formatını izler (US.TX, TR.34, DE.02). Alt bölüm içermeyen ülkeler boş states dizisi döner — bu işleri yalnızca country ile gönderin.

Krediler & Faturalama

Webhook'lar

Webhook'lar gerçek zamanlı olay bildirimlerini uç noktanıza iletir. Her istek doğrulama için bir X-Webhook-Signature: sha256=<hex> başlığı içerir.

Webhook Yükü

Uç noktanıza iletilen örnek scrape.done yükü:

POST https://your-server.com/webhook
Content-Type: application/json
X-Webhook-Signature: sha256=abc123...
X-Event-Type: scrape.done
User-Agent: BasedOnB-Webhook/1.0

{
  "event": "scrape.done",
  "created_at": "2026-01-15T10:05:00Z",
  "data": {
    "scrape_id": "job-uuid",
    "query": "restaurants",
    "city": "Istanbul",
    "country": "Turkey",
    "leads_found": 47,
    "credits_charged": 47
  }
}

Webhook İmzalarını Doğrulama

İsteklerin BasedOnB'den geldiğinden emin olmak için X-Webhook-Signature başlığını doğrulayın. Webhook gizli anahtarınızı Ayarlar → Webhook'lar bölümünde bulun.

import { createHmac } from "crypto";

function verifyWebhook(body: string, signature: string, secret: string): boolean {
  const expected = "sha256=" + createHmac("sha256", secret).update(body).digest("hex");
  return expected === signature;
}

// In your endpoint handler:
const body = await req.text();
const sig = req.headers.get("X-Webhook-Signature") ?? "";
if (!verifyWebhook(body, sig, process.env.WEBHOOK_SECRET!)) {
  return new Response("Unauthorized", { status: 401 });
}

API Anahtarı Yönetimi

Hata Kodları

HTTP DurumKodAçıklama
401unauthorizedMissing or invalid API key
403forbiddenAPI key valid but not allowed for this resource
404not_foundResource not found
400bad_requestInvalid request parameters
402insufficient_creditsNot enough credits to start a scrape
429rate_limitedToo many requests. Retry after 1 minute
500internal_errorUnexpected server error

Hata yanıt formatı:

{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits. You have 3 but need 50."
  }
}

Başlamaya hazır mısınız?

Ayarlar'dan ilk API anahtarınızı oluşturun ve dakikalar içinde taramaya başlayın.