curl --request POST \
--url https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"interactionDateTime": 123,
"properties": {},
"vid": 123
}
]
}
'import requests
url = "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create"
payload = { "inputs": [
{
"interactionDateTime": 123,
"properties": {},
"vid": 123
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: [{interactionDateTime: 123, properties: {}, vid: 123}]})
};
fetch('https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'interactionDateTime' => 123,
'properties' => [
],
'vid' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"interactionDateTime\": 123,\n \"properties\": {},\n \"vid\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"interactionDateTime\": 123,\n \"properties\": {},\n \"vid\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"interactionDateTime\": 123,\n \"properties\": {},\n \"vid\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"vid": 123
}
],
"startedAt": "2023-11-07T05:31:56Z",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Record attendance by contact ID and HubSpot ID
Records the participation of multiple HubSpot contacts in a Marketing Event using their HubSpot contact IDs.
Additional Functionality:
- Adds a timeline event to the contacts.
Allowed Properties: For the state “attend”:
- joinedAt
- leftAt
curl --request POST \
--url https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"interactionDateTime": 123,
"properties": {},
"vid": 123
}
]
}
'import requests
url = "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create"
payload = { "inputs": [
{
"interactionDateTime": 123,
"properties": {},
"vid": 123
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: [{interactionDateTime: 123, properties: {}, vid: 123}]})
};
fetch('https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'interactionDateTime' => 123,
'properties' => [
],
'vid' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"interactionDateTime\": 123,\n \"properties\": {},\n \"vid\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"interactionDateTime\": 123,\n \"properties\": {},\n \"vid\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/marketing/v3/marketing-events/{objectId}/attendance/{subscriberState}/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"interactionDateTime\": 123,\n \"properties\": {},\n \"vid\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"vid": 123
}
],
"startedAt": "2023-11-07T05:31:56Z",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The internal id of the marketing event in HubSpot.
The attendance state value. It may be 'register', 'attend' or 'cancel'
Body
List of HubSpot contacts to subscribe to the marketing event
Show child attributes
Show child attributes
Response
successful operation
Timestamp that represents when the request finished processing
Show child attributes
Show child attributes
Timestamp that represents when the request started processing
The status of the request processing
CANCELED, COMPLETE, PENDING, PROCESSING Show child attributes
Show child attributes
Result of the request
Show child attributes
Show child attributes
The number of errors that occurred during the processing
Timestamp that represents when the request was made
Was this page helpful?