Ana içeriğe geç

API Referansı

Hanc.AI'yi uygulamalarınıza entegre etmek için eksiksiz API dokümantasyonu. Ajanları yönetin, çağrı verilerini alın, çağrı yapın ve platformun her parçasını programlı olarak çalıştırın.

Aşağıdaki her bölüm size HTTP yöntemi ve yolu, parametreleri (yol, sorgu ve gövde), çalıştırmaya hazır bir örnek istek ve temsili bir örnek yanıt sunar, böylece yük yapılarını tahmin etmeden entegre edebilirsiniz.


Hızlı genel bakış

Temel URLhttps://api.hanc.ai
Sürüm önekiTüm yollar /v1 ile başlar
Kimlik doğrulamax-api-key başlığı aracılığıyla API anahtarı
BiçimJSON (istek ve yanıt)

Kontrol panelindeki Entegrasyon → API Anahtarları'ndan bir API anahtarı oluşturun. Kullanıcı başına en fazla 3 anahtara sahip olabilirsiniz — kurulum, izinler ve güvenlik rehberliği için Entegrasyonlar'daki API Anahtarları bölümüne bakın.

curl -X GET "https://api.hanc.ai/v1/agent/list" \
-H "x-api-key: YOUR_API_KEY"

Kimlik Doğrulama

Anahtarınızı her istekte x-api-key başlığında gönderin:

x-api-key: YOUR_API_KEY

Anahtar, sahibi olan kullanıcıya çözümlenir ve her istek otomatik olarak o kullanıcının kapsamına alınır — hiçbir zaman bir kullanıcı kimliği geçmezsiniz. Eksik veya geçersiz bir anahtar 401 Unauthorized / 403 Forbidden ile reddedilir.

ipucu

Anahtarları sunucu tarafında tutun. Bir API anahtarını hiçbir zaman bir tarayıcıya, mobil uygulamaya veya son kullanıcının inceleyebileceği herhangi bir istemciye gömmeyin. Bir anahtar sızarsa, Entegrasyon → API Anahtarları'ndan iptal edin ve yenisini çıkarın.


Kurallar

Tüm API genelinde birkaç kural geçerlidir. Bunları bir kez okumak size hata ayıklama zamanı kazandıracaktır:

  • Sürüm öneki — her yol /v1 ile başlar (örn. https://api.hanc.ai/v1/agent/list).
  • Kimlikler Mongo ObjectId'lerdir — herhangi bir :id (ve :agentActionId, :agentToolId vb.) 24 karakterlik onaltılık bir dize olmalıdır. Hatalı biçimlendirilmiş kimlikler 400 Bad Request döndürür.
  • Bilinmeyen gövde alanları çıkarılır — API, istek gövdelerini doğrular ve tanımadığı özellikleri sessizce bırakır, böylece bir alan adındaki yazım hatası saklanmak yerine yok sayılır.
  • Tarihler — analitik/dışa aktarma uç noktaları date_from / date_to değerlerini YYYY-MM-DD olarak alır. date_to, o günün sonuna kadar dahildir.
  • Dizi sorgu parametreleri — bir filtrenin birden fazla değer kabul ettiği yerlerde (örn. agent_ids, direction), anahtarı tekrarlayabilir (?direction=inbound&direction=outbound) veya virgülle ayırabilirsiniz (?direction=inbound,outbound).
  • Yanıtlardaki zaman damgaları, ISO‑8601 dizesi olarak gösterilmedikçe epoch milisaniyeleridir.

Uç nokta dizini

Mevcut olan her şeyin hızlı bir haritası. Her biri için ayrıntılı dokümanlar aşağıda yer alır.

Çağrılar

EylemYöntemUç Nokta
Çağrıları listeleGET/v1/call/list
Çağrı ayrıntıları (transkript, duygu, özet)GET/v1/call/:id
Genel analitik (bir aralıktaki toplamlar)GET/v1/call/general-metrics
Günlük analitikGET/v1/call/daily-metrics
Duygu istatistikleriGET/v1/call/sentiment-stats
Maliyet dökümüGET/v1/call/costs-breakdown
Çağrıları dışa aktar (CSV)GET/v1/call/list/export
Maliyetleri dışa aktar (CSV)GET/v1/call/costs-breakdown/export
Telefon çağrısı yapPOST/v1/call/make-phone-call
Web çağrısı yapPOST/v1/call/make-web-call

Ajanlar

EylemYöntemUç Nokta
Ajanları listeleGET/v1/agent/list
Ajan ayrıntılarıGET/v1/agent/:id
Ajan oluşturPOST/v1/agent
Ajan güncellePATCH/v1/agent/:id
Ajan silDELETE/v1/agent/:id
Ajan çağrı istatistikleriGET/v1/agent/:id/call-stats
Ajan şablonlarını listeleGET/v1/agent/agent_template/list
Eylemleri listeleGET/v1/agent/:id/actions
Eylem eklePOST/v1/agent/:id/actions
Eylem güncellePATCH/v1/agent/:id/actions/:agentActionId
Eylem silDELETE/v1/agent/:id/actions/:agentActionId
Araçları listeleGET/v1/agent/:id/tools
Araç eklePOST/v1/agent/:id/tools
Araç güncellePATCH/v1/agent/:id/tools/:agentToolId
Araç silDELETE/v1/agent/:id/tools/:agentToolId

Bilgi Tabanı

EylemYöntemUç Nokta
Bilgi tabanlarını listeleGET/v1/knowledge-base/list
Oluştur (ilk dosyayla)POST/v1/knowledge-base
Tek bir dosya eklePOST/v1/knowledge-base/:id/file
Birden fazla dosya eklePOST/v1/knowledge-base/:id/files
Dosya(ları) silDELETE/v1/knowledge-base/:id/file
Ajan ataPUT/v1/knowledge-base/:id/agents

Telefon Numaraları

EylemYöntemUç Nokta
Numaraları listeleGET/v1/phone-number/list
Mevcut numaralar (ülkeye göre)GET/v1/phone-number/available
Numara satın alPOST/v1/phone-number/buy
Twilio'dan içe aktarPOST/v1/phone-number/import-twilio
SIP'e bağlaPATCH/v1/phone-number/connect-to-sip

Sesler · Abonelik · Müşteriler · Çalışma Alanları

EylemYöntemUç Nokta
Sesleri listeleGET/v1/voice/list
Abonelik ayrıntılarıGET/v1/subscription
Otomatik yüklemeyi yapılandırPATCH/v1/subscription/auto-top-up
Yükleme tutarını ayarlaPATCH/v1/subscription/top-up-amount
Müşterileri listeleGET/v1/customer/list
Müşteri ayrıntılarıGET/v1/customer/:id
Müşteri oluşturPOST/v1/customer
Müşteri güncellePATCH/v1/customer/:id
Müşteri silDELETE/v1/customer/:id
Çalışma alanlarını listeleGET/v1/workspaces/list
Çalışma alanı oluşturPOST/v1/workspaces
Çalışma alanı ayrıntılarıGET/v1/workspaces/:id
Çalışma alanı güncellePATCH/v1/workspaces/:id
Çalışma alanı silDELETE/v1/workspaces/:id
Üye davet etPOST/v1/workspaces/:workspace_id/invite-member
Üye kaldırDELETE/v1/workspaces/:workspace_id/remove-member

Çağrılar

Sesli çağrıları yönetin ve analiz edin: çağrıları listeleyip inceleyin (transkript, duygu, özet), toplu metrikleri çekin, CSV raporlarını dışa aktarın ve giden telefon ve web çağrıları yapın.

Çağrıları listele

GET /v1/call/list

Hesabınız için çağrıları filtreleme, sıralama ve sayfalandırma ile listeleyin.

Sorgu parametreleri

AdTürZorunluAçıklama
agent_idsstring[]HayırBir veya daha fazla ajan kimliğine göre filtreleyin (tekrarlayın veya virgülle ayırın).
agent_idstringHayırTek bir ajana göre filtreleyin (eski; agent_ids tercih edilir).
directionenum[]Hayırinbound ve/veya outbound.
call_statusenum[]Hayırstarted, success, failed, pending.
call_typeenum[]Hayırphone, web.
customer_idstringHayırMüşteriye göre filtreleyin.
workspace_idstringHayırÇalışma alanına göre filtreleyin.
date_from / date_tostringHayırAralık filtresi (YYYY-MM-DD).
sort_orderenumHayırasc veya desc.
limitnumberHayırDöndürülecek maksimum sonuç.
skipnumberHayırAtlanacak sonuçlar (sayfalandırma ofseti).

Örnek istek

curl -G "https://api.hanc.ai/v1/call/list" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "agent_ids=507f1f77bcf86cd799439042" \
--data-urlencode "direction=inbound" \
--data-urlencode "sort_order=desc" \
--data-urlencode "limit=10"

Örnek yanıt200 OK

[
{
"_id": "507f1f77bcf86cd799439011",
"call_type": "phone",
"agent_id": "507f1f77bcf86cd799439042",
"agent_name": "Customer Support Agent",
"call_status": "success",
"call_from": "+12345678900",
"call_to": "+12345678911",
"direction": "inbound",
"start_timestamp": 1703302407333,
"end_timestamp": 1703302428855,
"recording_url": "https://recordings.example.com/12345",
"disconnection_reason": "user_hangup",
"sentiment": { "sentiment": "positive", "explanation": "Friendly, helpful tone." },
"call_summary": "Customer issue resolved.",
"task_achieved": true
}
]

Çağrı ayrıntılarını al

GET /v1/call/:id

Bir çağrının tüm ayrıntılarını alın — transkript, duygu, özet, krediler ve performans metrikleri.

Yol parametreleri

AdTürZorunluAçıklama
idstringEvetÇağrının kimliği.

Örnek istek

curl "https://api.hanc.ai/v1/call/507f1f77bcf86cd799439011" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

{
"_id": "507f1f77bcf86cd799439011",
"call_type": "phone",
"agent_id": "507f1f77bcf86cd799439042",
"agent_name": "Customer Support Agent",
"call_status": "success",
"call_from": "+12345678900",
"call_to": "+12345678911",
"direction": "inbound",
"start_timestamp": 1703302407333,
"end_timestamp": 1703302428855,
"recording_url": "https://recordings.example.com/12345",
"transcription": [
{ "speaker": "agent", "content": "Hello, how can I help?", "timestamp": 1703302407333 },
{ "speaker": "user", "content": "I need help with my order.", "timestamp": 1703302410000 }
],
"sentiment": { "sentiment": "positive", "explanation": "Friendly, helpful tone." },
"call_summary": "Customer issue resolved.",
"task_achieved": true,
"call_credits_details": {
"phone_call_credits": 1,
"web_call_credits": 0,
"text_message_credits": 0,
"call_forwarding_credits": 0
}
}

Çağrı mevcut değilse veya hesabınıza ait değilse 404 döndürür.

Genel metrikler

GET /v1/call/general-metrics

Bir tarih aralığındaki toplu toplamlar (çağrı sayısı, toplam ve ortalama süre).

Sorgu parametreleri

AdTürZorunluAçıklama
date_fromstringEvetBaşlangıç tarihi (YYYY-MM-DD).
date_tostringEvetBitiş tarihi (YYYY-MM-DD, dahil).
agent_id / agent_idsstring(s)HayırBir veya daha fazla ajanla sınırlayın.
customer_idstringHayırMüşteriye göre filtreleyin.
workspace_idstringHayırÇalışma alanına göre filtreleyin.
direction / call_status / call_typeenum[]HayırÇağrıları listele ile aynı filtreler.

date_from veya date_to atlanırsa 400 Bad Request döndürür.

Örnek istek

curl -G "https://api.hanc.ai/v1/call/general-metrics" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31"

Örnek yanıt200 OK

{ "total_calls": 128, "total_duration": 45230, "average_duration": 353 }

Günlük metrikler

GET /v1/call/daily-metrics

Bir tarih aralığında gün başına toplam çağrı süresi — trendleri grafiklemek için idealdir.

Sorgu parametreleriGenel metrikler ile aynı (date_from/date_to zorunlu, ayrıca isteğe bağlı ajan/müşteri/çalışma alanı/yön/durum/tür filtreleri).

Örnek istek

curl -G "https://api.hanc.ai/v1/call/daily-metrics" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-07"

Örnek yanıt200 OK

[
{ "date": "2026-05-01", "total_duration": 5400 },
{ "date": "2026-05-02", "total_duration": 7320 },
{ "date": "2026-05-03", "total_duration": 0 }
]

Duygu istatistikleri

GET /v1/call/sentiment-stats

Bir tarih aralığında bir ajan için duyguya göre çağrı sayıları.

Sorgu parametreleri

AdTürZorunluAçıklama
agent_idstringEvetRaporlanacak ajan.
date_fromstringEvetBaşlangıç tarihi.
date_tostringEvetBitiş tarihi (dahil).

Örnek istek

curl -G "https://api.hanc.ai/v1/call/sentiment-stats" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "agent_id=507f1f77bcf86cd799439042" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31"

Örnek yanıt200 OK

{ "positive": 84, "negative": 12, "neutral": 32 }

Maliyet dökümü

GET /v1/call/costs-breakdown

Kullanıcıya, ajana veya çalışma alanına göre gruplandırılmış maliyet/kullanım dökümü (çağrılar, dakikalar, krediler, token'lar, model başına ayrıntı).

Sorgu parametreleri

AdTürZorunluAçıklama
date_fromstringEvetBaşlangıç tarihi.
date_tostringEvetBitiş tarihi (dahil).
group_byenumHayıruser (varsayılan), agent veya workspace.
customer_idstringHayırMüşteriye göre filtreleyin (ajans erişimi).
workspace_idstringHayırÇalışma alanına göre filtreleyin.

Örnek istek

curl -G "https://api.hanc.ai/v1/call/costs-breakdown" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31" \
--data-urlencode "group_by=agent"

Örnek yanıt200 OK

{
"breakdown": [
{
"agent_id": "507f1f77bcf86cd799439042",
"agent_name": "Customer Support Agent",
"total_calls": 64,
"total_duration_minutes": 380,
"credits": { "phone_call": 60, "web_call": 4, "text_message": 0, "call_forwarding": 1, "total": 65 },
"tokens": { "input": 920000, "output": 120000, "total": 1040000 }
}
],
"totals": { "total_calls": 64, "total_duration_minutes": 380, "total_credits": 65, "total_tokens": 1040000 },
"period": { "from": 1746057600000, "to": 1748735999999 }
}

Çağrıları dışa aktar (CSV)

GET /v1/call/list/export

Bir tarih aralığındaki her çağrıyı CSV dosyası olarak indirin (çağrı başına, model başına token ayrıntısıyla).

Sorgu parametreleri

AdTürZorunluAçıklama
date_fromstringEvetBaşlangıç tarihi.
date_tostringEvetBitiş tarihi (dahil).

Yanıt — bir CSV dosyası (Content-Type: text/csv), call-details_<date_from>_<date_to>.csv adlı bir ek olarak sunulur.

Örnek istek

curl -G "https://api.hanc.ai/v1/call/list/export" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31" \
-o call-details.csv

Maliyetleri dışa aktar (CSV)

GET /v1/call/costs-breakdown/export

Maliyet dökümünü CSV dosyası olarak indirin.

Sorgu parametreleriMaliyet dökümü ile aynı (date_from/date_to zorunlu; isteğe bağlı group_by, customer_id, workspace_id).

Yanıtcosts-breakdown_<date_from>_<date_to>.csv olarak sunulan bir CSV dosyası.

Örnek istek

curl -G "https://api.hanc.ai/v1/call/costs-breakdown/export" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31" \
--data-urlencode "group_by=agent" \
-o costs-breakdown.csv

Telefon çağrısı yap

POST /v1/call/make-phone-call

Ajanlarınızdan biriyle giden bir telefon çağrısı yapın.

İstek gövdesi

AlanTürZorunluAçıklama
agent_idstringEvetÇağrıyı yapacak ajan.
from_numberstringEvetE.164 biçiminde arayan kimliği (örn. +1234567890).
to_numberstringEvetAlıcının telefon numarası.
custom_dataobjectHayırÇağrıya eklenen keyfi veriler.
dynamic_contextobjectHayırKonuşmaya geçirilen bağlam (örn. müşteri adı).

Örnek istek

curl -X POST "https://api.hanc.ai/v1/call/make-phone-call" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "507f1f77bcf86cd799439042",
"from_number": "+1234567890",
"to_number": "+19876543210",
"dynamic_context": { "customer_name": "Jane", "order_id": "12345" }
}'

Örnek yanıt201 Created

{
"_id": "507f1f77bcf86cd799439011",
"call_type": "phone",
"agent_id": "507f1f77bcf86cd799439042",
"call_status": "started",
"call_from": "+1234567890",
"call_to": "+19876543210",
"direction": "outbound",
"start_timestamp": 1703302407333
}

Web çağrısı yap

POST /v1/call/make-web-call

Ajanlarınızdan biri için bir tarayıcı/WebRTC çağrı oturumu oluşturun.

İstek gövdesi

AlanTürZorunluAçıklama
agent_idstringEvetWeb çağrısını işleyecek ajan.
custom_dataobjectHayırÇağrıya eklenen keyfi veriler.
dynamic_contextobjectHayırKonuşmaya geçirilen bağlam.

Örnek istek

curl -X POST "https://api.hanc.ai/v1/call/make-web-call" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_id": "507f1f77bcf86cd799439042", "dynamic_context": { "topic": "billing" } }'

Örnek yanıt201 Created

{
"_id": "507f1f77bcf86cd799439077",
"call_type": "web",
"agent_id": "507f1f77bcf86cd799439042",
"call_status": "started",
"start_timestamp": 1703302407333
}

Ajanlar

Sesli ajanları, eylemlerini (bir çağrı sırasında ne yaptıkları — e-posta/SMS/WhatsApp gönderme, API'nizi çağırma) ve araçlarını (RAG araması, randevu alma, çağrı yönlendirme, takvim/CRM entegrasyonları gibi yetenekler) oluşturun ve yönetin.

Ajanları listele

GET /v1/agent/list

Hesabınıza ait tüm ajanları döndürün.

Sorgu parametreleri

AdTürZorunluAçıklama
customer_idstringHayırBir müşteriyle sınırlayın.
workspace_idstringHayırBir çalışma alanıyla sınırlayın.

Örnek istek

curl "https://api.hanc.ai/v1/agent/list" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

[
{
"_id": "60d21b4667d0d8992e610c85",
"agent_name": "Customer Support Agent",
"llm_id": "60d21b4667d0d8992e610c86",
"voice": { "voice_id": "60d21b4667d0d8992e610c87" },
"interruption_sensitivity": 1.0,
"call_settings": { "language": "en-US", "sentiment_analysis": false, "call_summary": false },
"status": "active",
"workspace_id": "60d21b4667d0d8992e610c87",
"knowledge_base": ["60d21b4667d0d8992e610c89"]
}
]

Bir ajanı al

GET /v1/agent/:id

Tek bir ajanı döndürün.

Yol parametreleri

AdTürZorunluAçıklama
idstringEvetAjan kimliği.

Örnek istek

curl "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"

Ajan nesnesini döndürür (Ajanları listele'deki bir öğeyle aynı yapıda) veya bulunamazsa 404.

Bir ajan oluştur

POST /v1/agent

Yeni bir ajan oluşturun. Yalnızca agent_name ve llm_id zorunludur — diğer her şey isteğe bağlıdır ve makul varsayılanlara geri döner.

Sorgu parametreleri — yeni ajanı ilişkilendirmek için isteğe bağlı customer_id, workspace_id.

İstek gövdesi

AlanTürZorunluAçıklama
agent_namestringEvetGörünen ad.
llm_idstringEvetAjanı destekleyen LLM'nin kimliği.
voiceobjectHayır{ "voice_id": "<id>" }.
interruption_sensitivitynumberHayırAjanın kesintiye uğradığında ne kadar kolay geri çekildiği (örn. 0.5).
call_settingsobjectHayırDil, hatırlatmalar, sessizlik zaman aşımı, duygu analizi, çağrı özeti, max_call_duration_minutes (1–15).
data_retrievalobject[]HayırAjanın bir çağrı sırasında topladığı alanlar.
webhook_urlstringHayırAjan olaylarından haberdar edilen URL.
is_data_collection_activebooleanHayırVeri toplama formunu etkinleştirin.

Örnek istek

curl -X POST "https://api.hanc.ai/v1/agent" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_name": "Customer Support Agent",
"llm_id": "507f1f77bcf86cd799439033",
"voice": { "voice_id": "507f1f77bcf86cd799439035" },
"interruption_sensitivity": 0.5,
"call_settings": { "language": "en-US", "max_call_duration_minutes": 10 }
}'

Örnek yanıt201 Created (oluşturulan ajan nesnesi).

Bir ajanı güncelle

PATCH /v1/agent/:id

Bir ajanı kısmen güncelleyin. Tüm gövde alanları isteğe bağlıdır — yalnızca değiştirmek istediğinizi gönderin.

Yol parametreleriid (ajan kimliği).

İstek gövdesi — oluşturma alanlarının herhangi bir alt kümesi, ayrıca folder, status (örn. active), is_customer_memory_active, widget_settings, callback_settings. call_settings içinde ayrıca recording_enabled, stt_languages (en fazla 4 BCP‑47 kodu) ve max_call_duration_minutes ayarlayabilirsiniz.

Örnek istek

curl -X PATCH "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_name": "Support Agent v2", "call_settings": { "language": "en-GB", "recording_enabled": false } }'

Örnek yanıt200 OK (güncellenen ajan nesnesi).

Bir ajanı sil

DELETE /v1/agent/:id

Bir ajanı silin.

Örnek istek

curl -X DELETE "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt204 No Content (boş gövde).

Ajan çağrı istatistikleri

GET /v1/agent/:id/call-stats

Bir tarih aralığında bir ajan için gün başına çağrı sayıları.

Yol parametreleriid (ajan kimliği).

Sorgu parametreleri

AdTürZorunluAçıklama
date_fromstringEvetBaşlangıç tarihi (YYYY-MM-DD).
date_tostringEvetBitiş tarihi (YYYY-MM-DD).

Örnek istek

curl -G "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/call-stats" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "date_from=2026-05-01" \
--data-urlencode "date_to=2026-05-31"

Örnek yanıt200 OK

[
{ "date": "2026-05-28", "total_calls": 10 },
{ "date": "2026-05-29", "total_calls": 4 }
]

Ajan şablonlarını listele

GET /v1/agent/agent_template/list

Klonlayabileceğiniz önceden oluşturulmuş ajan şablonlarının kataloğunu döndürün. Parametre yok.

Örnek istek

curl "https://api.hanc.ai/v1/agent/agent_template/list" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

[
{
"_id": "60d21b4667d0d8992e610c85",
"icon_url": "https://example.com/icon.png",
"description": "A ready-made receptionist agent.",
"agent": { "agent_name": "Receptionist", "call_settings": { "language": "en-US" } },
"llm": { "model": "gpt-4o-mini", "begin_message": "Hello, how can I assist you today?" }
}
]

Ajan eylemleri

Eylemler, bir ajanın bir çağrı sırasında gerçekleştirdiği şeylerdir. Desteklenen action_type değerleri: send_email, send_sms, send_whatsapp, api_call. settings nesnesinin yapısı türe bağlıdır.

Eylemleri listele

GET /v1/agent/:id/actions

curl "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions" \
-H "x-api-key: YOUR_API_KEY"

Bir eylem nesneleri dizisi döndürür.

Bir eylem ekle

POST /v1/agent/:id/actions

İstek gövdesi

AlanTürZorunluAçıklama
action_typeenumEvetsend_email, send_sms, send_whatsapp veya api_call.
settingsobjectEvetTüre özgü yapılandırma.
is_activebooleanHayırVarsayılan true.

Örnek istek

curl -X POST "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action_type": "send_email",
"settings": {
"name": "Welcome Email",
"subject": "Welcome!",
"message": "Thank you for joining us.",
"direct_recipients": ["user@example.com"]
}
}'

Örnek yanıt201 Created

{
"_id": "60f5b1a8d1b9f7c1d0c0a6c6",
"agent_id": "60d21b4667d0d8992e610c85",
"action_type": "send_email",
"settings": { "name": "Welcome Email", "subject": "Welcome!", "message": "Thank you for joining us.", "direct_recipients": ["user@example.com"] },
"is_active": true
}

Bir eylemi güncelle

PATCH /v1/agent/:id/actions/:agentActionId

Ekli bir eylemin settings ve/veya is_active değerini güncelleyin. Her iki gövde alanı da isteğe bağlıdır.

curl -X PATCH "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "is_active": false }'

Güncellenen eylem nesnesiyle 200 OK döndürür.

Bir eylemi sil

DELETE /v1/agent/:id/actions/:agentActionId

curl -X DELETE "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/actions/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY"

204 No Content döndürür.

Ajan araçları

Araçlar bir ajana ekstra yetenekler kazandırır. Desteklenen tool_type değerleri: api_rag, appointment_booking, call_forwarding, end_call, google_calendar, outlook_calendar, etermin, resmio, hubspot_crm, agent_transfer, mcp. settings nesnesinin yapısı türe bağlıdır.

etermin ve resmio, canlı randevu/rezervasyon alma araçlarıdır: ajan müsaitlik durumunu kontrol eder ve bağlı eTermin veya resmio hesabında doğrudan rezervasyon yapar, yeniden planlar veya iptal eder. Her ikisi de önce ilgili entegrasyonun hesapta bağlanmasını gerektirir.

Araçları listele

GET /v1/agent/:id/tools

curl "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools" \
-H "x-api-key: YOUR_API_KEY"

Bir araç nesneleri dizisi döndürür.

Bir araç ekle

POST /v1/agent/:id/tools

İstek gövdesi

AlanTürZorunluAçıklama
tool_typeenumEvetYukarıdaki desteklenen araç türlerinden biri.
settingsobjectEvetTüre özgü yapılandırma.
is_activebooleanHayırVarsayılan true.

Örnek istek

curl -X POST "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tool_type": "call_forwarding",
"settings": { "name": "Transfer to human", "phone_number": "+1234567890" }
}'

Örnek yanıt201 Created

{
"_id": "60f5b1a8d1b9f7c1d0c0a6c6",
"agent_id": "60d21b4667d0d8992e610c85",
"tool_type": "call_forwarding",
"settings": { "name": "Transfer to human", "phone_number": "+1234567890" },
"is_active": true
}

Bir aracı güncelle

PATCH /v1/agent/:id/tools/:agentToolId

Ekli bir aracın settings ve/veya is_active değerini güncelleyin (her ikisi de isteğe bağlı).

curl -X PATCH "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "is_active": false }'

Güncellenen araç nesnesiyle 200 OK döndürür.

Bir aracı sil

DELETE /v1/agent/:id/tools/:agentToolId

curl -X DELETE "https://api.hanc.ai/v1/agent/60d21b4667d0d8992e610c85/tools/60f5b1a8d1b9f7c1d0c0a6c6" \
-H "x-api-key: YOUR_API_KEY"

204 No Content döndürür.


Bilgi Tabanı

Ajanlarınızın bir çağrı sırasında arayabileceği belgeleri yükleyin ve her bilgi tabanını hangi ajanların kullandığını kontrol edin. Dosya yüklemeleri multipart/form-data kullanır.

Bilgi tabanlarını listele

GET /v1/knowledge-base/list

Sorgu parametreleri — isteğe bağlı customer_id, workspace_id.

curl "https://api.hanc.ai/v1/knowledge-base/list" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

[
{
"_id": "60d21b4667d0d8992e610c85",
"knowledge_base_name": "Company Policies",
"knowledge_base_description": "Refund, shipping and warranty policies.",
"files": [
{ "_id": "60d21b4667d0d8992e610c90", "file_name": "policies.pdf", "file_size": 2048000, "uploaded_at": "2026-05-24T07:34:23.980Z" }
],
"agent_names": ["Sales Agent", "Support Bot"]
}
]

Bir bilgi tabanı oluştur

POST /v1/knowledge-base

İlk dosyasıyla birlikte bir bilgi tabanı oluşturun. Bu bir multipart/form-data isteğidir — yalnızca gövdeli bir "oluştur" yoktur.

Sorgu parametreleri — isteğe bağlı customer_id, workspace_id.

Form alanları

AlanTürZorunluAçıklama
filefileEvetİlk belge (örn. bir PDF).
namestringEvetBilgi tabanı adı (1–100 karakter).
descriptionstringEvetAçıklama (1–300 karakter).
folderstringHayırKlasör/kategori etiketi (0–50 karakter).

Örnek istek

curl -X POST "https://api.hanc.ai/v1/knowledge-base" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@./policies.pdf" \
-F "name=Company Policies" \
-F "description=Refund, shipping and warranty policies." \
-F "folder=Sales"

Örnek yanıt200 OK (oluşturulan bilgi tabanı, bir liste öğesiyle aynı yapıda).

Tek bir dosya ekle

POST /v1/knowledge-base/:id/file

Mevcut bir bilgi tabanına bir dosya ekleyin. Multipart alan adı: file.

curl -X POST "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/file" \
-H "x-api-key: YOUR_API_KEY" \
-F "file=@./addendum.pdf"

Güncellenen bilgi tabanıyla 200 OK döndürür.

Birden fazla dosya ekle

POST /v1/knowledge-base/:id/files

Aynı anda birkaç dosya ekleyin. Multipart alan adı: files (her dosya için tekrarlayın). İsteğe bağlı customer_id, workspace_id sorgu parametreleri.

curl -X POST "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/files" \
-H "x-api-key: YOUR_API_KEY" \
-F "files=@./doc1.pdf" \
-F "files=@./doc2.pdf"

Güncellenen bilgi tabanıyla 200 OK döndürür.

Dosya(ları) sil

DELETE /v1/knowledge-base/:id/file

Kimliğe göre bir veya daha fazla dosyayı kaldırın. Tekil yola rağmen, gövde bir dizi alır.

İstek gövdesi

AlanTürZorunluAçıklama
file_idsstring[]EvetSilinecek dosya kimliklerinin boş olmayan dizisi.
curl -X DELETE "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/file" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "file_ids": ["60c72b2f9b1e8b001c8e4d3a", "60c72b2f9b1e8b001c8e4d3b"] }'

200 OK döndürür.

Ajan ata

PUT /v1/knowledge-base/:id/agents

Bu bilgi tabanını kullanan ajanların tam listesini ayarlayın (değiştirin).

İstek gövdesi

AlanTürZorunluAçıklama
agent_idsstring[]EvetBu bilgi tabanını kullanması gereken ajan kimlikleri.
curl -X PUT "https://api.hanc.ai/v1/knowledge-base/60d21b4667d0d8992e610c85/agents" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_ids": ["60d21b4667d0d8992e610c85"] }'

200 OK döndürür.


Telefon Numaraları

Numaralarınızı listeleyin, satın alınabilecek numaraları bulun, birini satın alın, bağlı bir Twilio hesabından numaraları içe aktarın veya bir numarayı bir SIP trunk'a bağlayın.

Kontrol panelinde numara satın alma

Kontrol panelinde numara satın alma, bu uç noktaların sunduğunun ötesine geçer. Anında, evrak gerektirmeyen numaralar Avusturya, Almanya, İsviçre, ABD ve Kanada'da mevcuttur; diğer her ülke, kendi düzenleyici belgelerinizi gönderdiğiniz (ve daha sonra devam etmek için taslak olarak kaydedebileceğiniz) bir rehberli self-servis akış kullanır. Satın alma ekranı yerel, mobil, ulusal ve ücretsiz türleri sunar — ayrıca gelişmiş numaralar (+€2/ay) ve WhatsApp arama numaraları. BYO SIP satıcıdan bağımsızdır (sipgate, Placetel, TENIOS, easybell, Zadarma, Telnyx, özel trunk'lar — yalnızca Twilio içe aktarma değil). Tüm akış için Telefon Numaraları bölümüne bakın.

Telefon numaralarını listele

GET /v1/phone-number/list

Sorgu parametreleri — hepsi isteğe bağlı: inbound_agent_id, outbound_agent_id, customer_id, workspace_id (ve varsayılan olarak size ayarlı user_id).

curl "https://api.hanc.ai/v1/phone-number/list" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

[
{
"_id": "60d21b4667d0d8992e610c85",
"phone_number": "+1234567890",
"formatted_number": "+1 (234) 567-8900",
"country": "US",
"provider": "twilio",
"status": "active",
"inbound_agent_id": "64bfb7b3f3d9ab3f1e2c109c",
"inbound_agent_name": "Receptionist"
}
]

Mevcut numaralar

GET /v1/phone-number/available

Bir ülke için satın alınabilecek numaraları listeleyin.

Sorgu parametreleri

AdTürZorunluAçıklama
country_codestringHayırISO ülke kodu (varsayılan US), örn. DE, AT, CH.
area_codestringHayırSayısal alan kodu filtresi.
curl -G "https://api.hanc.ai/v1/phone-number/available" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "country_code=US" \
--data-urlencode "area_code=415"

Örnek yanıt200 OK

[
{ "phone_number": "+14155550100", "formatted_number": "+1 (415) 555-0100", "country": "US", "area_code": "415", "setup_fee": 2, "subscription": 2, "currency": "EUR" }
]

Numara satın al

POST /v1/phone-number/buy

Belirli bir numarayı satın alın. İsteğe bağlı customer_id, workspace_id sorgu parametreleri.

İstek gövdesi

AlanTürZorunluAçıklama
phone_numberstringEvetSatın alınacak numara (E.164).
country_codestringEvetNumaranın ülkesi (örn. US).
curl -X POST "https://api.hanc.ai/v1/phone-number/buy" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "phone_number": "+14155550100", "country_code": "US" }'

Örnek yanıt200 OK

{
"message": "Phone number purchased successfully!",
"phone_number": { "_id": "507f1f77bcf86cd799439011", "phone_number": "+14155550100", "country": "US", "provider": "twilio", "status": "active" }
}

Twilio'dan içe aktar

POST /v1/phone-number/import-twilio

Bağlı bir Twilio hesabından numaraları içe aktarın. İsteğe bağlı customer_id, workspace_id sorgu parametreleri.

İstek gövdesi

AlanTürZorunluAçıklama
sidstringEvetTwilio Account SID (AC…).
curl -X POST "https://api.hanc.ai/v1/phone-number/import-twilio" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }'

Örnek yanıt200 OK (içe aktarılan telefon numarası kaydı).

SIP'e bağla

PATCH /v1/phone-number/connect-to-sip

Mevcut bir numarayı bir SIP trunk'a bağlayın.

İstek gövdesi

AlanTürZorunluAçıklama
phone_numberstringEvetBağlanacak numara (E.164).
curl -X PATCH "https://api.hanc.ai/v1/phone-number/connect-to-sip" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "phone_number": "+1234567890" }'

200 OK döndürür (boş gövde).


Sesler

Sesleri listele

GET /v1/voice/list

Mevcut sesleri listeleyin. Dile veya sağlayıcıya göre filtreleyin ve bir müşterinin özel klonlarını dahil edin.

Sorgu parametreleri

AdTürZorunluAçıklama
languagestringHayırDile göre filtreleyin, örn. ?language=de.
providerstringHayır11-Labs, openai, qwen veya azure.
customer_idstringHayırBu müşterinin özel ses klonlarını da dahil edin.
curl -G "https://api.hanc.ai/v1/voice/list" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "language=de"

Örnek yanıt200 OK

[
{
"_id": "60d21b4667d0d8992e610c85",
"voice_id": "voice_12345",
"name": "Emma",
"gender": "female",
"accent": "British",
"languages": ["english", "spanish"],
"provider": "11-Labs",
"sample_url": "https://example.com/sample.mp3"
}
]

Abonelik

Abonelik ayrıntıları

GET /v1/subscription

Kredi bakiyeleri ve yükleme ayarları dahil mevcut aboneliğinizi döndürün.

curl "https://api.hanc.ai/v1/subscription" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

{
"_id": "507f191e810c19729de860ea",
"payment_plan_id": "507f191e810c19729de860ec",
"currency": "EUR",
"package_credits": 1000,
"package_credits_used": 100,
"auto_top_up_enabled": false,
"top_up_amount": 50,
"extra_credits_payed": 1000,
"extra_credits_used": 100,
"billing_cycle": "monthly",
"next_credit_reset": "2026-06-15T03:00:00.000Z",
"is_cancelled": false
}

Bir abonelik kaydı yoksa 404 döndürür.

Otomatik yüklemeyi yapılandır

PATCH /v1/subscription/auto-top-up

Otomatik kredi yüklemesini etkinleştirin veya devre dışı bırakın.

İstek gövdesi

AlanTürZorunluAçıklama
enabledbooleanEvetOtomatik yüklemeyi açın veya kapatın.
amountnumberHayırYüklenecek tutar (20–1000). Etkinleştirirken ayarlayın.
curl -X PATCH "https://api.hanc.ai/v1/subscription/auto-top-up" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": true, "amount": 50 }'

Güncellenen abonelikle 200 OK döndürür.

Yükleme tutarını ayarla

PATCH /v1/subscription/top-up-amount

Yapılandırılmış yükleme tutarını güncelleyin.

İstek gövdesi

AlanTürZorunluAçıklama
top_up_amountnumberEvetYeni tutar (1–100).
curl -X PATCH "https://api.hanc.ai/v1/subscription/top-up-amount" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "top_up_amount": 10 }'

Güncellenen abonelikle 200 OK döndürür.


Müşteriler

Ajansınızın altındaki müşterileri yönetin. Bu uç noktalar, hesabınızın bir ajansa ait olmasını gerektirir.

Müşterileri listele

GET /v1/customer/list

curl "https://api.hanc.ai/v1/customer/list" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

[
{
"_id": "60d21b4667d0d8992e610c85",
"email": "customer@example.com",
"name": "John Doe",
"account_status": "active",
"agents_count": 3
}
]

Müşteri ayrıntıları

GET /v1/customer/:id

curl "https://api.hanc.ai/v1/customer/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"

Müşteri nesnesini döndürür veya bulunamazsa 404.

Bir müşteri oluştur

POST /v1/customer

İstek gövdesi

AlanTürZorunluAçıklama
emailstringEvetMüşteri giriş e-postası.
initial_passwordstringEvetİlk şifre (8–128 karakter).
namestringEvetHesap/şirket adı.
user_full_namestringEvetMüşteri kullanıcısının tam adı.
visibilityobjectHayırBölüm başına görünürlük bayrakları.
opt_out_promotionsbooleanHayırMüşteriyi promosyon mesajlaşmasından çıkarın.
curl -X POST "https://api.hanc.ai/v1/customer" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "customer@example.com",
"initial_password": "Password123!",
"name": "Acme Co.",
"user_full_name": "John Doe"
}'

Yeni müşteriyle 201 Created döndürür. E-posta zaten mevcutsa veya hesabınız bir ajansın parçası değilse 400 döndürür.

Bir müşteriyi güncelle

PATCH /v1/customer/:id

İstek gövdesi — hepsi isteğe bağlı: name, email, phone, address.

curl -X PATCH "https://api.hanc.ai/v1/customer/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Acme Corporation", "phone": "+1234567890" }'

Güncellenen müşteriyle 200 OK döndürür.

Bir müşteriyi sil

DELETE /v1/customer/:id

curl -X DELETE "https://api.hanc.ai/v1/customer/60d21b4667d0d8992e610c85" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt

{ "message": "Customer deleted successfully" }

Çalışma Alanları

Ajanları, numaraları ve bilgi tabanlarını çalışma alanlarında gruplayın ve üyelerini yönetin.

Çalışma alanlarını listele

GET /v1/workspaces/list

İsteğe bağlı customer_id sorgu parametresi.

curl "https://api.hanc.ai/v1/workspaces/list" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt200 OK

[
{
"_id": "64b1f2d2f3d92c5b8c5e1e22",
"name": "Workspace A",
"description": "For the A team.",
"owner_user_id": "64b1f2d2f3d92c5b8c5e1e10",
"members": [
{ "user_id": "64b1f2d2f3d92c5b8c5e1e11", "full_name": "John Doe", "email": "john.doe@example.com" }
]
}
]

Bir çalışma alanı oluştur

POST /v1/workspaces

İstek gövdesi

AlanTürZorunluAçıklama
namestringEvetÇalışma alanı adı (2–100 karakter).
descriptionstringHayırAçıklama (0–500 karakter).
curl -X POST "https://api.hanc.ai/v1/workspaces" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Development Team", "description": "For the dev team." }'

Çalışma alanıyla 201 Created döndürür.

Çalışma alanı ayrıntıları

GET /v1/workspaces/:id

curl "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22" \
-H "x-api-key: YOUR_API_KEY"

Çalışma alanı nesnesini döndürür.

Bir çalışma alanını güncelle

PATCH /v1/workspaces/:id

İstek gövdesiname (2–100) ve/veya description (0–500).

curl -X PATCH "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Renamed Workspace" }'

Güncellenen çalışma alanıyla 200 OK döndürür.

Bir çalışma alanını sil

DELETE /v1/workspaces/:id

curl -X DELETE "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22" \
-H "x-api-key: YOUR_API_KEY"

Örnek yanıt

{ "message": "Workspace deleted successfully" }

Bir üye davet et

POST /v1/workspaces/:workspace_id/invite-member

İstek gövdesi

AlanTürZorunluAçıklama
emailstringEvetDavet edilecek kullanıcının e-postası.
curl -X POST "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22/invite-member" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "email": "teammate@example.com" }'

Çalışma alanıyla 201 Created döndürür (yeni üye members içinde görünür).

Bir üyeyi kaldır

DELETE /v1/workspaces/:workspace_id/remove-member

İstek gövdesi

AlanTürZorunluAçıklama
emailstringEvetKaldırılacak üyenin e-postası.
curl -X DELETE "https://api.hanc.ai/v1/workspaces/64b1f2d2f3d92c5b8c5e1e22/remove-member" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "email": "teammate@example.com" }'

Güncellenen çalışma alanıyla 200 OK döndürür.


API üzerinden mevcut olmayanlar

Bazı işlemler yalnızca kontrol paneli aracılığıyla kullanılabilir:

ÖzellikNeden
API anahtarı yönetimiGüvenlik — anahtarlar başka anahtarlar oluşturamaz
Telefon numarası kurulumuEtkileşimli kurulum gerektirir
Google Calendar entegrasyonuEtkileşimli yetkilendirme gerektirir
Faturalama ve ödemelerKontrol paneli aracılığıyla yönetilir

Yardıma mı ihtiyacınız var?

API ile ilgili sorularınız için destek ekibimizle support@hanc.ai adresinden iletişime geçin.