---
title: "Record Participants by Email with Marketing Event External Ids"
method: POST
path: "/marketing/marketing-events/2026-09/attendance/{externalEventId}/{subscriberState}/email-create"
tags: ["Event Attendees"]
---

# Record Participants by Email with Marketing Event External Ids

`POST /marketing/marketing-events/2026-09/attendance/{externalEventId}/{subscriberState}/email-create`

## Request

- Base URL: `https://api.hubapi.com`
- URL: `https://api.hubapi.com/marketing/marketing-events/2026-09/attendance/{externalEventId}/{subscriberState}/email-create`
- Auth: OAuth 2
  - Authorization code: `https://app.hubspot.com/oauth/authorize`
  - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `crm.objects.marketing_events.write`

Records the participation of multiple HubSpot contacts in a Marketing Event using their email addresses.

If a contact does not exist, it will be automatically created. The contactProperties field is used exclusively for creating new contacts and will not update properties of existing contacts.

Additional Functionality:
- Adds a timeline event to the contacts.

Allowed Properties:
For the state "attend":
- joinedAt
- leftAt

## Path parameters

- `externalEventId` string, required
- `subscriberState` string, required

## Query parameters

- `externalAccountId` string

## Request body

- BatchInputMarketingEventEmailSubscriber
  - `inputs` MarketingEventEmailSubscriber[], required: List of marketing event details to create or update
    - `contactProperties` object, required: The key-value set that contains properties of the contact.
    - `email` string, required: The email address of the contact in HubSpot to associate with the event.
    - `interactionDateTime` integer, required: Timestamp in milliseconds at which the contact subscribed to the event.
    - `properties` object, required: The key-value set that contains properties of the marketing event.

## Response `200`

successful operation

- BatchResponseSubscriberEmailResponse
  - `completedAt` string, date-time, required: Timestamp that represents when the request finished processing
  - `errors` StandardError[]: An array of errors encountered during the batch operation, each providing details about the error.
    - `category` string, required: The category of the error
    - `context` object, required: The object that contains details of the errors
    - `errors` ErrorDetail[], required: An array of ErrorDetail objects providing further information about the error.
      - `code` string: The status code associated with the error detail
      - `context` object: Context about the error condition
      - `in` string: The name of the field or parameter in which the error was found.
      - `message` string, required: A human readable message describing the error along with remediation steps where appropriate
      - `subCategory` string: A specific category that contains more specific detail about the error
    - `id` string: The ID of the request
    - `links` object, required: Results of the request
    - `message` string, required: A human readable message describing the error along with remediation steps where appropriate
    - `status` string, required: Status of the response
    - `subCategory` object: The Sub-category of the error
  - `links` object: Result of the request
  - `numErrors` integer: The number of errors that occurred during the processing
  - `requestedAt` string, date-time: Timestamp that represents when the request was made
  - `results` SubscriberEmailResponse[], required: An array of results from the batch operation, each containing details about a subscriber email response.
    - `email` string, required: The email of the contact
    - `vid` integer, required: The internal ID of the contact
  - `startedAt` string, date-time, required: Timestamp that represents when the request started processing
  - `status` 'CANCELED' | 'COMPLETE' | 'PENDING' | 'PROCESSING', required: The status of the request processing

## Other responses

- `default`: An error occurred.

## Changes

- **2026-09-03** (2026-09) `e62ad9a49a20`: 1 breaking, 1 info
  - the `results/items/vid` response's property format changed from `int32` to `int64` for status `200`
  - the endpoint scheme security `private_apps` was removed from the API

[Operation history](https://skmtc.dev/hubspot/apis/marketing-marketing-events/changes/marketing/marketing-events/2026-09/attendance/:externalEventId/:subscriberState/email-create/post.md)

---

[API](https://skmtc.dev/hubspot/apis/marketing-marketing-events.md) - [All operations](https://skmtc.dev/hubspot/apis/marketing-marketing-events/llms.txt) - [OpenAPI document](https://skmtc.dev/hubspot/apis/marketing-marketing-events/revisions/3afcf69ad1b4?raw)
