Güven için inşa edildiTLS şifrelemeGDPR'a hazırGoogle CloudGüvenli ödemelerGüvenliğe genel bakış
G2

G2'de 5 üzerinden 5,0 puan

G2'deki değerlendirmeleri okuyun
The page-level analytics are the best part because they show real engagement instead of just basic opens.
Verified User in Computer Software
What I like most about the product is how easy it is to use, especially when it comes to listing all my links and embedding demos in one place for leads and prospects.
Jerome K.Founder
Responsiveness, configurability and development velocity.
Suman K.Co-Founder & CEO

API Referansı

HummingDeck, entegrasyon ortakları ve otomasyon platformları için bir REST API sunar. Uç noktalar Bearer token ile kimlik doğrular ve JSON yanıtları döndürür.

Temel URLhttps://app.hummingdeck.com/api/v1
OpenAPI Spec

Kimlik Doğrulama

Her API isteği Authorization başlığında bir Bearer token taşır. İki tür kimlik bilgisi kabul edilir ve davranışları farklıdır.

Yöntem

Bearer token

Başlık biçimi

Authorization: Bearer {access_token}

Kimlik bilgisi türleri

Çalışma alanı API token'ı

Authorization: Bearer hd_api_...

REST API erişimi Business planında talep üzerine sunulur ve incelemenin ardından çalışma alanı bazında etkinleştirilir. Ardından çalışma alanı sahipleri ve yöneticileri Çalışma alanı ayarları, Entegrasyonlar, HummingDeck API bölümünde ayrı ayrı adlandırılmış API anahtarları oluşturabilir. Her entegrasyon için yalnızca gereken izinleri seçin. Anahtar oluşturulurken bir kez gösterilir ve daha sonra geri alınamaz. Bir yıl sonra sona erer ve çalışma alanına kalıcı olarak bağlı kalır; bu nedenle bir istek çalışma alanını seçemez veya değiştiremez.

Bir çalışma alanında en fazla 20 etkin API anahtarı olabilir. Bir anahtar değiştirildiğinde yalnızca o anahtarın önceki gizli değeri hemen geçersiz olur; diğer anahtarlar çalışmaya devam eder. Sahipler ve yöneticiler tek bir anahtarı veya tüm anahtarları istedikleri zaman devre dışı bırakabilir. Bu gizli değerin iptali kalıcıdır.

Bir çalışma alanı API anahtarı yalnızca seçilen izinlerin onayladığı işlemleri çağırabilir. Webhook abonelik uç noktaları bu anahtarlar tarafından kullanılamaz.

Zapier OAuth

Authorization: Bearer {access_token}

Bir çalışma alanı Zapier entegrasyonunu bağladığında OAuth yetkilendirme akışıyla verilir. Erişim token'ları 30 gün sonra sona erer. 90 gün geçerli olan yenileme token'ını kullanarak yeniden yetkilendirmeden yeni bir erişim token'ı alın.

Webhook aboneliği oluşturabilen veya silebilen tek kimlik bilgisi budur.

İzinler

En az bir izin seçin. Yazma izinleri ilgili okuma erişimini de içerir. Anahtarı değiştirdiğinizde izinleri de değiştirebilirsiniz.

rooms:read

Odaları, sekmeleri, öğeleri, bağlantıları ve etiketleri görüntüleyin.

rooms:write

Odaları, sekmeleri, öğeleri, bağlantıları ve etiketleri oluşturup yönetin.

plan:read

Ortak eylem planı aşamalarını ve görevlerini görüntüleyin.

plan:write

Ortak eylem planı aşamalarını ve görevlerini oluşturup yönetin.

analytics:read

Etkileşim analizlerini, etkinliği ve toplanan e-postaları görüntüleyin.

crm:read

Çalışma alanındaki şirketleri ve kişileri arayın.

crm:write

Şirketleri, kişileri ve bağlantı hedef kitlelerini oluşturun veya güncelleyin.

documents:read

Belgeleri arayın ve meta verilerini görüntüleyin.

documents:write

Belge yükleyin ve odalara belge veya URL ekleyin.

Uç nokta satırlarındaki izin etiketleri çalışma alanı API anahtarları için geçerlidir. Zorunlu izinler her zaman, ek izinler ana izinle birlikte, koşullu izinler ise yalnızca istek ilgili filtreleri veya alanları kullandığında gerekir. GET /me izin gerektirmez. Zapier OAuth sabit entegrasyon erişimini kullanır.

Bir istek 401 döndürdüğünde

Anahtar bilinmiyorsa veya hatalıysa, süresi dolmuşsa, devre dışı bırakılmışsa, API erişimi kapatılmış bir çalışma alanına aitse ya da anahtarı oluşturan kişi artık çalışma alanının sahibi veya yöneticisi değilse istek 401 döndürür.

Bağlantınızı test edin

Token'ınızın geçerli olduğunu doğrulayın ve kimliği doğrulanmış kullanıcının profilini görüntüleyin.

GET/me

Geçerli kullanıcının adını, e-postasını ve ekip bilgilerini döndürür.

API anahtarı izni gerekmez

Belgeler

Belgeleri (PDF'ler, slayt destesi, teklifler ve diğer dosyalar) yükleyin, arayın ve yönetin.

POST/decks

Yeni bir belge yükleyin. file alanı (PDF, PPTX, DOCX, XLSX, HTML) ve title alanıyla birlikte multipart/form-data olarak gönderin. API üzerinden yükleme sınırı 30 MB’dir.

Zorunlu:documents:write
GET/decks

En yeniden başlayarak en fazla 20 belgeyi listeler. İsteğe bağlı title sorgu parametresiyle başlığın bir bölümünü büyük ve küçük harfe duyarlı olmadan filtreleyin.

Zorunlu:documents:read
POST/decks/{deckId}/replace

Belgeyi aynı türdeki yerel bir dosyayla değiştirir. documents:write iznine sahip bir çalışma alanı API anahtarı gerekir. Mevcut bağlantılar, başlık ve sunum modu korunur. Önizlenebilir dosyalar pending, yalnızca indirilebilir dosyalar completed döndürür. Yanıt alanları POST /decks ile aynıdır.

Zorunlu:documents:write

GET /decks Yanıt alanları

FieldTypeDescription
idstringBelge kimliği
titlestringBelge başlığı
fileTypestringBelgenin MIME türü
pageCountinteger | nullSayfa sayısı
thumbnailUrlstring | nullKüçük resim URL'si
processingStatusstringpending, processing, completed veya failed. Bir belge işlenirken odaya eklenebilir; bağlantıyı durum completed olduğunda gönderin.
processingErrorCodestring | nullİşleme başarısız olduğunda nedeni
createdAtstringISO 8601 zaman damgası

POST /decks Yanıt alanları

FieldTypeDescription
idstringBelge kimliği
titlestringBelge başlığı
fileTypestringBelgenin MIME türü
processingStatusstringpending, processing, completed veya failed. Bir belge işlenirken odaya eklenebilir; bağlantıyı durum completed olduğunda gönderin.
processingErrorCodestring | nullİşleme başarısız olduğunda nedeni

Paylaşım Bağlantıları

İzlenebilir belge bağlantıları oluşturun. Kişisel bir bağlantı, kişiyi ve şirketi aynı istekte bulabilir veya oluşturabilir.

POST/shares

Kişisel veya anonim bir bağlantı oluşturun. Kişisel bağlantılar hesap kayıtlarını otomatik olarak bulabilir veya oluşturabilir.

Zorunlu:documents:write
Koşullu:crm:write(Required for a non-anonymous share when the request supplies contactId, companyId, companyName, recipientEmail, or recipientName.)

İstek alanları

FieldTypeDescription
deckIdstringzorunluPaylaşılacak belgenin kimliği
recipientNamestringisteğe bağlıKişisel bağlantının alıcı adı
recipientEmailstringisteğe bağlıKişisel bağlantının alıcı e-posta adresi
contactIdUUIDisteğe bağlıKimliği doğrulanmış çalışma alanındaki mevcut kişi
companyIdUUIDisteğe bağlıMevcut şirket. companyName ile birlikte kullanılamaz
companyNamestringisteğe bağlıAdına göre bulunacak veya oluşturulacak şirket
companyDomainstringisteğe bağlıcompanyName verildiğinde zenginleştirme için saklanan alan adı. Şirket seçmek için hiçbir zaman kullanılmaz
typestringisteğe bağlıAlıcı veya hesap alanları varsa varsayılan personal, aksi halde anonymous

Bağlantıyı ve hesap kayıtlarını birlikte oluşturun

Alıcı ve şirket bilgilerini doğrudan /shares isteğine ekleyin. HummingDeck eşleşen kayıtları bulur, eksik olanları oluşturur, bağlantıya bağlar ve nelerin oluşturulduğunu bildirir. Hesap oluşturmayı atlamak için type alanını açıkça anonymous yapın.

{
  "deckId": "8f3d41de-2bb8-4d8e-80de-6cd2072ffab1",
  "recipientName": "Ada Lovelace",
  "recipientEmail": "ada@analytical.example",
  "companyName": "Analytical Engines",
  "companyDomain": "analytical.example"
}

Yanıt alanları

FieldTypeDescription
idstringPaylaşım kimliği
slugstringURL'de kullanılan paylaşım slug'ı
shareUrlstringTam izlenebilir URL
typestring"personal" veya "anonymous"
recipientNamestringKişisel bağlantının alıcı adı
recipientEmailstringKişisel bağlantının alıcı e-posta adresi
contactobject | nullBağlantıya eklenen çözümlenmiş kişi
contactCreatedbooleanBu isteğin kişiyi oluşturup oluşturmadığı
companyobject | nullBağlantıya eklenen çözümlenmiş şirket
companyCreatedbooleanBu isteğin şirketi oluşturup oluşturmadığı
createdAtstringISO 8601 zaman damgası

Odalar

Oda yapısını alın ve izlenebilir hedef kitle bağlantıları oluşturun. Yalnızca çalışma alanı API belirteçleriyle kullanılabilir; Zapier OAuth kimlik bilgileri reddedilir.

GET/rooms

Odaları en yeniden başlayarak listeler. search, status (active, archived veya all) ve companyId ile filtreleyin. Her sayfada 25 oda vardır (limit ile 100'e kadar); sonraki sayfa için sayfanın nextCursor değerini cursor olarak gönderin.

Zorunlu:rooms:read
Koşullu:crm:read(Required when the companyId filter is present.)
POST/rooms

Belgeleri ve ilk hedef kitle bağlantısıyla birlikte tek çağrıda bir oda oluşturur.

Zorunlu:rooms:write
Koşullu:documents:write(Required when documentIds contains one or more document IDs.)crm:write(Required when the request supplies contactId, recipientName, recipientEmail, companyId, companyName, or when either primaryLink.allowedEmails or primaryLink.allowedDomains is non-empty.)
GET/rooms/{roomId}

Oda meta verilerini, sekmeleri, içerik öğelerini ve etkin/toplam bağlantı sayılarını döndürür.

Zorunlu:rooms:read
PATCH/rooms/{roomId}

Adı, karşılama mesajını, iletişim kişisini, şirketi veya kişiyi değiştirir.

Zorunlu:rooms:write
Koşullu:crm:write(Required when companyId or contactId is present, including null to detach the association.)
POST/rooms/{roomId}/archive

Odayı arşivler. Bağlantıları çalışmayı durdurur.

Zorunlu:rooms:write
POST/rooms/{roomId}/restore

Arşivlenmiş bir odayı geri yükler. Bağlantıları yeniden çalışır.

Zorunlu:rooms:write
POST/rooms/{roomId}/tabs

Belirli bir sıraya veya sona bir sekme ekler.

Zorunlu:rooms:write
PATCH/rooms/{roomId}/tabs/{tabId}

Bir sekmeyi yeniden adlandırır.

Zorunlu:rooms:write
PUT/rooms/{roomId}/tabs/order

Tüm sekmeleri yeni bir sıraya koyar.

Zorunlu:rooms:write
DELETE/rooms/{roomId}/tabs/{tabId}

Hiç öğe göstermeyen bir sekmeyi kaldırır.

Zorunlu:rooms:write
POST/rooms/{roomId}/items

Bir sekmeye belge, URL, gömülü içerik veya bölüm ayırıcısı ekler.

Zorunlu:rooms:write
Koşullu:documents:write(Required when type is document or url.)
POST/rooms/{roomId}/items/{itemId}/move

Bir öğeyi başka bir sekmenin sonuna taşır.

Zorunlu:rooms:write
PUT/rooms/{roomId}/items/order

Bir sekmenin öğelerini yeni bir sıraya koyar.

Zorunlu:rooms:write
DELETE/rooms/{roomId}/items/{itemId}

Bir öğeyi odadan çıkarır. Kitaplığınızda kalır.

Zorunlu:rooms:write
GET/rooms/{roomId}/links

Odanın hedef kitle bağlantılarını en yeniden başlayarak listeler; kısıtlı bağlantılarda etkin davetliler de yer alır.

Zorunlu:rooms:read
POST/rooms/{roomId}/links

Etkin bir oda için ilişkilendirilmiş Açık bağlantı oluşturur.

Zorunlu:rooms:write
Ayrıca zorunlu:crm:write
PATCH/rooms/{roomId}/links/{linkId}

Bir bağlantıyı açar veya kapatır, son kullanma tarihini ayarlar ya da temizler veya erişim listesini değiştirir.

Zorunlu:rooms:write
Koşullu:crm:write(Required when allowedEmails or allowedDomains is present, including an empty array that clears the audience.)
GET/rooms/{roomId}/action-plan

Odanın eylem planını döndürür: ayarları, aşamaları, görevleri (dahili olanlar dahil), bağımlılıkları ve ilerlemesi.

Zorunlu:plan:read
PATCH/rooms/{roomId}/action-plan

Planın ayarlarını değiştirir; odayı açanların kendi görevlerini işaretleyip işaretleyemeyeceği de buna dahildir.

Zorunlu:plan:write
POST/rooms/{roomId}/action-plan/phases

Bir kilometre taşı ekler. color verilmezse aşamalar sırayla turkuaz, şeftali ve mavi olur.

Zorunlu:plan:write
PATCH/rooms/{roomId}/action-plan/phases/{phaseId}

Bir aşamayı yeniden adlandırır, taşır, tarihini değiştirir veya rengini ayarlar. color olarak null göndermek otomatik sıraya döndürür.

Zorunlu:plan:write
DELETE/rooms/{roomId}/action-plan/phases/{phaseId}

Bir aşamayı kaldırır. mode zorunludur: delete_tasks veya move_to_unphased; böylece görevler yanlışlıkla silinmez.

Zorunlu:plan:write
POST/rooms/{roomId}/action-plan/tasks

Bir görev ekler. assignee null, sorumlu şirket için tek başına bir side ya da belirli bir kişi için side ve email olabilir.

Zorunlu:plan:write
PATCH/rooms/{roomId}/action-plan/tasks/{taskId}

Bir görevi günceller. assignee gönderilmezse sorumluluk değişmez; null göndermek sorumluluğu kaldırır.

Zorunlu:plan:write
DELETE/rooms/{roomId}/action-plan/tasks/{taskId}

Bir görevi kaldırır. Alt görevleri de onunla birlikte gider.

Zorunlu:plan:write
POST/rooms/{roomId}/action-plan/tasks/{taskId}/status

Bir görevi çalışma alanı adına tamamlar veya yeniden açar. Tamamlanmamış bir bağımlılığın ardındaki görev 409 TASK_BLOCKED döndürür.

Zorunlu:plan:write
GET/rooms/{roomId}/analytics

Oda ziyaretleri, benzersiz görüntüleyenler, ortalama süre, toplamdan açılan belgeler ve ortalama tamamlanma. Botlar hariç.

Zorunlu:analytics:read
GET/rooms/{roomId}/activity

Odada ne olduğunu en yeniden başlayarak döndürür. Tartışma kayıtları göndereni belirtir, mesajın kendisini asla taşımaz. since ile daraltın.

Zorunlu:analytics:read
GET/rooms/{roomId}/captured-emails

Odanın topladığı adresler. source, kişi tek kullanımlık bağlantıyla doğruladıysa verify, yalnızca yazdıysa ask olur.

Zorunlu:analytics:read
GET/room-views

Çalışma alanındaki oda girişleri, en yeniden başlayarak. Bir odaya girildiğini öğrenmenin başka yolu yoktur; /views yalnızca belge görüntülemelerini kapsar.

Zorunlu:analytics:read
GET/room-labels

Çalışma alanının oda etiketlerini, her birini kaç odanın kullandığıyla birlikte listeler. Bir odayı etiketlemeden önce kimlikleri burada bulursunuz.

Zorunlu:rooms:read
POST/room-labels

Bir etiket oluşturur. Adlar büyük küçük harf ayrımı olmadan çalışma alanı içinde benzersizdir; color, #RRGGBB biçiminde bir onaltılık değerdir.

Zorunlu:rooms:write
PATCH/room-labels/{labelId}

Bir etiketi yeniden adlandırır, rengini değiştirir veya açıklamasını düzenler.

Zorunlu:rooms:write
DELETE/room-labels/{labelId}

Bir etiketi ve atamalarını siler. Etiketi taşıyan odalar değişmez; yanıt kaçının etiketi kaybettiğini bildirir.

Zorunlu:rooms:write

Tek çağrıda oda oluşturun

Her dosyayı POST /decks ile yükleyin, ardından odayı alıcı tarafın şirketi için, görmesi gereken kişilere açık kısıtlı bir bağlantıyla oluşturun. Şirket, kişiler, oda, belgeler ve bağlantı birlikte oluşturulur: çağrı reddedilirse hiçbiri oluşturulmaz. Belgeler işlenmeye devam ederken odaya eklenebilir. Odanın öğeleri processingStatus bildirdiğinden, bağlantıyı her belge completed okuduğunda gönderin.

{
  "name": "Acme renewal",
  "companyName": "Acme Inc",
  "recipientName": "Pat Buyer",
  "recipientEmail": "pat@acme.example",
  "documentIds": [
    "{documentId}",
    "{documentId}"
  ],
  "primaryLink": {
    "accessMode": "verified-allowlist",
    "allowedEmails": [
      "pat@acme.example",
      {
        "email": "cfo@acme.example",
        "name": "Sam Rivera"
      }
    ],
    "allowedDomains": [
      "acme.example"
    ]
  }
}

accessMode değeri open (URL'ye sahip herkes), verify-any (ziyaretçiler e-posta adreslerini tek kullanımlık bağlantıyla doğrular) veya verified-allowlist (yalnızca allowedEmails içindeki adresler ve allowedDomains alan adlarındaki herkes) olabilir. API kısıtlı bir bağlantıya kendiliğinden kimseyi eklemez; odayı önizlemek isterseniz kendi adresinizi de ekleyin. Planınızda bulunmayan bir seçenek 403 FEATURE_NOT_AVAILABLE, bilinmeyen bir alan ise 400 döndürür; böylece bir oda istediğinizden farklı bir kitleye açılmaz.

Sekmeleri ve öğeleri düzenleyin

Odanın şu anki hâlinden başlayın: bir odayı okumak sekmelerini ve öğelerini görüntüleme sırasıyla döndürür ve her öğe hangi sekmede olduğunu ve o sekmedeki sırasını 0'dan sayarak bildirir. Sekmeleri ve öğeleri belirli bir sıraya ekleyin, öğeleri sekmeler arasında taşıyın ve bir sekmenin yeni sırasının tamamını gönderin. Sıralama, sekmedeki her öğeyi tam olarak bir kez listelemelidir; arada başka bir değişiklik olduysa odayı yeniden okuyun. Hiç öğe göstermeyen bir sekme kaldırılabilir.

{
  "type": "section",
  "label": "Commercials",
  "tabId": "{tabId}",
  "position": 0
}

Desteklenen gömme sağlayıcıları

Gömmeler hem paylaşım bağlantısını hem de gömme bağlantısını kabul eder ve sağlayıcının gömme biçimine normalleştirir. Bu listenin dışındaki her şey 400 EMBED_PROVIDER_NOT_SUPPORTED döndürür.

FieldTypeDescription
VideoLoom, YouTube, Vimeo, Wistia, Vidyard
Randevu planlamaCalendly, Cal.com, SavvyCal, Google Calendar
FormlarTypeform, Tally, Google Forms, Jotform, Fillout
TasarımFigma, Miro, Canva, Whimsical
Belgeler ve tablolarGoogle Docs, Google Sheets, Notion, Coda, Airtable
SunumlarGoogle Slides, Pitch, Gamma, Guideflow, Flipsnack, Prezi
SesSpotify, SoundCloud

Başka bir hedef kitle bağlantısı ekleyin

Her odanın POST /rooms ile oluşturulmuş bir bağlantısı zaten vardır; farklı atıf veya erişim gerektiren hedef kitleler için yenilerini ekleyin. recipientName, recipientEmail, contactId, companyId veya companyName alanlarından en az birini verin. accessMode, primaryLink ile aynı open, verify-any ve verified-allowlist değerlerini ve aynı alanları alır (requireEmail, allowedEmails, allowedDomains, label, expiresAt, allowDownloads). Plan sınırı dahil, reddedilen bir çağrı geride bağlantı, şirket veya kişi bırakmaz.

{
  "companyName": "Analytical Engines",
  "accessMode": "verified-allowlist",
  "allowedEmails": [
    {
      "email": "cfo@analytical.example",
      "name": "Sam Rivera"
    }
  ]
}

Bir bağlantıyı güncelleyin

Dört alan: isActive, expiresAt, allowedEmails, allowedDomains (son ikisi yalnızca verified-allowlist bağlantılarında). accessMode ve slug hiç değişmez; bunun yerine yeni bir bağlantı oluşturun. Bir bağlantıyı yeniden açmak, plandaki etkin bağlantı sınırını yeniden denetler.

{
  "isActive": false
}

Eylem planını oluşturun

Her odanın tam olarak bir planı vardır, bu yüzden plan kendi kimliği olmadan odanın altında yer alır. Görevlerin çoğu bir kişiye değil bir şirkete aittir: yalnızca side gönderin, plan bunu şirket olarak okur. Karşı tarafta işi kimin yapacağını bilmediğinizde istediğiniz budur. E-posta adresini yalnızca kişiyi biliyorsanız ekleyin. Dahili bir görev odada hiç görünmez, bu yüzden alıcı tarafına ait olamaz.

{
  "title": "Sign the NDA",
  "assignee": {
    "side": "buyer"
  },
  "dueDate": "2026-10-02"
}

Plandaki recipientCompletionEnabled, odayı açanların kendi taraflarındaki görevleri işaretleyip işaretleyemeyeceğine karar verir. Varsayılanı true'dur ve tek koşul budur: API bir görevi tamamlamak için alıcının adresini hiçbir zaman istemez. Her görevi kimin işaretlediği, odanın erişim moduna göre sağlanan kesinlikle kaydedilir.

Odaları etiketleyin

Etiketler çalışma alanının tamamında geçerlidir: bir kez oluşturun, tekrar tekrar kullanın. Bir odayı oluştururken etiketlemek için POST /rooms içinde, tüm kümeyi değiştirmek için PATCH /rooms/{roomId} içinde labelIds gönderin; boş bir dizi tüm etiketleri kaldırır, alanı hiç göndermemek ise onları olduğu gibi bırakır. Bir oda en fazla beş etiket taşır; bu bir ayar değil, yapısal bir sınırdır. Bir odayı okumak etiketlerini de döndürür.

{
  "labelIds": [
    "{labelId}"
  ]
}

Ne olduğunu öğrenin

Çalışma alanındaki tüm girişleri görmek için /room-views uç noktasını yoklayın, ardından tek bir odanın analitiğini, etkinliğini ve toplanan adreslerini okuyun. Devam etmek için sayfanın nextCursor değerini cursor olarak gönderin; bu API'nin vermediği bir imleç baştan başlamak yerine 400 döndürür, böylece yoklama aynı işi tekrarlamaz. Etkinlik aralığını since ile daraltın ve sayfalar arasında cursor ile ilerleyin. /room-views bir arşiv değil, zaman penceresidir: since göndermezseniz son 30 günü alırsınız ve 90 günden eski istekler reddedilir. Uygulanan pencere since olarak döner; aynı kümeyi sayfalamaya devam etmek için cursor ile birlikte gönderin.

Şirketler ve Kişiler

Mevcut hesap kayıtlarını bulun veya kesin eşleştirme kurallarıyla oluşturun. Şirket adları ve kişi e-posta adresleri büyük ve küçük harfe duyarlı olmadan eşleştirilir.

GET/companies?name={name}&domain={domain}

Tam ad, alan adı veya her ikisiyle en fazla 10 şirket bulun.

Zorunlu:crm:read
POST/companies

Şirketi büyük ve küçük harfe duyarlı olmadan adına göre bulun veya oluşturun. Açıkça verilen alan adı yalnızca kaydı zenginleştirir. Sonucu created alanı belirtir.

Zorunlu:crm:write
GET/contacts?email={query}

Kişileri e-posta adresine göre arayın. Eşleşen kişileri ilişkili şirketleriyle birlikte döndürür.

Zorunlu:crm:read
POST/contacts

Bir kişiyi e-posta adresine göre bulun veya isteğe bağlı mevcut ya da yeni bir şirketle oluşturun.

Zorunlu:crm:write

POST /companies isteği

FieldTypeDescription
namestringzorunluŞirket adı
domainstringisteğe bağlıKaydı zenginleştirmek için şirket alan adı. Mevcut bir şirketi eşleştirmek için hiçbir zaman kullanılmaz

POST /contacts isteği

FieldTypeDescription
namestringkoşulluTam ad. Bunu veya firstName ve lastName alanlarını kullanın
firstNamestringkoşulluname verilmediğinde ad
lastNamestringisteğe bağlıfirstName kullanılırken soyadı
emailstringzorunluBüyük ve küçük harfe duyarlı olmayan eşleştirmede kullanılan e-posta adresi
titlestringisteğe bağlıGörev unvanı
companyIdUUIDisteğe bağlıKimliği doğrulanmış çalışma alanındaki mevcut şirket
companyNamestringisteğe bağlıcompanyId verilmediğinde bulunacak veya oluşturulacak şirket
companyDomainstringisteğe bağlıcompanyName ile kullanılan isteğe bağlı zenginleştirme alan adı. Şirket eşleştirme anahtarı değildir

Şirket yanıtı

FieldTypeDescription
company.idUUIDŞirket kimliği
company.namestringŞirket adı
company.domainstring | nullNormalleştirilmiş şirket alan adı
createdbooleanBu isteğin şirketi oluşturup oluşturmadığı

Kişi yanıtı

FieldTypeDescription
contact.idUUIDKişi kimliği
contact.firstNamestringAd
contact.lastNamestringSoyadı
contact.emailstringE-posta adresi
contact.titlestring | nullGörev unvanı
contact.companyIdUUID | nullİlişkili şirket kimliği
contact.companyNamestring | nullİlişkili şirket adı
createdbooleanBu isteğin kişiyi oluşturup oluşturmadığı
companyobject | nullVarsa çözümlenen şirket
companyCreatedbooleanBu isteğin şirketi oluşturup oluşturmadığı

Webhook'lar

REST Hooks aracılığıyla gerçek zamanlı olaylara abone olun. Bir olay gerçekleştiğinde, HummingDeck kayıtlı HTTPS URL'nize olay yüküyle birlikte bir POST isteği gönderir. Başarısız teslimler 3 defaya kadar yeniden denenir (1 s, 5 s ve 30 s aralıklarla). Webhook abonelikleri Zapier entegrasyonu tarafından yönetilir ve çalışma alanı API token'ları için kullanılamaz.

POST/hooks

Bir olaya abone olun. Hedef HTTPS URL'si ve olay türü gerektirir. Abonelik kimliği döndürür.

Yalnızca Zapier OAuth

DELETE/hooks/{id}

Abonelik kimliğiyle bir olaydan çıkın.

Yalnızca Zapier OAuth

Olay türleri

EventDescription
view.createdGerçek bir kişi paylaşılan bir belgeyi görüntüledi. Bot trafiği (e-posta güvenlik tarayıcıları, gezginler) otomatik olarak filtrelenir.
decision.madePotansiyel müşteri bir teklife yanıt verdi: kabul etti, reddetti veya değişiklik talep etti.
email_capturedBir ziyaretçi, korumalı içeriğe erişmek için e-posta adresini girdi.

Örnek yükler

view.created

{
  "event": "view.created",
  "data": {
    "id": "view_abc123",
    "deck_id": "deck_xyz789",
    "deck_title": "Q4 Enterprise Proposal",
    "viewer_email": "sarah@acme.com",
    "viewer_name": "Sarah Wood",
    "viewer_company": "Acme Corp",
    "location": "San Francisco, CA",
    "device": "Desktop",
    "browser": "Chrome",
    "pages_viewed": 8,
    "total_pages": 12,
    "duration_seconds": 272,
    "completion_percent": 67,
    "created_at": "2026-03-29T14:32:00Z"
  }
}

decision.made

{
  "event": "decision.made",
  "data": {
    "share_slug": "proposal-2024",
    "decision": "accepted",
    "deck_title": "Q4 Enterprise Proposal",
    "viewer_email": "sarah@acme.com",
    "viewer_name": "Sarah Wood",
    "decision_note": "Approved pending final review",
    "decided_at": "2026-03-29T15:30:00Z"
  }
}

email_captured

{
  "event": "email_captured",
  "data": {
    "email": "prospect@company.com",
    "share_slug": "proposal-2024",
    "deck_title": "Q4 Enterprise Proposal",
    "view_id": "view_xyz789",
    "captured_at": "2026-03-29T14:35:00Z"
  }
}

Görüntülemeler ve Olaylar

Son etkileşim verilerini almak için yoklama uç noktaları. Bunlar, webhook'ların gerçek zamanlı olarak ilettiği aynı verileri döndürür. Geri doldurma, test veya yedek olarak kullanın.

GET/views

En son 100 belge görüntülemesini listeleyin. Bot oturumları hariç tutulur.

Zorunlu:analytics:read
GET/decisions

Son teklif kararlarını listeleyin (kabul edildi, reddedildi, değişiklik talep edildi).

Zorunlu:analytics:read
GET/emails

Korumalı içerikten son e-posta yakalamalarını listeleyin.

Zorunlu:analytics:read

Hata işleme

Her hata, neyin yanlış gittiğini açıklayan bir error alanı içeren JSON nesnesi döndürür. Çoğu yanıt ayrıca PLAN_LIMIT_REACHED, FEATURE_NOT_AVAILABLE, ROOM_NOT_ACTIVE, TAB_NOT_EMPTY, INVALID_FORMAT veya FILE_TOO_LARGE gibi programatik işleme yönelik bir code alanı içerir. HTTP durum kodları standart kurallara uyar.

StatusMeaning
400Hatalı istek: eksik veya geçersiz parametreler
401Yetkisiz: geçersiz veya süresi dolmuş Bearer token
403Yasak: kimlik bilgisinde gerekli scope yok, plan sınırına ulaşıldı, plan gerekli bir seçeneği içermiyor veya bu kimlik bilgisi türü bu uç noktada kullanılamıyor
404Bulunamadı: kaynak mevcut değil veya ekibinize ait değil
409Çakışma: verilen kimlikler uyuşmuyor, oda arşivlenmiş veya odanın sekmeleri bu değişikliğe izin vermiyor
413Yük çok büyük: istek gövdesi veya yüklenen dosya bu uç noktanın sınırını aşıyor
429Çok fazla istek: anahtar veya istemci IP’si geçerli sınırı aştı; Retry-After süresinden sonra yeniden deneyin
500Sunucu hatası: isteği yeniden deneyin

Hız sınırları

Manuel çalışma alanı anahtarlarına ve Zapier OAuth bağlantılarına kimlik bilgisi başına sınır uygulanır: 5 dakikada 600 okuma, dakikada 120 yazma, dakikada 60 /room-views isteği ve saatte 20 yükleme. Tüm kimlik bilgileri birlikte değerlendirildiğinde çalışma alanı başına sınır; 5 dakikada 1.200 okuma, dakikada 240 yazma, dakikada 120 /room-views isteği ve saatte 40 yüklemedir. Başarısız Bearer kimlik doğrulaması ve geçersiz OAuth istemci kimlik doğrulaması ayrı ayrı istemci IP’si başına 5 dakikada 60 denemeyle sınırlıdır. Ekip başına en fazla 50 etkin webhook aboneliği olabilir.

Bu API şu anda Zapier entegrasyonumuz tarafından kullanılmaktadır. Gelecekte ek entegrasyon platformları desteklenebilir.