API Referansı
Asyntai REST API ile özel entegrasyonlar oluşturun
Ücretli Plan Gerekli: API erişimi Starter, Standard ve Pro planlarda kullanılabilir. Fiyatlandırmayı görün
Genel Bakış
The Asyntai API allows you to integrate AI-powered customer support into any application. Send messages and receive intelligent responses grounded in your website content and knowledge base.
Kimlik Doğrulama
Tüm API istekleri, API anahtarınızı kullanarak kimlik doğrulama gerektirir. API anahtarınızı API Ayarları sayfasından alabilirsiniz.
API anahtarınızı şu yöntemlerden birini kullanarak isteklere dahil edin:
- Yetkilendirme başlığı (önerilen):
Authorization: Bearer YOUR_API_KEY - X-API-Key başlığı:
X-API-Key: YOUR_API_KEY
API anahtarınızı gizli tutun. Anahtarınıza sahip olan herkes API aracılığıyla hesabınıza erişebilir. İstemci tarafı kodunda asla ifşa etmeyin.
Temel URL
https://asyntai.com/api/v1/
Endpointler
POST /chat/
Bir mesaj gönderin ve yapay zeka tarafından oluşturulan bir yanıt alın.
İstek Gövdesi
{
"message": "What are your business hours?",
"session_id": "user_123", // optional
"website_id": 1 // optional
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
message |
string | Evet | Yapay zekaya gönderilecek kullanıcı mesajı |
session_id |
string | Hayır | Görüşme için benzersiz tanımlayıcı. Görüşme geçmişini korumak için aynı session_id'yi kullanın. |
website_id |
integer | Hayır | Belirli web sitesi ID'si. Sağlanmazsa, birincil web siteniz kullanılır. |
Yanıt
{
"success": true,
"response": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"session_id": "user_123"
}
Örnek (cURL)
curl -X POST https://asyntai.com/api/v1/chat/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "What are your business hours?", "session_id": "user_123"}'
Örnek (Python)
import requests
response = requests.post(
"https://asyntai.com/api/v1/chat/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"message": "What are your business hours?",
"session_id": "user_123"
}
)
data = response.json()
print(data["response"])
Örnek (JavaScript)
const response = await fetch("https://asyntai.com/api/v1/chat/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "What are your business hours?",
session_id: "user_123"
})
});
const data = await response.json();
console.log(data.response);
GET /websites/
Hesabınızla ilişkili tüm web sitelerini listeleyin.
Yanıt
{
"success": true,
"websites": [
{
"id": 1,
"name": "My Website",
"domain": "example.com",
"is_primary": true
}
]
}
Örnek (cURL)
curl https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY"
POST /websites/
Create a new AI agent. This does the same thing as adding a website in your dashboard: it makes the agent, reads your site, and writes the first draft of the AI instructions.
Use this to set up customers from your own software. You get back the widget ID and the code to put on the website.
İstek Gövdesi
| Alan | Tür | Açıklama |
|---|---|---|
domain |
string | Required. The website address, for example example.com |
name |
string | Optional. A display name for the agent. Useful when one website has several agents. |
crawl |
boolean | Optional, true by default. Set it to false to create the agent without reading the website. Nothing is crawled and no instructions are written. |
force |
boolean | Optional, false by default. Set it to true to add a website you already have. The copy is stored with a number after it. |
Yanıt
{
"success": true,
"website": {
"id": 42,
"domain": "example.com",
"name": "Support agent",
"widget_id": "asyntai_ab12cd34ef56",
"is_primary": true,
"crawl_started": true,
"instructions_status": "generating",
"job_id": "8f2c1e90-..."
},
"embed_code": "<script>...</script>"
}
Örnek (cURL)
curl -X POST https://asyntai.com/api/v1/websites/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "name": "Support agent"}'
Reading a website takes a few minutes, so this call answers straight away. Check when the agent is ready with the next endpoint.
Errors
| Code | Meaning |
|---|---|
403 |
You have reached the number of websites your plan allows. The answer tells you the limit. |
409 |
Your account already has this website. Send force as true to add it again. |
GET /websites/{id}/
Get one website and see whether it is ready. Use this after you create an agent, to wait until the website has been read and the AI instructions are written.
Yanıt
{
"success": true,
"website": {
"id": 42,
"domain": "example.com",
"name": "Support agent",
"widget_id": "asyntai_ab12cd34ef56",
"is_primary": true,
"created_at": "2026-08-11T09:12:00+00:00",
"ready": true,
"instructions": {
"status": "completed",
"has_instructions": true,
"characters": 3421
},
"crawl": {
"job_id": "8f2c1e90-...",
"status": "completed",
"pages_crawled": 47,
"pages_found": 50,
"max_pages": 50,
"completed_at": "2026-08-11T09:15:31+00:00",
"error": ""
},
"knowledge_items": 47
},
"embed_code": "<script>...</script>"
}
The ready field is true when nothing is still running. A crawl that failed also counts as ready, because it has finished. Look at the crawl status to see what happened.
Örnek (cURL)
curl https://asyntai.com/api/v1/websites/42/ \
-H "Authorization: Bearer YOUR_API_KEY"
GET PATCH /websites/{id}/settings/
Read or change the chat widget settings for one website. These are the same settings you see on the Customize page: colours, the name of the assistant, the first message, lead capture, and everything else.
Reading the settings
A GET request returns every setting with its current value, plus a locked list. Locked shows the settings your plan cannot change, and which plans they need.
{
"success": true,
"settings": {
"ai_support_name": "AI Assistant",
"widget_color": "#6366f1",
"initial_message": "Hi, how can I help you?",
"hide_branding": false,
"...": "..."
},
"locked": {
"hide_branding": ["pro", "enterprise"],
"widget_style": ["pro", "enterprise"]
}
}
Changing the settings
A PATCH request changes only the settings you send. Everything you leave out stays as it is.
curl -X PATCH https://asyntai.com/api/v1/websites/42/settings/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ai_support_name": "Ava", "widget_color": "#0f172a", "use_emoji": true}'
{
"success": true,
"updated": ["ai_support_name", "use_emoji", "widget_color"],
"settings": { "...": "..." },
"locked": { "...": "..." }
}
Plans
Each setting needs its own plan, the same as in the dashboard. For example, hiding the Asyntai branding needs the Pro plan, and voice input needs Standard.
| Plan needed | Ayarlar | Examples |
|---|---|---|
| Any paid plan | 25 | widget_color, ai_support_name, initial_message |
| Starter ve üzeri | 22 | profile_picture, conversation_starters_enabled |
| Standard ve üzeri | 25 | speech_to_text_enabled, image_vision_enabled, escalation_enabled |
| Pro | 6 | hide_branding, widget_style |
If you send a setting your plan does not allow, the whole request is refused with code 403 and nothing is saved. The same happens if any value is wrong, for example a colour that is not a hex code. Your settings never end up half changed.
GET PUT /websites/{id}/instructions/
Read or replace the AI instructions for one website. These are the rules that tell the assistant who it is, what it may say, and what it must not say. They are the same instructions you edit in the dashboard.
Reading
{
"success": true,
"instructions": "You are the support agent for Acme Tools...",
"characters": 1979,
"version": 7,
"mode": "instructions",
"ask_questions": true,
"generation_status": "completed",
"being_edited_by": null
}
Replacing
A PUT request replaces the whole text, the same as saving in the dashboard. There is no append mode. To add a paragraph, read the instructions, add your text, then write it back.
curl -X PUT https://asyntai.com/api/v1/websites/42/instructions/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"instructions": "You are the support agent for Acme Tools...", "version": 7}'
İstek Gövdesi
| Alan | Tür | Açıklama |
|---|---|---|
instructions |
string | Required. The complete new text. It replaces everything that was there. |
version |
number | Optional but recommended. The version you read. If somebody changed the instructions since then, your write is refused instead of overwriting their work. |
mode |
string | Optional. Either instructions or general. |
ask_questions |
boolean | Optional. Whether the assistant asks a follow-up question at the end of its answers. |
force |
boolean | Optional, false by default. Needed only when your new text is less than half the length of the current text. |
How your instructions are protected
Instructions can take hours to write, so a write can be refused to protect them:
| Code | Meaning |
|---|---|
400 |
Your new text is less than half the length of the current text. This catches a script that sends empty or cut-off text over instructions somebody spent hours on. Send force as true if you meant it. |
409 |
The instructions changed after you read them. Read them again, apply your change, then write. |
423 |
Somebody is editing the instructions in the dashboard right now. The answer tells you who. Try again in a couple of minutes. |
Every change also saves a copy of the previous text, so an earlier version can always be restored from the dashboard.
GET /conversations/
Belirli bir oturum için görüşme geçmişini getirin.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
session_id |
string | Evet | Geçmişi getirilecek oturum kimliği |
limit |
integer | Hayır | Döndürülecek maksimum mesaj sayısı (varsayılan: 50, maksimum: 100) |
Yanıt
{
"success": true,
"session_id": "user_123",
"messages": [
{
"role": "user",
"content": "What are your business hours?",
"timestamp": "2024-01-15T10:30:00Z"
},
{
"role": "assistant",
"content": "Our business hours are Monday-Friday, 9 AM to 5 PM EST.",
"timestamp": "2024-01-15T10:30:01Z",
"sender_type": "ai",
"agent_name": null,
"response_time_ms": 1840.5
}
]
}
Bir soru ve yanıtı tek bir kayıtta saklanır, bu yüzden ikisi de aynı timestamp değerini taşır. Yanıt hızını ölçmek için birini diğerinden çıkarmayın, çünkü sonuç her zaman sıfır olur. Yanıtın gerçek süresini milisaniye cinsinden veren response_time_ms alanını kullanın.
Sohbet botu yanıtladığında sender_type değeri ai, temsilcilerinizden biri sohbeti devraldığında human olur. agent_name alanı o temsilcinin görünen adını tutar.
Örnek (cURL)
curl "https://asyntai.com/api/v1/conversations/?session_id=user_123&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /sessions/
Son sohbet oturumlarınızı listeleyin. Oturum kimliklerini keşfetmek için bunu kullanın, ardından tam mesaj geçmişini almak için /conversations/ endpointine iletin.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
limit |
integer | Hayır | Döndürülecek son oturum sayısı (varsayılan: 20, maksimum: 100) |
website_id |
string | Hayır | Oturumları belirli bir web sitesi kimliğine göre filtreleyin |
source |
string | Hayır | Oturum kaynağına göre filtreleyin: widget, api, whatsapp, instagram, messenger, gorgias, freshchat, zapier |
Yanıt
{
"success": true,
"sessions": [
{
"session_id": "session_abc123def",
"source": "widget",
"message_count": 5,
"first_message": "What are your business hours?",
"first_message_at": "2024-01-15T10:30:00Z",
"last_message_at": "2024-01-15T10:35:00Z",
"first_response_time_ms": 1840.5,
"first_human_response_at": null,
"started_at": "2024-01-15T10:29:58Z",
"ended_at": "2024-01-15T10:41:12Z",
"taken_over_at": null,
"website_domain": "example.com"
}
]
}
Raporlama için zaman damgası alanları
| Alan | Açıklama |
|---|---|
started_at |
Ziyaretçinin sohbeti açtığı an. Yalnızca bileşen oturumları için vardır, çünkü API üzerinden oluşturulan oturumlar hiçbir zaman bileşen açmaz. |
first_message_at |
Görüşmenin ilk mesajının kaydedildiği an. |
first_response_time_ms |
İlk yanıtın ne kadar sürdüğü, milisaniye cinsinden. İlk yanıt süresi için bunu kullanın. |
first_human_response_at |
Temsilcilerinizden birinin ilk yanıtı gönderdiği an. Sohbet botu görüşmenin tamamını yürüttüğünde değer null olur. |
taken_over_at |
Bir temsilcinin sohbeti sohbet botundan devraldığı an. |
last_message_at |
Görüşmenin son mesajının kaydedildiği an. |
ended_at |
Ziyaretçinin sohbetten ayrıldığı an. Sohbetin çözüldü veya kapandı durumu yoktur, çünkü ziyaretçi her zaman geri dönüp başka bir soru sorabilir. |
Tüm zaman damgaları UTC'dir ve ISO 8601 biçimini kullanır. Saat dilimini değiştiremezsiniz. Değerleri kendi raporlama aracınızda dönüştürün.
Örnek (cURL)
curl "https://asyntai.com/api/v1/sessions/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
GET /leads/
Toplanan müşteri adaylarını alın — sohbet görüşmeleri sırasında ziyaretçiler tarafından gönderilen e-posta adresleri ve telefon numaraları.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
limit |
integer | Hayır | Döndürülecek müşteri adayı sayısı (varsayılan: 50, maks: 100) |
website_id |
string | Hayır | Müşteri adaylarını belirli bir web sitesi kimliğine göre filtreleyin |
Yanıt
{
"success": true,
"leads": [
{
"session_id": "session_abc123def",
"email": "[email protected]",
"phone": "+1234567890",
"page_url": "https://example.com/pricing",
"started_at": "2024-01-15T10:30:00Z"
}
]
}
| Alan | Tür | Açıklama |
|---|---|---|
session_id |
string | Sohbet oturumu kimliği. Tam sohbet geçmişini görmek için bunu /conversations/ adresine iletin. |
email |
dize veya null | Ziyaretçi tarafından sağlanan e-posta adresi, toplanmadıysa null |
phone |
dize veya null | Ziyaretçi tarafından sağlanan telefon numarası, toplanmadıysa null |
page_url |
dize veya null | Ziyaretçinin sohbet ettiği sayfa URL'si |
started_at |
string | Sohbet oturumunun başladığı zamanın ISO 8601 zaman damgası |
Örnek (cURL)
curl "https://asyntai.com/api/v1/leads/?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Örnek (Python)
import requests
response = requests.get(
"https://asyntai.com/api/v1/leads/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"limit": 20}
)
leads = response.json()["leads"]
for lead in leads:
print(f"{lead['email'] or ''} | {lead['phone'] or ''}")
GET /account/
Hesap bilgilerinizi ve kullanım istatistiklerinizi alın.
Yanıt
{
"success": true,
"account": {
"email": "[email protected]",
"plan": "starter",
"messages_used": 150,
"messages_limit": 2500
}
}
Örnek (cURL)
curl https://asyntai.com/api/v1/account/ \
-H "Authorization: Bearer YOUR_API_KEY"
Birden fazla web sitesi mi? Bilgi tabanı endpointleri varsayılan olarak birincil web sitenizi kullanır. Birden fazla web siteniz varsa website_id belirli birini hedeflemek için. Web sitesi kimliklerinizi şunu kullanarak bulabilirsiniz: GET /websites/.
Günlük yükleme limitleri: Bilgi tabanı yüklemeleri (metin, URL, elektronik tablo) planınıza bağlı günlük karakter limitine tabidir. Bu, gün başına tüm bilgi tabanı endpointlerinde yüklenen toplam içerik için geçerlidir.
| Plan | Karakter/gün |
|---|---|
| Starter | 300.000 |
| Standard | 1.500.000 |
| Pro | 6.000.000 |
GET /knowledge/
Bilgi tabanı kayıtlarınızı listeleyin. Bunlar, AI chatbot'unuzun soruları yanıtlamak için kullandığı içerik kaynaklarıdır.
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
limit |
integer | Hayır | Döndürülecek kayıt sayısı (varsayılan: 50, maksimum: 100) |
website_id |
string | Hayır | Web sitesi kimliğine göre filtreleyin (varsayılan olarak birincil web sitenizdir) |
Yanıt
{
"success": true,
"entries": [
{
"id": "abc-123-def",
"type": "text",
"title": "Business Hours",
"description": "Manual text content (150 words)",
"created_at": "2024-01-15T10:30:00Z"
},
{
"id": "ghi-456-jkl",
"type": "url",
"title": "About Us - Example",
"description": "Content from https://example.com/about",
"created_at": "2024-01-14T09:00:00Z"
}
]
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/knowledge/?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /knowledge/text/
Bilgi tabanınıza özel metin içeriği ekleyin. AI, ziyaretçi sorularını yanıtlamak için bunu kullanacaktır.
İstek Gövdesi
{
"title": "Return Policy",
"content": "We offer a 30-day return policy on all items. Items must be unused and in original packaging. Refunds are processed within 5-7 business days.",
"website_id": "123"
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
title |
string | Evet | Bu bilgi kaydı için bir başlık |
content |
string | Evet | Metin içeriği (minimum 10 karakter) |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"id": "abc-123-def",
"title": "Return Policy",
"chunks_created": 1
}
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/text/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Return Policy", "content": "We offer a 30-day return policy..."}'
POST /knowledge/url/
Bilgi tabanınıza bir web sayfası ekleyin. İçerik otomatik olarak getirilecek ve çıkarılacaktır.
İstek Gövdesi
{
"url": "https://example.com/faq",
"website_id": "123"
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
url |
string | Evet | İçeriğin getirileceği URL |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"id": "abc-123-def",
"title": "FAQ - Example",
"url": "https://example.com/faq",
"chunks_created": 5
}
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/url/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/faq"}'
POST /knowledge/spreadsheet/
Bilgi tabanınıza bir CSV veya Excel (.xlsx) elektronik tablosu yükleyin. Her satır ayrı bir bilgi kaydı olur; ürün katalogları, SSS listeleri, fiyat tabloları ve dizinler için idealdir.
İstek
multipart/form-data (dosya yükleme) olarak gönderin, JSON değil.
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
file |
dosya | Evet | Bir .csv veya .xlsx dosyası. İlk satır sütun başlıkları olmalıdır. Yükleme başına maksimum satır: Starter 500, Standard 2.000, Pro 10.000. Fazla satırlar kesilir. |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"id": "abc-123-def",
"title": "products.csv",
"rows_processed": 15,
"chunks_created": 15
}
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/knowledge/spreadsheet/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "[email protected]"
GET /knowledge/{id}/
Bilgi tabanındaki bir kaydı, onun için saklanan metinle birlikte okuyun. id değeri GET /knowledge/ yanıtından gelir.
İçerik, sizin eklediğiniz kayıtlar için döndürülür: metin, dosyalar, elektronik tablolar, tek URL'ler ve videolar. Web sitesi taraması listede görünür, ancak sayfaları döndürülmez, çünkü kaynak kendi herkese açık web sitenizdir. Bu durumda content değeri null olur ve reason alanı nedenini açıklar.
Yanıt
{
"success": true,
"id": "abc-123-def",
"type": "text",
"title": "Business Hours",
"description": "Manual text content (150 words)",
"created_at": "2024-01-15T10:30:00Z",
"chunks_count": 3,
"content": "We are open Monday to Friday, 9am to 5pm...",
"content_available": true,
"char_count": 43
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
DELETE /knowledge/{id}/
Bir bilgi tabanı kaydını silin. id değeri GET /knowledge/ yanıtından bulunabilir.
Yanıt
{
"success": true,
"message": "Knowledge base entry deleted"
}
Örnek (cURL)
curl -X DELETE "https://asyntai.com/api/v1/knowledge/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
İpucu: Webhook'ları ayrıca şuradan da yönetebilirsiniz: API Ayarları herhangi bir kod yazmadan sayfa.
GET /webhooks/
Kayıtlı webhook'larınızı listeleyin.
Yanıt
{
"success": true,
"webhooks": [
{
"id": "abc-123-def",
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"is_active": true,
"created_at": "2024-01-15T10:30:00Z"
}
]
}
Örnek (cURL)
curl "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY"
POST /webhooks/
Gerçek zamanlı olay bildirimleri almak için yeni bir webhook kaydedin.
Mevcut Olaylar
| Olay | Açıklama |
|---|---|
message.received |
Bir ziyaretçi mesaj gönderdi ve yanıt aldı |
conversation.started |
Yeni bir sohbet oturumu başlatıldı |
escalation.requested |
AI, bir insan temsilciye yönlendirme tetikledi |
takeover.started |
Bir insan temsilci sohbet oturumunu devraldı |
İstek Gövdesi
{
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"website_id": "123"
}
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
url |
string | Evet | Webhook POST isteklerini alacak HTTPS URL'si |
events |
dizi | Evet | Abone olunacak olayların listesi (yukarıdaki tabloya bakın) |
website_id |
string | Hayır | Hedef web sitesi (varsayılan olarak birincil web siteniz) |
Yanıt
{
"success": true,
"webhook": {
"id": "abc-123-def",
"url": "https://example.com/webhook",
"events": ["message.received", "escalation.requested"],
"secret": "whsec_abc123...",
"created_at": "2024-01-15T10:30:00Z"
}
}
Webhook'ları doğrulama: Her webhook bir secret (yalnızca oluşturulurken gösterilir). URL'nize yapılan her POST şunu içerir: X-Webhook-Signature başlığı — gizli anahtarınızla imzalanmış istek gövdesinin HMAC-SHA256 değeri.
Örnek (cURL)
curl -X POST "https://asyntai.com/api/v1/webhooks/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/webhook", "events": ["message.received"]}'
DELETE /webhooks/{id}/
Bir webhook'u silin. id değeri GET /webhooks/ yanıtından bulunabilir.
Yanıt
{
"success": true,
"message": "Webhook deleted"
}
Örnek (cURL)
curl -X DELETE "https://asyntai.com/api/v1/webhooks/abc-123-def/" \
-H "Authorization: Bearer YOUR_API_KEY"
Hata Yanıtları
Tüm hata yanıtları şu formatı izler:
{
"success": false,
"error": "Error message describing what went wrong"
}
| Durum Kodu | Açıklama |
|---|---|
400 |
Hatalı İstek - Geçersiz parametreler veya eksik zorunlu alanlar |
401 |
Yetkisiz - Geçersiz veya eksik API anahtarı |
429 |
Çok Fazla İstek - Planınız için mesaj limitine ulaşıldı |
503 |
Hizmet Kullanılamıyor - AI hizmeti geçici olarak kullanılamıyor |
Hız Sınırları
API kullanımı abonelik planınızla sınırlıdır:
- Free: 100 mesaj/ay
- Starter (39$/ay): 2.500 mesaj/ay
- Standard (139$/ay): 15.000 mesaj/ay
- Pro (449$/ay): 50.000 mesaj/ay
Yardıma mı İhtiyacınız Var?
Herhangi bir sorunuz varsa veya sorunla karşılaşırsanız, [email protected] adresinden bizimle iletişime geçin.