Public APIGiriş ve Base URL

Public API’ye Giriş

Zapier, Make, n8n ve yazdığın her satır kod — hepsi tek bir API’nin üzerinde durur: Purvisor Public API (v1). Panelden bir API anahtarı üretirsin, GET /me ile 30 saniyede bağlantıyı doğrularsın, ve aynı anahtarla kontak açar, arama başlatır, webhook’a abone olursun. Ayrı “Zapier API’si” yoktur; Zapier’in gördüğü uçlarla senin curl’ün gördüğü uçlar birebir aynıdır.

Kimler kullanır?

Purvisor Public API, Purvisor’ı dışarıdaki sistemlerle konuşturmanın standart yoludur. Dört tür kullanıcı hep aynı REST yüzeyine bağlanır:

KullananNasıl bağlanırÖrnek senaryo
ZapierPurvisor Zapier uygulaması (dizinde henüz yayında değil — davetli erişim)Yeni Google Sheets satırı → Purvisor’da kontak aç → asistan arasın
MakeHTTP modülü (Purvisor’a özel uygulama yok)Formdan gelen lead’i arama kuyruğuna sok
n8nHTTP Request nodeKendi otomasyon akışında arama başlat
Kendi koduncurl, Python, Node — herhangi bir HTTP istemcisiKendi CRM’inden Purvisor’a arama tetikle

Bir “no-code” aracıyla mı yoksa kendi kodunla mı bağlanacağın fark etmez — bu sayfadaki her şey dördü için de geçerlidir.

Temel URL

Tüm uçlar tek bir kök adres altında toplanır:

https://app.purvisor.ai/api/v1
⚠️

Uygulama ve API host’u app.purvisor.ai’dır. www.purvisor.ai yalnızca pazarlama sitesidir, API isteği kabul etmez. İsteklerini her zaman app.purvisor.ai/api/v1 köküne gönder.

Yerel geliştirme veya test yaparken temel URL, ortamının NEXTAUTH_URL değerinden gelir (örn. http://localhost:3000 ya da bir ngrok tüneli) — sonuna yine /api/v1 eklenir.

Kimlik doğrulama — tek satırlık özet

Her /api/v1/* isteği bir API anahtarı ister. Anahtar pk_live_ ön ekiyle başlar ve 48 hex karakterle devam eder (toplam 56 karakter). Tarayıcı oturumu (cookie) v1’de kullanılmaz; kimlik yalnızca anahtarla belirlenir, yani sunucu-sunucu çağrıları için birebir uygundur.

Anahtarı üç şekilde gönderebilirsin (öncelik sırasıyla):

X-API-Key: pk_live_...            ← önerilen
Authorization: Bearer pk_live_... ← alternatif
?api_key=pk_live_...              ← Zapier uyumluluğu için query

Anahtar geçersizse her uç aynı yanıtı verir: HTTP 401 + {"error":"invalid_api_key"}. Anahtarı nasıl oluşturacağın, sakladığın ve döndürdüğün ayrı bir sayfada: Kimlik Doğrulama.

JSON kuralları

Purvisor Public API sade JSON konuşur, ama üç noktayı bilmek ilk saatte yaşayacağın kafa karışıklığını önler.

1. Yanıt şekli uca göre değişir

Bazı uçlar çıplak bir dizi ([...]) döner, bazıları {data:[...]} sarmalar. Kural, ucun amacına bağlıdır:

Yanıt şekli
GET /assistants, GET /phone-numbers, GET /contactsÇıplak dizi [...]
GET /hooks, GET /samples{ "data": [...] }

Arama/liste uçlarının çıplak dizi dönmesi Zapier’in “search” aksiyonlarının beklentisidir: sonuç bulunamazsa boş dizi döner (404 değil). Kodunda if (!results.length) ile “eşleşme yok” durumunu ele al.

2. ID’ler string’dir

Kullanıcı, kontak, telefon numarası ve webhook aboneliği kimlikleri veritabanında BigInt’tir; JSON sayı sınırını aşmamak için yanıtlarda string olarak serileştirilir. Asistan kimliği zaten string’dir. Kısacası: ID’leri her zaman metin gibi taşı, sayıya çevirme.

{ "id": "1042", "email": "info@ornek.com", "name": "Ahmet Yılmaz" }

3. İstek gövdesi snake_case VEYA camelCase kabul eder

Kontak ve arama uçlarında alan adlarını iki biçimde de yazabilirsin; ikisi de çalışır. first_name ile firstName, phone_number_id ile phoneNumberId aynı anlama gelir. Otomasyon aracın hangisini üretiyorsa onu gönder, dönüştürmekle uğraşma.

30 saniyede ilk istek: GET /me

En hızlı “merhaba” — anahtarının çalıştığını kanıtlayan tek çağrı. Zapier ve Make de bağlantıyı bununla test eder.

Anahtarını al

Panelde Ayarlar → API Anahtarı bölümünden anahtarını oluştur. Tam anahtar yalnızca bir kez gösterilir; kopyalayıp güvenli bir yere kaydet. Adım adım: Kimlik Doğrulama.

İsteği gönder

curl https://app.purvisor.ai/api/v1/me \
  -H "X-API-Key: pk_live_YOUR_KEY_HERE"

Yanıtı doğrula

Anahtar geçerliyse hesabının kimliğini görürsün:

{
  "id": "1042",
  "email": "info@ornek.com",
  "name": "Ahmet Yılmaz"
}

Bunu gördüysen bağlantın hazır. Anahtar hatalıysa dönen yanıt:

{ "error": "invalid_api_key" }

📸 [Ekran görüntüsü: Ayarlar → API Anahtarı bölümü, “Anahtar Oluştur” butonu ve tek seferlik anahtar kutusu]

“Ya oran sınırı (rate limit)?”

/api/v1 uçları API anahtarı başına dakikada 60 istek ile sınırlıdır. Limit IP’ye değil anahtara bağlıdır; aşarsan HTTP 429 döner ve yanıttaki Retry-After başlığı kaç saniye bekleyeceğini söyler. Normal bir entegrasyonda bu limite pek çarpmazsın — döngü içinde çağrı yapmadığın sürece.

Asıl sert kapı arama başlatmadadır: dakika bakiyen 1’in altındaysa POST /calls çağrısı HTTP 402 + {"error":"Insufficient minute balance"} döner. Tüm hata kodlarının tablosu: Limitler ve Hatalar.

KVKK notu: Bu API ile açtığın kontaklar ve başlattığın aramalar kişisel veri işler. Aramaya konu kişilerin açık rızasını topladığından ve asistanının açılışta kim olduğunu/neden aradığını net söylediğinden emin ol. Detay: KVKK ve Veri Yönetimi.

Sırada ne var?

Bağlantın çalışıyorsa, sıra gerçek işi yapan uçlarda:

Yapmak istediğinGit
Anahtar oluştur / döndür / saklaKimlik Doğrulama
Asistan ve numara listelerini çekHesap ve Lookup’lar
Kontak aç / bulKontaklar
Arama başlatArama Başlatma
Olaylara abone ol (trigger)Webhook’lar

İlgili