最終更新日: 2025年10月8日
Run in Postman
この記事では、以下の内容について説明します。
- スコープの要件
 - 内部IDエンドポイントと外部IDエンドポイントの相違点
 - イベント管理エンドポイント
 - イベント参加エンドポイント
 - 参加者状態エンドポイント
 - リストの関連付けエンドポイント
 - アプリ設定の構成
 
スコープの要件
いずれかのマーケティング イベント エンドポイントにAPIリクエストを送信するには、次のスコープが必要です。crm.objects.marketing_events.read:マーケティングイベントおよび参加データを取得する権限を付与します。crm.objects.marketing_events.write:マーケティングイベント情報を作成、削除、変更する権限を付与します。
内部IDエンドポイントと外部IDエンドポイントの相違点
以下に示す多くのエンドポイントでは、フェッチ(取得)または更新するイベントを識別する2つの異なる方法を提供しています。類似したエンドポイントの最終結果は同じである可能性がありますが、主に指定する関連IDが異なります。- 外部IDを使用するエンドポイント: 
externalEventIdパラメーターとexternalAccountIdパラメーターを必要とするエンドポイントは、イベントを最初に作成した同じアプリでのみ機能します。例えば、アプリAとアプリBという2つの公開アプリを作成し、アプリAに関連付けられた認証とIDを使用してマーケティングイベントを作成した場合、アプリAのみがイベントの読み取り、更新、または新しい参加者の追加を行うことができます。* __ __ __ *同じexternalEventIdとexternalAccountIdを使用して、アプリBで同じイベントにアクセスしようとすると、404エラーが返されます。_ _ - objectIdを使用するエンドポイント: 
objectIdを必要とするエンドポイントを使用すると、イベントを最初に作成したアプリに関係なく、上記のセクションに記載されている関連スコープを持つ任意のアプリからイベントにアクセスできます。アプリAがマーケティングイベントを作成した場合、アプリBは引き続きobjectIdベースのエンドポイントを介して参加者の読み取り、更新、または追加を行うことができます。_ __ _ 
イベント管理エンドポイント
次のセクションでは、一般的なイベントプロパティーに関するコンテキストを提供し、さまざまなイベント管理エンドポイントを使用してイベントを作成、読み取り、更新、およびアーカイブする方法について詳しく説明します。イベントプロパティー
イベント管理エンドポイントの使用時に、フェッチおよび更新できるプロパティーを以下に示します。| パラメーター | 型 | 説明 | 
|---|---|---|
eventName | 文字列 | イベントのタイトル。 | 
eventType | 文字列 | イベントのタイプ(ウェビナー、展示会など)。 | 
eventOrganizer | 文字列 | イベントを主催する個人または組織。 | 
eventDescription | 文字列 | イベントの説明。 | 
eventUrl | 文字列 | ユーザーが詳細を確認したり、イベントに登録したりできるURL。 | 
eventCancelled | ブール値 | イベントがキャンセルされるかどうかを表す値。 | 
eventStartTime | 文字列 | イベントの開始時刻を示すISO 8601形式のタイムスタンプ。 | 
eventEndTime | 文字列 | イベントの終了時刻を示すISO 8601形式のタイムスタンプ。 | 
イベントを作成する
マーケティングイベントを作成するには、/marketing/v3/marketing-events/eventsにPOSTリクエストを送信して、リクエストの本文にeventName、externalEventId、externalAccountId、eventOrganizerを指定します。必要に応じて、[上記の表](#イベントプロパティー
)に記載されている追加のプロパティーをリクエストに指定できます。
例えば、アプリのexternalAccountIdが"12345"で、アプリ内のイベントのexternalEventIdが"67890"の場合、次のようなリクエストで"Winter webinar"という名前の新しいイベントを作成できます。
外部IDを使用したイベントプロパティーを更新する
/marketing/v3/marketing-events/events/upsertエンドポイントにPOSTリクエストを送信することで、マーケティングイベントを更新できます。任意のcustomProperties、イベントのその他の詳細(イベントの名前、開始時刻、説明など)を含めることができます。
リクエストで指定されたIDを持つマーケティングイベントが既に存在する場合、そのマーケティングイベントが更新されます。存在しない場合は、新しいイベントが作成されます。
例えば、次のリクエストは、「Virtual cooking class」という名前で、IDが4のイベントを作成します。
objectIdを使用してイベントプロパティーを更新する
イベントが作成されたら、/marketing/v3/marketing-events/{objectId}にPATCHリクエストを送信して、そのプロパティーを更新できます。
- 特定のマーケティングイベントの
objectIdを取得するには、ナレッジベース記事の手順に従ってHubSpotアカウント上のイベントの詳細を表示し、レコードIDフィールドの下にあるIDを見つけます。_ _イベントが正常に作成されると、レスポンスでobjectIdも返されます。 - 次のセクションで説明する
/marketing/v3/marketing-eventsエンドポイントにGETリクエストを送信することもできます。 - イベントの
externalEventIdが分かっている場合は、/marketing/v3/marketing-events/{externalEventId}/identifiersへのGETリクエストを送信する際に、そのパスとして含めることができます。レスポンスには、全てのマーケティングイベントと各イベントに関連付けられたID(イベントのobjectId、appInfo、marketingEventName、externalAccountIdなど)が含まれます。 
イベントの詳細を取得する
全てのマーケティングイベントとそのプロパティーのリストを取得するには、/marketing/v3/marketing-eventsにGETリクエストを送信します。
HubSpot内のレコードで特定のマーケティングイベントの詳細を取得する必要がある場合は、/marketing/v3/marketing-events/{objectId}へのGETリクエストでIDをobjectIdとして指定できます。_ _
イベントを削除する
マーケティングイベントを削除するには、イベントに関連付けられているobjectIdを使用して、/marketing/v3/marketing-events/{objectId}にDELETEリクエストを送信します。
リクエストが正常に完了すると、204 No Contentレスポンスが返されます。
複数のイベントを一括更新する
複数のマーケティングイベントを一括で更新するには、/marketing-events/v3/marketing-events/batch/updateにPOSTリクエストを送信し、リクエスト本文のinputs配列内で各イベントについて更新するプロパティーを指定します。
例えば、オブジェクトIDが58237132332と54073507364を持つ2つのマーケティングイベントの複数のプロパティーを1つのリクエストで更新する場合、リクエストの本文は次のようになります。
イベント参加エンドポイント
イベント参加状態エンドポイントを使用すると、イベントに登録したか、出席したか、登録をキャンセルしたかなど、コンタクトの登録アクティビティーを記録できます。例えば、このエンドポイントを使用して、HubSpotのコンタクトがマーケティングイベントに登録したことを記録できます。イベントのobjectIdを使用して参加状態を更新する
マーケティングイベントのobjectIdを使用する場合は、参加状態を記録するコンタクトの コンタクトIDを使用するか、Eメールアドレスを使用できます。
- コンタクトのIDを使用するには、POSTリクエストを
/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/createに送信し、リクエスト本文のinputs配列内のvidフィールドを使用してコンタクトのIDを指定します。例えば、次のリクエスト本文は、IDが47733471576のコンタクトの出席データを更新し、joinedAtとleftAtプロパティーを介して出席者がイベントに参加および退出した時間を指定する例を示しています。 
- コンタクトのEメールを使用するには、POSTリクエストを
/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/email-createに送信し、リクエスト本文のinputs配列内のemailフィールドを使用してコンタクトのEメールを指定します。- 新しいコンタクトを作成する場合は、リクエスト本文の
inputs配列にcontactPropertiesフィールドを含めることにより、関連付ける任意のプロパティーを新規作成されたコンタクトに設定することができます。それ以外の場合、コンタクトが既に存在する場合は、リクエストで指定されているcontactPropertiesは更新されません 。 - 例えば、次のリクエスト本文は、Eメールアドレスが
john@example.comのコンタクトの参加データを更新し、inputs配列のpropertiesオブジェクト内のjoinedAtフィールドとleftAtフィールドを使用して、出席者がイベントに参加および退出した時間を指定する例を示しています。 
 - 新しいコンタクトを作成する場合は、リクエスト本文の
 
objectId:HubSpotアカウントのマーケティングイベントのレコードID。_ _イベントのobjectIdの使用と外部IDの使用の詳細については、前述のセクションをご確認ください。subscriberState:コンタクトの新しい参加ステータスと一致する以下の列挙値。REGISTERED:HubSpotコンタクトがイベントに登録したことを示します。ATTENDED:HubSpotコンタクトがイベントに出席したことを示します。コンタクトのステータスをATTENDEDに更新する場合は、リクエスト本文のパラメーターとして、ISO 8601インスタント形式で指定したjoinedAtおよびleftAtタイムスタンプを含めることもできます。CANCELLED:以前イベントに登録したHubSpotコンタクトが登録をキャンセルしたことを示します。
イベントの外部IDを使用して参加情報を更新する
注:
以前に/upsertまたは/email-upsertエンドポイントを使用して出席者のステータスを更新していた場合は、代わりに以下に示す代替エンドポイントを使用できます。ただし、上記のイベント出席エンドポイントと比較すると、これらのエンドポイントを使用しても、次のサポートは提供されません。- 新しいコンタクトがまだ存在しない場合、コンタクトを新規作成する
 - コンタクトのレコードページでタイムラインイベントを表示する
 joinedAtまたはleftAtプロパティーを指定する- リクエストが正常に完了した際に詳細なレスポンスを提供する
 
externalEventIdを必要とするエンドポイントを使用する場合は、既存のコンタクトコンタクトIDまたはEメールアドレスのいずれかを使用できます。
- 既存のコンタクトのコンタクトIDを使用する場合:
- 外部アプリケーションのイベントのIDを
externalEventIdとして使用し、/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/createにPOSTリクエストを送信します。 - リクエスト本文で、次のフィールドを含む
inputsオブジェクトを指定します。interactionDateTime:コンタクトがイベントに登録した日時。vid:既存のコンタクトのコンタクトID。
 
 - 外部アプリケーションのイベントのIDを
 - イベント参加者の1人のEメールアドレスを使用する場合:
POSTリクエストを/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-createに送信します。- リクエスト本文で、次のフィールドを含む
inputsオブジェクトを指定します。interactionDateTime:コンタクトがイベントに登録した日時。email:inputs内のemailフィールドの値として指定する、参加者のEメールアドレス
 - 指定したEメールアドレスが既存のコンタクトのアドレスと一致しない場合は、新しいコンタクトが作成されます。
 
 
externalEventId:マーケティングイベントのID。イベントのobjectIdの使用と外部IDの使用の詳細については、 前述のセクションをご覧ください。subscriberState:コンタクトの新しい参加ステータスと一致する以下の列挙値。REGISTERED:HubSpotコンタクトがイベントに登録したことを示します。ATTENDED:HubSpotコンタクトがイベントに出席したことを示します。コンタクトのステータスをATTENDEDに更新する場合は、リクエスト本文のパラメーターとして、ISO 8601インスタント形式で指定したjoinedAtおよびleftAtタイムスタンプを含めることもできます。CANCELLED:以前イベントに登録したHubSpotコンタクトが登録をキャンセルしたことを示します。
注:
これらのAPIは、コンタクトのIDとイベントのinteractionDateTime値が変更されていない限り、べき等性があります。これにより、重複したイベントがマーケティング イベント プロパティーにHubSpotによって作成されることなく、参加状態を複数回安全に設定できます。参加者状態エンドポイント
参加エンドポイントを使用して、マーケティングイベントのイベント参加者データを取得します。特定のイベントの集計指標などのデータや、特定のコンタクトまたはイベントの参加者データをクエリーできます。 以下で利用可能な参加エンドポイントを確認してください。各エンドポイントで使用できる全パラメーターの一覧は、リファレンスドキュメントでご参照いただけます。注:
ご使用のHubSpotアカウントのマーケティングイベントページに表示されるアクティビティー数は、参加カウンターAPIエンドポイントで取得できる、対応する集計指標と異なる場合があります。例えば、参加者がイベントに登録してからキャンセルした後で、同じイベントに再登録した場合、ご使用のアカウントのマーケティングイベントUIに表示される合計数には、これらのアクティビティー全てが含められます。以下の参加者状態エンドポイントを使用している場合、各測定指標の関連するカウンターには、参加者の現在の状態のみが含められます(例:attended、registered、cancelled、noShows)。特定のコンタクトの参加を読み取る
特定のコンタクトのイベント参加データを取得するには、コンタクトのIDまたはEメールアドレスをcontactIdentifierパスパラメーターとして使用して、GETリクエストを/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdownに送信します。
レスポンスのpropertiesフィールドには、コンタクトのイベント参加の概要が含まれています。
参加内訳データを読み取る
特定のイベントの参加データの内訳を取得するには、自分のexternalAccountIdとイベントのexternalEventIdを使用して、GETリクエストを/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdownに送信します。
参加カウンターを読み取る
イベントの参加集計の概要を取得するには、自分のexternalAccountIdとイベントのexternalEventIdを使用して、GETリクエストを/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}に送信します。
レスポンスには合計参加数が含まれます。
参加内訳データを絞り込む
特定のコンタクトの内訳データまたはイベント参加データを取得するには、リクエストでcontactIdentifier、state、limit、またはafterフィールドをクエリーパラメーターとして使用して、返されるデータを絞り込めます。| クエリーパラメーター | 型 | 説明 | 
|---|---|---|
contactIdentifier | 文字列 | 特定のコンタクトのEメールアドレスまたはID | 
state | 列挙 | イベントの参加状態。使用可能な参加状態は、次の通りです。
  | 
limit | 数値 | 返される結果数の上限を設定します。デフォルトでは、上限は10に設定されています。有効な範囲は1-100です。 | 
after | 数値 | レスポンスの結果間のページングに使用されます。レスポンスデータの前のページに指定されたオフセットを調べて、次に返す結果のインデックスを決定します。 | 
リストの関連付けエンドポイント
下記のセクションで説明するエンドポイントを使用して、リストとマーケティングイベント間の関連付けを管理できます。 これらのエンドポイントの多くでは、パスパラメーターとしてlistIdが必要です。詳細は、HubSpotアカウントのリストの詳細ページで確認できます。
- HubSpotアカウントで、[CRM]>[リスト]に移動します**。 **** **
 - リストの名前をクリックします。
 - 右上の[詳細]をクリックします**。 **
 - 右側のパネルで[API連携のリストID]の下にリストIDが表示されます。_ _[リストIDをコピー]をクリックすると、IDをクリップボードにコピーできます**。 **
 

- HubSpotアカウントで、[CRM]>[コンタクト]に移動します**。 **** **
 - 左上の[コンタクト]をクリックし、ドロップダウンメニューから[マーケティングイベント]を選択します**。 **** **
 - マーケティングイベントの名前をクリックします。
 - [パフォーマンス]タブで、[リスト]をクリックしてセクションを展開し、[関連付け]タブから追加したリストをクリックします。_ _** **
 

マーケティングイベントIDを使用してリストの関連付けを作成する
マーケティングイベントと既存のリストの間に新しい関連付けを作成するには、PUTリクエストを/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}に送信します。
リクエストが正常に完了すると、204 No contentレスポンスが返されます。
外部イベントIDとアカウントIDを使用してリストの関連付けを作成する
外部アカウントIDと外部イベントIDを使用して、マーケティングイベントと既存のリストの間に新しい関連付けを作成するには、PUTリクエストを/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}に送信します。
リクエストが正常に完了すると、204 No contentレスポンスが返されます。
マーケティングイベントIDを使用してマーケティングイベントに関連付けられたリストを取得する
マーケティングイベントに関連付けられている全てのリストを取得するには、/marketing/v3/marketing-events/associations/{marketingEventId}/listsにGETリクエストを送信します。
レスポンスは次のようになります。
外部イベントIDとアカウントIDを使用してイベントに関連付けられたリストを取得する
また、外部アカウントIDと外部イベントIDを使用してマーケティングイベントに関連付けられたリストを取得し、GETリクエストを/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/listsに送信することもできます。
マーケティングイベントIDを使用してリストの関連付けを削除する
マーケティングイベントIDを使用してマーケティングイベントのリスト関連付けを削除するには、DELETEリクエストを/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}に送信します。
リクエストが正常に完了すると、204 No contentレスポンスが返されます。
外部イベントIDとアカウントIDを使用してリストの関連付けを削除する
外部アカウントIDと外部イベントIDを使用してマーケティングイベントのリストの関連付けを削除するには、DELETEリクエストを/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}に送信します。
リクエストが正常に完了すると、204 No contentレスポンスが返されます。
アプリ設定を構成する
マーケティングイベントがHubSpotと適切に同期するためには、いくつかの設定が必要です。 HubSpotに参加状態の変更(登録やキャンセルなど)を送信すると、HubSpotはまず、指定されたイベントIDに対応するマーケティングイベントが存在するかどうかを確認します。存在しない場合、HubSpotはアプリに設定されたエンドポイントを呼び出してマーケティングイベントの詳細を取得し、HubSpotでイベントを作成してから、参加状態の変更を公開します。 これは利便性を目的に提供されている機能ですが、HubSpotでマーケティングイベントを作成するこの機能には依存せず、リファレンスドキュメントに記載されているCRUDメソッドを使用して、マーケティングイベントを自分で作成することをお勧めします。ステップ1:アプリでAPIを作成する
マーケティングイベントをサポートするためにHubSpotでは、マーケティングイベントを使用する各アプリでAPIを定義し、特定のマーケティングイベントに関する情報を取得することを要件としています。 要件:- 許容値:
externalAccountId:外部アプリの顧客のaccountIdを指定するクエリーパラメーター。appId:イベントの詳細をリクエストしているHubSpotアプリケーションのIDを指定するクエリーパラメーター。これはアプリのIDになります。externalEventId:HubSpotが詳細な情報をリクエストしている外部アプリのイベントのIDを指定する、リクエストのURL内のパスパラメーター。
 - 戻り値:
- マーケティングイベントの詳細を提供するJSONオブジェクト。以下の表で詳しく説明しているフィールドを含みます。
 
 
eventName        | true  | 文字列               | マーケティングイベントの名前。                                                    |
| eventOrganizer   | true  | 文字列               | マーケティングイベントの主催者の名前。                                            |
| eventType        | false | 文字列               | このイベントのタイプを説明します。WEBINAR、CONFERENCE、WORKSHOP             | など。           |
| startDateTime    | false | 文字列(date-time) | マーケティングイベントの終了日時。                                                |
| eventDescription | false | 文字列               | マーケティングイベントの説明。                                                    |
| eventUrl         | false | 文字列               | 外部イベントアプリケーションでマーケティングイベントが存在するURL。               |
| eventCancelled   | false | ブール値             | マーケティングイベントがキャンセルされたかどうかを示します。デフォルトではfalse | に設定されます。 |
HubSpotはX-HubSpot-Signature-v3ヘッダーも送信します。これは、リクエストがHubSpotから送信されたことを確認するために使用できます。署名の詳細とその検証方法については、リクエスト署名を参照してください。
ステップ2:HubSpotにAPIへのURLパスを提供する
特定のマーケティングイベントの詳細を提供するオブジェクトを返すAPIをアプリで作成したので、次は/marketing/v3/marketing-events/{appId}/settingsにPOSTリクエストを送信して、HubSpotにAPIへのURLパスを提供する必要があります。これにより、HubSpotはアプリにリクエストを送信してマーケティングイベントの詳細を取得する方法を決定できます。
POSTリクエストの本文で、eventDetailsURLフィールドを使用してURLを指定します。eventDetailsURLは次の2つの要件を満たす必要があります。
%s文字列を含んでいること。HubSpotはこの文字列をパスパラメーターとして使用し、イベントのID(externalEventId)に代入します。https://プレフィックスとドメイン名(例:my.event.app)を含む、APIリソースへのフルパスであること。
https://my.event.app/events/%sのeventDetailsURLを設定し、IDが1234-event-XYZのイベントの詳細を取得するリクエストを送信する必要がある場合、HubSpotアプリのIDがapp-101で、アカウントのIDがABC-account-789だとすると、HubSpotは次のURLにGETリクエストを送信します。
https://my.event.app/events/1234-event-XYZ?appId=app-101&externalAccountId=ABC-account-789