---
title: "Upsert Content Interactions"
method: POST
path: "/platform/v1/engagements/content-interactions"
tags: ["Engagements"]
---

# Upsert Content Interactions

`POST /platform/v1/engagements/content-interactions`

## Request

- Base URL: `https://api.zoominfo.com/gtm`
- URL: `https://api.zoominfo.com/gtm/platform/v1/engagements/content-interactions`
- Auth: OAuth 2
  - Authorization code: `https://login.zoominfo.com`
  - Token URL: `https://okta-login.zoominfo.com/oauth2/default/v1/token` scopes: `api:gtm-data-model:manage`

Create or update content interaction engagement records

## Request body

- ContentInteractionUpsertRequest: Model for creating multiple content interaction engagements
  - `data` ContentInteractionCreateItem[], required: The primary data of the document
    - `type` string, required: The type of the resource
    - `attributes` ContentInteractionAttributes, required: Content interaction engagement record attributes
      - `engagementId` string, required: Unique content interaction identifier
      - `instanceId` string, required: Unique identifier of the customer's organization/tenant/instance in the external platform where the data originated (e.g. unique CRM Organization Id)
      - `instanceUrl` string: Unique URL of the customer's organization/tenant/instance in the external platform where the data originated (e.g. unique CRM Organization Url)
      - `duration` integer: Length of interaction in seconds (if applicable)
      - `interactionProvider` string: Name of the system where the interaction data originated
      - `channel` 'Website' | 'Email', required
      - `interactionDetails` object: Include all attributes for this interaction that do not fit into the ContentInteraction schema (as key-value pairs)
      - `interactionType` 'Click' | 'Save' | 'Send' | 'Sign' | 'Submit' | 'View', required
      - `contentType` 'Demo' | 'Document' | 'Email' | 'Form' | 'Video' | 'Website', required
      - `actionPerformedAt` string, required: Timestamp when the interaction started (if duration is present, this is the start time)
      - `endedAt` string: Timestamp when the interaction ended (can be calculated from actionPerformedAt + duration if not explicitly provided)
      - `targetUrl` string: Target URL
      - `targetName` string: Target name
      - `status` 'Completed', required
      - `participant` ParticipantAttributes, required: Participant model with common properties.
        - `participantId` string: Unique participant identifier
        - `email` string: Email address
        - `phoneNumber` string: Phone number
        - `ipAddress` string: IP address
        - `name` string: Full name
        - `firstName` string: First name
        - `lastName` string: Last name
        - `title` string: Job title
        - `seniority` string: Seniority level
        - `companyDomain` string, required: Company domain
        - `companyName` string: Company name
        - `ziPersonId` string: ZoomInfo person ID
        - `ziCompanyId` string: ZoomInfo company ID

## Response `201`

Created

- ContentInteractionUpsertResponse: Response model for content interaction engagement upsert operations
  - `data` ContentInteraction[], required: The primary data of the document
    - `id` string, required: The unique identifier for the resource
    - `type` string, required: The type of the resource
    - `attributes` ContentInteractionAttributes, required: Content interaction engagement record attributes
      - `engagementId` string, required: Unique content interaction identifier
      - `instanceId` string, required: Unique identifier of the customer's organization/tenant/instance in the external platform where the data originated (e.g. unique CRM Organization Id)
      - `instanceUrl` string: Unique URL of the customer's organization/tenant/instance in the external platform where the data originated (e.g. unique CRM Organization Url)
      - `duration` integer: Length of interaction in seconds (if applicable)
      - `interactionProvider` string: Name of the system where the interaction data originated
      - `channel` 'Website' | 'Email', required
      - `interactionDetails` object: Include all attributes for this interaction that do not fit into the ContentInteraction schema (as key-value pairs)
      - `interactionType` 'Click' | 'Save' | 'Send' | 'Sign' | 'Submit' | 'View', required
      - `contentType` 'Demo' | 'Document' | 'Email' | 'Form' | 'Video' | 'Website', required
      - `actionPerformedAt` string, required: Timestamp when the interaction started (if duration is present, this is the start time)
      - `endedAt` string: Timestamp when the interaction ended (can be calculated from actionPerformedAt + duration if not explicitly provided)
      - `targetUrl` string: Target URL
      - `targetName` string: Target name
      - `status` 'Completed', required
      - `participant` ParticipantAttributes, required: Participant model with common properties.
        - `participantId` string: Unique participant identifier
        - `email` string: Email address
        - `phoneNumber` string: Phone number
        - `ipAddress` string: IP address
        - `name` string: Full name
        - `firstName` string: First name
        - `lastName` string: Last name
        - `title` string: Job title
        - `seniority` string: Seniority level
        - `companyDomain` string, required: Company domain
        - `companyName` string: Company name
        - `ziPersonId` string: ZoomInfo person ID
        - `ziCompanyId` string: ZoomInfo company ID
  - `meta` UpsertResponseMeta: API response meta information for upsert operations
    - `timestamp` string, required: Response timestamp
    - `processingTime` integer, required: Processing time in milliseconds
    - `recordsProcessed` integer, required: Number of records processed
    - `recordsSuccessful` integer, required: Number of records successfully processed
    - `recordsFailed` integer, required: Number of records that failed processing

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests

---

[API](https://skmtc.dev/zoominfo/apis/platform-api-v1.md) - [All operations](https://skmtc.dev/zoominfo/apis/platform-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/zoominfo/apis/platform-api-v1/revisions/3f7645433626?raw)
