Geliştiriciler
API: temel bilgiler
VentionDesk API'si, arayüzün kullandığı API'nin ta kendisidir. Otomasyonlar için — Claude, kendi script'lerin, CI — bir API anahtarıyla oturum açarsın. Tüm adresler https://api.ventiondesk.com ile başlar; tüm gövdeler ve yanıtlar UTF-8 kodlu JSON'dur.
API anahtarıyla oturum açma
İşletme sahibi bir anahtarı Ayarlar › API anahtarları › “Yeni anahtar” altında oluşturur. Anahtar tam olarak bir kez düz metin olarak görünür.
Her istek onu bearer token olarak taşır:
curl https://api.ventiondesk.com/v1/tasks?status=todo \
-H "Authorization: Bearer vd_live_…"
Değiş tokuş için ayrı bir endpoint yoktur: VentionDesk anahtarı önekinden tanır, her istekte kontrol eder (iptal edildi mi? süresi doldu mu?) ve ardından anahtarın hesabı için bir oturumla çalışır. Bu yüzden anahtar için de bir kişi için geçerli olan veritabanı kuralları geçerlidir — yalnızca kapsamının izin verdiğini görür.
| Önek | Tür | Ne için |
|---|---|---|
vd_live_ | ajan | görev çekme ve geri bildirim verme, projeleri okuma, not yazma, MCP |
vd_intake_ | giriş | yalnızca talep gönderme (POST /v1/intake/tickets), bkz. Talep girişi |
vd_pub_ | herkese açık proje anahtarı | oturum açma anahtarı değildir: formlarda ve web uygulamalarında durur, yalnızca bir projeye bildirim gönderebilir |
Anahtar yerine OAuth ile bağlanmış bir yapay zekâ uygulamasının oturumu da bearer token olarak gelebilir. Bu, kişinin onay sırasında seçtiği izinler ve projelerle bir ajan anahtarı gibi sayılır — asla kişinin kendi izinleriyle değil — ve bağlantı kesildiğinde hemen sona erer.
Bir ajan anahtarı, Ajan rolüne sahip ayrı bir hesaptır. API referansında bir kapsam gösteren endpoint'ler ile GET /v1/me ve ajan çalıştırmaları için tasarlanmıştır. “işletme sahibi” veya “işletme sahibi ve çalışanlar” gerektiren endpoint'lere web arayüzü, oturum açmış bir kişinin oturumuyla hizmet eder; bir API anahtarına 403 ile yanıt verirler.
Kapsamlar
Bir ajan anahtarının neler yapabileceğini kapsamları (scope'lar) belirler:
| Kapsam | Anlamı | Seçilebildiği yer |
|---|---|---|
projects:read | Projeleri oku | ajan anahtarları |
tasks:read | Görevleri oku | ajan anahtarları |
tasks:write | Görev oluştur ve geri bildirim ver | ajan anahtarları |
tickets:read | Talepleri oku | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
tickets:write | Talep oluştur, dahili not ve taslak yaz | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
tickets:reply | Taleplerde müşterilere e-postayla yanıt ver | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
notes:write | Not yaz | ajan anahtarları |
deployments:read | Commit'leri, pull request'leri ve dağıtımları oku | ajan anahtarları |
agent:run | Çalıştırmaları başlat ve bitir | ajan anahtarları |
intake:write | Talepleri giriş üzerinden gönder | yalnızca giriş anahtarları |
invoices:write | Fatura taslağı oluştur ve kalemleri değiştir | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
errors:read | Projelerin hatalarını oku | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
errors:write | Hataları çözüldü olarak işaretle | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
time:read | Projelerin zaman kayıtlarını oku (ücret ve tutarlar olmadan) | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
stats:read | Raporlar için projelerin temel göstergelerini oku (para olmadan) | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
quotes:write | Teklif taslağı oluştur ve değiştir | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
roadmap:write | Yol haritası aşamalarını oluştur, değiştir ve sırala | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
ideas:write | Fikir oluştur | ajan anahtarları, yalnızca işletme açıkça etkinleştirirse |
Bir kapsam tam olarak onu karşılayan endpoint'lerde görünür — API referansı her endpoint için onu belirtir. deployments:read hiçbir endpoint'te görünmez: Yansıtılan commit'lerin, pull request'lerin ve dağıtımların veritabanı kuralları üzerinden etki eder.
Proje bağlaması
Bir anahtar tüm projelerde veya bir seçimde geçerlidir. Bağlı bir anahtar yalnızca projelerinin verilerini görür — ve bilerek projesiz hiçbir şeyi, örneğin henüz hiçbir projeye atanmamış talepleri görmez. API, projeleri dışındaki bir satıra 404 veya 403 ile yanıt verir. Bir giriş anahtarı her zaman tam olarak bir projeye bağlıdır.
Kapsamı değiştirmek yeni bir anahtar gerektirmez. Kapsamları ve projeleri işletme sahibi anahtar listesindeki “İzinler” altında değiştirir; bir sonraki istek yeni kapsamla çalışır. İptal edilmiş veya süresi dolmuş bir anahtar bir sonraki isteğinde reddedilir.
Hatalar
Her hata yanıtı aynı biçimdedir:
{ "ok": false, "error": "Diese Aufgabe gibt es nicht.", "code": "not_found" }
error insanlar için Almanca bir cümle, code programlar için sabit bir İngilizce değerdir. Yaygın yanıtlar:
| Durum | code | Anlamı |
|---|---|---|
| 400 | validation_error | sorgu veya yol parametreleri geçersiz |
| 401 | unauthorized | anahtar yok veya geçersiz bir anahtar |
| 403 | forbidden | rol, kapsam veya proje yeterli değil |
| 404 | not_found | mevcut değil — veya bu anahtar için değil |
| 409 | conflict | durum uymuyor, örneğin zaten üstlenilmiş bir görev |
| 413 | payload_too_large | gövde 1 MB'tan büyük |
| 422 | validation_error | gövde geçersiz; error itiraz edilen ilk alanı field: message olarak belirtir |
| 423 | betrieb_gesperrt | işletme askıya alınmış, örneğin ücretli bir abonelik çalışmadığı için |
| 429 | rate_limited | çok fazla istek, kısa bir süre bekle |
| 500 | internal_error | VentionDesk'te hata |
Her yanıt x-request-id başlığında bir kimlik taşır. Kendin bir tane gönderirsen (en fazla 128 karakter) o kullanılır. Bir şeyler ters giderse onu destek ekibine ver.
İstek sınırları
Dakika başına, anahtar başına veya IP adresi başına sayılır:
| Alan | Dakika başına istek |
|---|---|
tüm /v1 endpoint'leri birlikte | 300 |
POST /mcp | 60 |
| talep girişi (form, tarayıcı, sunucu) | IP başına 10 |
ödeme bağlantıları /pay/… | IP başına 20 |
Sınırın üzerinde API 429 ve rate_limited ile yanıt verir; RateLimit ve RateLimit-Policy başlıkları güncel sayıyı ve sınırı belirtir.
Listeler ve filtreler
Liste endpoint'leri sorgu parametreleriyle filtreler ve limit ile sınırlar; imleç veya ofsetli sayfalar yoktur. Örnekler:
GET /v1/tasks?projectSlug=shop&status=todo&claimable=true&limit=20— şu anda çekilebilecek görevler.GET /v1/projects?status=active— aktif projeler.
Bir endpoint'in hangi parametreleri tanıdığı ve hangi alanları döndürdüğü API referansında listelenir — VentionDesk'in isteği kontrol etmek için kullandığı aynı sözleşmeden okunur.
Bir ajanın tipik turu
GET /v1/tasks?claimable=true— ne yapılması gerekiyor?POST /v1/tasks/:id/claim— görevi atomik olarak üstlen. İki çalıştırma asla aynı görevi almaz.- Çalış; arada hayat belirtisi olarak
"state": "arbeitet"ilePOST /v1/tasks/:id/result. kontrolle,frage,master,blockiertveyaerledigtilePOST /v1/tasks/:id/result—kontrolleveerledigtileevidenceiçinde kanıtla.
Bunu kendin kurmak istemiyorsan Claude ve MCP sayfasını kullan.