Public APIHesap ve Lookup'lar

Hesap & Lookup Uçları

Zapier’de veya Make’te bir “Ara” (Start Call) aksiyonu kurarken karşına çıkan o asistan seç ve arayan numara seç açılır menüleri boşuna gelmez — arka planda bu üç uç doldurur onları. Üçü de salt-okunur, hiçbir şey değiştirmez, tek bir API anahtarıyla saniyeler içinde cevap verir. GET /me bağlantının canlı olduğunu kanıtlar; GET /assistants ve GET /phone-numbers ise otomasyon platformunun dropdown’larını senin gerçek asistan ve numaralarınla besler.

Bu üç uç, bir otomasyon aracının Purvisor hesabına ilk “el sıkışmasıdır” — telefon rehberini paylaşmak gibi: karşı taraf kiminle konuşacağını (asistan) ve hangi hattan arayacağını (numara) buradan öğrenir.

Genel bakış

Ne döner?Nerede kullanılır?
GET /meHesap kimliğin {id, email, name}Bağlantı testi (Zapier/Make “Test Connection”)
GET /assistantsAktif asistanların dizisi”Ara” aksiyonunda asistan dropdown’u
GET /phone-numbersAktif numaraların dizisi”Ara” aksiyonunda arayan-numara (caller ID) dropdown’u

Üç uç da /api/v1 altındadır ve API anahtarı ile doğrulanır (NextAuth oturumu gerekmez). Anahtarını nasıl oluşturacağını Kimlik Doğrulama sayfasında bulursun. Temel URL (üretim): https://app.purvisor.ai/api/v1.

GET /me — Bağlantı testi

API anahtarının geçerli olup olmadığını kanıtlayan en basit uç. Zapier ve Make, bir bağlantı kurarken “bu anahtar çalışıyor mu?” sorusunu tam olarak buraya sorar. Anahtar geçerliyse hesabının kimliğini döner; değilse HTTP 401 verir.

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

Başarılı yanıt (HTTP 200):

{
  "id": "1042",
  "email": "you@company.com",
  "name": "Ada Lovelace"
}

Geçersiz veya eksik anahtar (HTTP 401):

{ "error": "invalid_api_key" }

Zapier/Make bağlantı ekranında “Test URL” istendiğinde tam olarak bu ucu (/api/v1/me) kullan — dönen email alanı bağlantı kartında hesap adın olarak görünür.

id alanı bir metin (string) olarak döner, sayı değil. Purvisor içeride BigInt kimlikleri metne çevirir; JSON’da tırnak içinde gelmesi bu yüzdendir.

GET /assistants — Asistan listesi

“Ara” aksiyonunda kullanıcının isimle seçtiği, arka planda ise id’si gönderilen asistanları doldurur. Yalnızca sana ait ve aktif (active=true) asistanları döner; taslak veya pasif olanlar listede görünmez. Sıralama en yeniden eskiye (createdAt azalan).

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

Yanıt — çıplak bir JSON dizisi (HTTP 200):

[
  {
    "id": "asst_9f3a2b",
    "name": "Satış Ön Nitelendirme",
    "direction": "outbound",
    "model": "gemini-2.5-flash"
  },
  {
    "id": "asst_7c1d84",
    "name": "Gelen Çağrı Karşılama",
    "direction": "inbound",
    "model": "claude-haiku"
  }
]
AlanAçıklama
idAsistanın kimliği (metin). “Ara” aksiyonunda bu değer assistant_id olarak gönderilir.
namePanelde verdiğin asistan adı — dropdown’da görünen etiket.
directionÇağrı yönü: outbound (giden) veya inbound (gelen). Değer boşsa outbound varsayılır.
modelAsistanın kullandığı yapay zeka modeli (örn. gemini-2.5-flash).

Asistanın dropdown’da çıkmıyorsa büyük olasılıkla pasif durumda — panelden aktifleştir, liste anında güncellensin.

GET /phone-numbers — Numara listesi

“Ara” aksiyonunda arayan numara (caller ID) seçimini doldurur. Yalnızca sana ait (created_by) ve aktif (is_active=true) numaraları döner, id’ye göre artan sırada.

curl https://app.purvisor.ai/api/v1/phone-numbers \
  -H "X-API-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Yanıt — çıplak bir JSON dizisi (HTTP 200):

[
  {
    "id": "12",
    "number": "+902123456789",
    "provider": "sip"
  },
  {
    "id": "15",
    "number": "+902129998877",
    "provider": "twilio"
  }
]
AlanAçıklama
idNumaranın kimliği (metin). “Ara” aksiyonunda phone_number_id olarak gönderilir.
numberE.164 formatında telefon numarası — dropdown etiketi.
providerNumaranın sağlayıcısı. Değer boşsa sip varsayılır.
⚠️

Liste boş dönüyorsa henüz bağlı bir aktif SIP numaran yok demektir. Numara bağlamadan otomatik arama başlatılamaz. Kurulum için: Telefon Numarası (SIP).

Bu uçlar dropdown’ları nasıl besler?

Zapier/Make "Ara" aksiyonunu açar

Platform GET /me çağırır  → bağlantı geçerli mi? (401 ise bağlantıyı reddeder)

GET /assistants çağırır   → "Asistan" dropdown'unu doldurur (name göster, id sakla)
GET /phone-numbers çağırır → "Arayan Numara" dropdown'unu doldurur

Kullanıcı asistan + numara seçer → id'ler POST /api/v1/calls gövdesine yazılır

Yani sen Zapier’de bir isim seçerken, arka planda seçilen asistanın id’si “Ara” aksiyonuna gider. Numara seçmezsen “Ara” aksiyonu senin ilk aktif numaranı otomatik kullanır — dropdown yine de kontrolü sende bırakır.

Sorun giderme

BelirtiOlası neden / çözüm
Bağlantı testi (/me) 401 dönüyorAnahtar yanlış, süresi dolmuş ya da yeniden oluşturulmuş (eski anahtar anında geçersiz olur). Ayarlar → API Anahtarı’ndan güncel anahtarı al.
Asistan dropdown’u boşAktif asistanın yok; hepsi pasif/taslak. Panelden en az bir asistanı aktifleştir.
Beklediğin asistan listede yokO asistan pasif (active=false) veya başka bir hesaba ait — yalnızca senin aktif asistanların döner.
Numara dropdown’u boşAktif SIP numaran yok. Telefon Numarası (SIP) ile bağla.
id neden tırnak içinde?Kimlikler metin (string) olarak döner — bu beklenen davranıştır, aksiyonlara olduğu gibi geçir.

KVKK notu: Bu üç uç yalnızca senin kendi hesabının yapılandırma verisini (asistan adları, kendi numaraların, kendi e-postan) döner; üçüncü kişilere ait kişisel veri içermez. Yine de API anahtarını bir sır gibi sakla — anahtar, hesabının otomatik arama başlatma yetkisine erişimdir.

İlgili