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_...

Çalışma alanı sahibi tarafından Çalışma alanı ayarları, Entegrasyonlar, HummingDeck API bölümünden verilir. REST API erişimi Business planında talep üzerine sunulur ve incelemenin ardından çalışma alanı bazında etkinleştirilir. Token oluşturulurken bir kez gösterilir ve sonrasında geri alınamaz. Oluşturulmasından bir yıl sonra sona erer ve verildiği çalışma alanına kalıcı olarak bağlıdır, bu yüzden bir istek kendi çalışma alanını seçemez veya değiştiremez.

Zaten bir token varken yenisini oluşturmak onu değiştirir ve önceki token hemen çalışmayı durdurur. Sahip, token'ı istediği zaman kapatabilir. Bu, o token için kalıcıdır: geri getirmeyi beklemek yerine yeni bir tane oluşturun.

Webhook abonelik uç noktaları, çalışma alanı API token'larına açık değildir.

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.

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

Token bilinmiyorsa veya hatalıysa, süresi dolmuşsa, kapatılmışsa, API erişimi kapatılmış bir çalışma alanına aitse ya da artık o çalışma alanının sahibi olmayan biri tarafından verilmişse istek 401 ile reddedilir.

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/meGeçerli kullanıcının adını, e-postasını ve ekip bilgilerini döndürür.

Belgeler

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

POST/decksYeni 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.
GET/decks?title={query}Belgeleri başlığa göre arayın. Büyük/küçük harf duyarsız, en fazla 20 sonuç döndürür.

Yanıt alanları

FieldTypeDescription
idstringBelge kimliği
titlestringBelge başlığı
fileTypestringDosya türü (pdf, pptx, docx, html)
pageCountnumberSayfa sayısı
thumbnailUrlstringKüçük resim URL'si
createdAtstringISO 8601 zaman damgası

Paylaşım Bağlantıları

Belgeleri potansiyel müşterilerle paylaşmak için izlenebilir bağlantılar oluşturun. Her bağlantı etkileşimi ayrı ayrı takip eder.

POST/sharesPaylaşım bağlantısı oluşturun. Kişisel bağlantıları (alıcı adı ve e-postası ile) ve anonim bağlantıları destekler.

İstek alanları

FieldTypeDescription
deckIdstringrequiredPaylaşılacak belgenin kimliği
recipientNamestringoptionalAlıcının adı (kişisel bağlantılar için)
recipientEmailstringoptionalAlıcının e-postası (kişisel bağlantılar için)
typestringoptional"personal" veya "anonymous" (varsayılan: anonymous)

Create the link and account records together

Send recipient and company details directly to /shares. HummingDeck finds matching records, creates any that are missing, attaches them to the link, and reports what was created. Set type to anonymous explicitly to skip account creation.

{
  "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
slugstringPaylaşım slug'ı (URL'de kullanılır)
shareUrlstringTam izlenebilir URL
typestring"personal" veya "anonymous"
recipientNamestringAlıcı adı (kişisel ise)
recipientEmailstringAlıcı e-postası (kişisel ise)
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/{roomId}Oda meta verilerini, sekmeleri, içerik öğelerini ve etkin/toplam bağlantı sayılarını döndürür.
POST/rooms/{roomId}/linksEtkin bir oda için ilişkilendirilmiş Açık bağlantı oluşturur.

Açık oda bağlantısı oluşturma

recipientName, recipientEmail, contactId, companyId veya companyName alanlarından en az birini sağlayın. Ad ve e-posta alanları bir kişiyi bulur veya oluşturur; şirket alanları bir şirketi bulur veya oluşturur. URL’yi bilen herkes Açık bağlantıyı görüntüleyebilir.

{
  "accessMode": "open",
  "recipientName": "Ada Lovelace",
  "recipientEmail": "ada@analytical.example",
  "companyName": "Analytical Engines"
}

Kişiler

Ekibinizin adres defterinde kişileri arayın.

GET/contacts?email={query}Kişileri e-posta adresine göre arayın. İlgili şirketiyle birlikte eşleşen kişileri döndürür.

POST /companies request

FieldTypeDescription
namestringrequiredCompany name
domainstringoptionalCompany domain used for enrichment. Never used to match an existing company

POST /contacts request

FieldTypeDescription
namestringconditionalFull name. Use this or firstName and lastName
firstNamestringconditionalFirst name when name is not supplied
lastNamestringoptionalLast name when using firstName
emailstringrequiredEmail used for case-insensitive matching
titlestringoptionalJob title
companyIdUUIDoptionalExisting company in the authenticated workspace
companyNamestringoptionalCompany to find or create when companyId is not supplied
companyDomainstringoptionalOptional enrichment domain used with companyName. Not a company match key

Company response

FieldTypeDescription
company.idUUIDCompany ID
company.namestringCompany name
company.domainstring | nullNormalized company domain
createdbooleanWhether this request created the company

Contact response

FieldTypeDescription
contact.idUUIDContact ID
contact.firstNamestringFirst name
contact.lastNamestringLast name
contact.emailstringEmail address
contact.titlestring | nullJob title
contact.companyIdUUID | nullAssociated company ID
contact.companyNamestring | nullAssociated company name
createdbooleanWhether this request created the contact
companyobject | nullResolved company, when available
companyCreatedbooleanWhether this request created the company

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/hooksBir olaya abone olun. Hedef HTTPS URL'si ve olay türü gerektirir. Abonelik kimliği döndürür.
DELETE/hooks/{id}Abonelik kimliğiyle bir olaydan çıkın.

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/viewsEn son 100 belge görüntülemesini listeleyin. Bot oturumları hariç tutulur.
GET/decisionsSon teklif kararlarını listeleyin (kabul edildi, reddedildi, değişiklik talep edildi).
GET/emailsKorumalı içerikten son e-posta yakalamalarını listeleyin.

Hata işleme

Her hata, neyin yanlış gittiğini açıklayan bir error alanı içeren JSON nesnesi döndürür. Bazı yanıtlar ayrıca PLAN_LIMIT_REACHED, INVALID_FORMAT veya FILE_TOO_LARGE gibi programatik işleme için bir code alanı da içerir. HTTP durum kodları yaygın kurallara uyar.

StatusMeaning
400Hatalı istek: eksik veya geçersiz parametreler
401Yetkisiz: geçersiz veya süresi dolmuş Bearer token
403Yasak: plan sınırına ulaşıldı veya bu kimlik bilgisi türü bu uç noktada kullanılamaz
404Bulunamadı: kaynak mevcut değil veya ekibinize ait değil
500Sunucu hatası: isteği yeniden deneyin

Hız sınırları

Ekip başına maksimum 50 aktif webhook aboneliği. API isteklerine hız sınırı uygulanmaz, ancak aşırı kullanım kısıtlanabilir.

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