信頼のために構築TLS 暗号化GDPR 対応Google Cloud安全なお支払いセキュリティ概要
G2

G2で5段階中5.0の評価

G2でレビューを読む
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リファレンス

HummingDeckは、統合パートナーや自動化プラットフォーム向けにREST APIを提供しています。各エンドポイントはBearer tokenで認証し、JSONレスポンスを返します。

ベースURLhttps://app.hummingdeck.com/api/v1
OpenAPI Spec

認証

すべてのAPIリクエストは、AuthorizationヘッダーにBearer tokenを付けて送信します。2種類の認証情報に対応しており、それぞれ挙動が異なります。

メソッド

Bearer token

ヘッダー形式

Authorization: Bearer {access_token}

認証情報の種類

ワークスペースAPIトークン

Authorization: Bearer hd_api_...

ワークスペースのオーナーが、ワークスペース設定、連携、HummingDeck APIから発行します。REST APIへのアクセスはBusinessプランで申請でき、審査後にワークスペース単位で有効になります。トークンは作成時に一度だけ表示され、あとから取得することはできません。作成から1年で失効し、発行されたワークスペースに永続的に紐づくため、リクエスト側でワークスペースを選択したり変更したりすることはできません。

すでにトークンがある状態で作成すると置き換えられ、以前のトークンはただちに使えなくなります。オーナーはいつでもトークンを無効にできます。そのトークンについては元に戻せないため、復元ではなく新しいトークンを作成してください。

Webhookのサブスクリプション用エンドポイントは、ワークスペースAPIトークンでは利用できません。

Zapier OAuth

Authorization: Bearer {access_token}

ワークスペースがZapier連携を接続する際に、OAuth認証フローを通じて発行されます。アクセストークンは30日で失効します。有効期限90日のリフレッシュトークンを使うと、再認証なしで新しいアクセストークンを取得できます。

Webhookのサブスクリプションを作成・削除できるのは、この認証情報だけです。

リクエストが401を返す場合

トークンが未知または不正な形式である、失効している、無効化されている、APIアクセスがオフになったワークスペースに属している、あるいはそのワークスペースのオーナーではなくなった人が発行した場合、リクエストは401で拒否されます。

接続のテスト

トークンが有効であることを確認し、認証済みユーザーのプロフィールを確認します。

GET/me現在のユーザーの名前、メールアドレス、チーム情報を返します。

ドキュメント

ドキュメント(PDF、プレゼンテーション資料、提案書、その他のファイル)のアップロード、検索、管理を行います。

POST/decks新しいドキュメントをアップロードします。fileフィールド(PDF、PPTX、DOCX、XLSX、HTML)とtitleフィールドを含むmultipart/form-dataとして送信します。API経由のアップロード上限は30MBです。
GET/decks?title={query}タイトルでドキュメントを検索します。大文字小文字を区別せず、最大20件の結果を返します。

レスポンスフィールド

FieldTypeDescription
idstringドキュメントID
titlestringドキュメントタイトル
fileTypestringファイルタイプ(pdf、pptx、docx、html)
pageCountnumberページ数
thumbnailUrlstringサムネイル画像のURL
createdAtstringISO 8601タイムスタンプ

共有リンク

追跡可能なドキュメントリンクを作成します。個人リンクでは、同じリクエストで連絡先と会社を検索または作成できます。

POST/shares個人リンクまたは匿名リンクを作成します。個人リンクではアカウント情報を自動的に検索または作成できます。

リクエストフィールド

FieldTypeDescription
deckIdstring必須共有するドキュメントのID
recipientNamestring任意受信者の名前(個人リンク用)
recipientEmailstring任意受信者のメールアドレス(個人リンク用)
contactIdUUID任意認証済みワークスペースの既存の連絡先
companyIdUUID任意既存の会社。companyNameとは同時に使用できません
companyNamestring任意名前で検索または新規作成する会社
companyDomainstring任意companyNameが指定された場合に情報補完用として保存するドメイン。会社の選択には使用されません
typestring任意受信者またはアカウント情報がある場合はpersonal、ない場合はanonymousがデフォルト

リンクとアカウント情報をまとめて作成

受信者と会社の情報を/sharesに直接送信します。HummingDeckは一致する情報を検索し、不足している場合は作成してリンクに関連付け、作成結果を返します。アカウント情報を作成しない場合は、typeにanonymousを明示してください。

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

レスポンスフィールド

FieldTypeDescription
idstring共有ID
slugstring共有スラッグ(URLで使用)
shareUrlstring完全な追跡可能URL
typestring"personal"または"anonymous"
recipientNamestring受信者名(個人リンクの場合)
recipientEmailstring受信者メールアドレス(個人リンクの場合)
contactobject | null個人リンクに関連付けられた連絡先
contactCreatedbooleanこのリクエストで連絡先を作成した場合はtrue
companyobject | null個人リンクに関連付けられた会社
companyCreatedbooleanこのリクエストで会社を作成した場合はtrue
createdAtstringISO 8601タイムスタンプ

ルーム

ルームの構成を取得し、追跡可能な対象者向けリンクを作成します。ワークスペース API トークンでのみ利用でき、Zapier OAuth 認証情報は拒否されます。

GET/rooms/{roomId}ルームのメタデータ、タブ、コンテンツ項目、有効リンク数と総リンク数を返します。
POST/rooms/{roomId}/links有効なルームに、対象者情報を関連付けた公開リンクを作成します。

公開ルームリンクを作成

recipientName、recipientEmail、contactId、companyId、companyName のうち少なくとも1つを指定してください。名前またはメールアドレスから連絡先を検索または作成し、会社フィールドから会社を検索または作成します。公開リンクはURLを知っている誰でも閲覧できます。

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

会社と連絡先

既存のアカウント情報を一貫した条件で検索するか、新規作成します。会社名と連絡先メールアドレスは大文字と小文字を区別せず照合されます。

GET/companies?name={name}&domain={domain}完全一致する名前と任意のドメインで会社を検索します。
POST/companies大文字と小文字を区別せず名前で会社を検索または作成します。明示したドメインはレコードの情報補完にのみ使用されます。
GET/contacts?email={query}メールアドレスで連絡先を検索します。関連する会社とともに一致する連絡先を返します。
POST/contactsメールアドレスで連絡先を検索または作成し、必要に応じて会社に関連付けます。

POST /companiesのリクエスト

FieldTypeDescription
namestring必須会社名
domainstring任意会社情報の補完に使用するドメイン。既存会社の照合には使用されません

POST /contactsのリクエスト

FieldTypeDescription
namestring条件付き氏名。firstNameがない場合は必須
firstNamestring条件付き名。nameがない場合は必須
lastNamestring任意
emailstring必須一意の照合に使用するメールアドレス
titlestring任意役職
companyIdUUID任意認証済みワークスペースの既存の会社
companyNamestring任意検索または作成する会社名
companyDomainstring任意companyNameとともに使用する任意の情報補完ドメイン。会社の照合キーではありません

会社のレスポンス

FieldTypeDescription
company.idUUID会社ID
company.namestring会社名
company.domainstring | null正規化された会社ドメイン
createdbooleanPOSTリクエストで会社を作成した場合はtrue

連絡先のレスポンス

FieldTypeDescription
contact.idUUID連絡先ID
contact.firstNamestring
contact.lastNamestring
contact.emailstring正規化されたメールアドレス
contact.titlestring | null役職
contact.companyIdUUID | null関連付けられた会社ID
contact.companyNamestring | null関連付けられた会社名
createdbooleanPOSTリクエストで連絡先を作成した場合はtrue
companyobject | null解決された会社(存在する場合)
companyCreatedbooleanこのリクエストで会社を作成した場合はtrue

Webhook

REST Hooksを介してリアルタイムイベントにサブスクライブします。イベントが発生すると、HummingDeckはイベントペイロードとともに登録済みのHTTPS URLにPOSTリクエストを送信します。配信が失敗した場合は最大3回まで再試行されます(1秒、5秒、30秒の間隔)。 Webhookのサブスクリプションは Zapier 連携で管理され、ワークスペースAPIトークンでは利用できません。

POST/hooksイベントにサブスクライブします。HTTPS宛先URLとイベントタイプが必要です。サブスクリプションIDを返します。
DELETE/hooks/{id}サブスクリプションIDによってイベントのサブスクリプションを解除します。

イベントタイプ

EventDescription
view.created実際の人物が共有ドキュメントを閲覧しました。ボットトラフィック(メールセキュリティスキャナー、クローラー)は自動的にフィルタリングされます。
decision.made見込み客が提案に回答しました。承認、拒否、または変更要求を通知します。
email_captured閲覧者がゲートコンテンツにアクセスするためにメールアドレスを入力しました。

ペイロードの例

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"
  }
}

ビューとイベント

最近のエンゲージメントデータを取得するためのポーリングエンドポイントです。webhookがリアルタイムで配信するものと同じデータを返すため、バックフィル、テスト、フォールバックに利用できます。

GET/views最新のドキュメント閲覧100件をリストします。ボットセッションは除外されます。
GET/decisions最近の提案決定(承認、拒否、変更要求)をリストします。
GET/emailsゲートコンテンツからの最近のメールキャプチャをリストします。

エラー処理

すべてのエラーは、何が問題だったかを示す error フィールドを含むJSONオブジェクトを返します。一部のレスポンスには、PLAN_LIMIT_REACHED、INVALID_FORMAT、FILE_TOO_LARGE のようにプログラムで処理できる code フィールドも含まれます。HTTPステータスコードは一般的な慣例に従います。

StatusMeaning
400リクエスト不正:パラメータが欠落しているか無効です
401未認証:Bearer tokenが無効または期限切れです
403禁止:プランの上限に達しているか、この認証情報の種類ではこのエンドポイントを利用できません
404見つかりません:リソースが存在しないか、チームに属していません
409競合:指定した連絡先、メールアドレス、会社の識別子が一致しません
500サーバーエラー:リクエストを再試行してください

レート制限

チームあたり最大50件のアクティブなwebhookサブスクリプション。APIリクエストにレート制限はありませんが、過度な使用はスロットリングされる場合があります。

このAPIは現在、当社のZapier統合で使用されています。将来的には追加の統合プラットフォームがサポートされる可能性があります。