{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/zoominfo/main/json-schema/zoominfo-pulses-list-response-schema.json", "title": "PulsesListResponse", "description": "Response containing a page of the authenticated user's active pulses.", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/zoominfo-pulses-api-openapi.yml#/components/schemas/PulsesListResponse", "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "items": { "$ref": "#/$defs/Pulse" }, "description": "The primary data of the document" }, "meta": { "allOf": [ { "$ref": "#/$defs/PagingMeta" } ], "description": "Non-standard meta information about the document" }, "links": { "allOf": [ { "$ref": "#/$defs/PagingLinks" } ], "description": "Links related to the primary data" } }, "$defs": { "PagingLinks": { "type": "object", "properties": { "first": { "type": "string", "format": "uri", "description": "A link to the first page of data" }, "last": { "type": "string", "format": "uri", "description": "A link to the last page of data" }, "prev": { "type": "string", "format": "uri", "description": "A link to the previous page of data" }, "next": { "type": "string", "format": "uri", "description": "A link to the next page of data" } }, "description": "Links describing the available paging options." }, "PagingMeta": { "type": "object", "required": [ "page", "pageSize", "totalCount" ], "properties": { "page": { "type": "integer", "format": "uint32", "description": "The current page of results being returned." }, "pageSize": { "type": "integer", "format": "uint32", "description": "The page size as specified by the request." }, "totalCount": { "type": "integer", "format": "uint32", "description": "The total count of results within the current search parameters." } }, "description": "Metadata for the current page of results." }, "Pulse": { "type": "object", "required": [ "id", "type", "attributes" ], "properties": { "id": { "type": "string", "description": "The unique identifier for the resource" }, "type": { "type": "string", "description": "The type of the resource", "default": "Pulse", "pattern": "Pulse" }, "attributes": { "allOf": [ { "$ref": "#/$defs/PulseAttributes" } ], "description": "The attributes defining the resource" }, "meta": { "allOf": [ { "$ref": "#/$defs/PulseMeta" } ], "description": "Non-standard meta information about the resource" } }, "description": "A pulse delivered to the authenticated user." }, "PulseAttributes": { "type": "object", "required": [ "title", "priority", "category", "pulseType" ], "properties": { "title": { "type": "string", "maxLength": 256, "description": "Display title of the pulse." }, "priority": { "allOf": [ { "$ref": "#/$defs/PulsePriority" } ], "description": "Priority level assigned to the pulse." }, "category": { "allOf": [ { "$ref": "#/$defs/PulseCategory" } ], "description": "Category the pulse belongs to." }, "pulseType": { "allOf": [ { "$ref": "#/$defs/PulseType" } ], "description": "Type of pulse content." }, "signalType": { "allOf": [ { "$ref": "#/$defs/PulseSignalType" } ], "description": "Underlying signal that drove the pulse. Present only on signal-derived pulses; absent on task, event, and summary pulses." }, "companies": { "type": "array", "items": { "$ref": "#/$defs/PulseCompanyRef" }, "maxItems": 100, "description": "Companies associated with the pulse. Each entry carries a ZoomInfo company identifier and display name so agents can chain into other ZoomInfo APIs without an additional lookup step. Absent when the pulse has no company associations (for example, a contact-only pulse)." }, "contacts": { "type": "array", "items": { "$ref": "#/$defs/PulseContactRef" }, "maxItems": 100, "description": "Contacts associated with the pulse. Each entry carries a ZoomInfo contact identifier and display name so agents can chain into other ZoomInfo APIs without an additional lookup step. Absent when the pulse has no contact associations (for example, a company-only pulse)." }, "summary": { "type": "string", "maxLength": 4000, "description": "Plain-text summary of the rendered pulse content. Suitable as input to a large language model (LLM). Absent when the content block fails to render or contains no extractable text." }, "context": { "type": "string", "maxLength": 2000, "description": "LLM-generated natural-language context explaining why this pulse is relevant to the authenticated user. Non-deterministic: the wording, length, and emphasis can change across invocations and across underlying model versions. Treat the field as opaque context, not as a stable contract for downstream parsing." } }, "description": "Lightweight view of a pulse optimized for consumption by large language models (LLMs). Omits content blocks, recipients, data sources, and calls to action (CTAs) in favor of typed identity references for associated companies and contacts plus an LLM-generated relevance explanation." }, "PulseCategory": { "type": "string", "enum": [ "FINANCIAL", "PEOPLE", "ACTIVITY", "COMPETITIVE", "INITIATIVE", "ENGAGEMENT", "PLAY", "OTHER" ], "description": "Top-level category a pulse belongs to.", "x-enumDescriptions": { "FINANCIAL": "Funding, earnings, M&A, and budget-related signals.", "PEOPLE": "Hires, departures, role changes, and leadership moves.", "ACTIVITY": "Website activity, form intent signals, and engagement trends.", "COMPETITIVE": "Competitor actions, market positioning, and win/loss signals.", "INITIATIVE": "Strategic programs, transformations, and internal priorities.", "ENGAGEMENT": "Meetings, calls, and other direct engagement themes.", "PLAY": "Pulse originating from a GTM Studio play.", "OTHER": "Uncategorized pulse." } }, "PulseCompanyRef": { "type": "object", "required": [ "id", "name" ], "properties": { "id": { "type": "integer", "format": "int64", "description": "ZoomInfo company identifier." }, "name": { "type": "string", "maxLength": 256, "description": "Display name of the company." } }, "description": "Identity of a company associated with a pulse. The `id` is a ZoomInfo company identifier and can be passed to other ZoomInfo APIs (for example the Data API enrichment endpoints)." }, "PulseContactRef": { "type": "object", "required": [ "id", "name" ], "properties": { "id": { "type": "integer", "format": "int64", "description": "ZoomInfo contact identifier." }, "name": { "type": "string", "maxLength": 256, "description": "Display name of the contact." } }, "description": "Identity of a contact associated with a pulse. The `id` is a ZoomInfo contact identifier and can be passed to other ZoomInfo APIs." }, "PulseMeta": { "type": "object", "required": [ "createdAt" ], "properties": { "createdAt": { "type": "string", "format": "date-time", "description": "Time at which the pulse was created." }, "expiresAt": { "type": "string", "format": "date-time", "description": "Time at which the pulse expires. Absent when the pulse has no expiration." } }, "description": "System-managed metadata for a pulse." }, "PulsePriority": { "type": "string", "enum": [ "HIGH", "MEDIUM", "LOW" ], "description": "Priority level of a pulse.", "x-enumDescriptions": { "HIGH": "Highest urgency. Surface and act on these first.", "MEDIUM": "Standard urgency.", "LOW": "Lowest urgency. Informational; defer if higher-priority work is available." } }, "PulseSignalType": { "type": "string", "enum": [ "CONTACT_NEW_HIRES", "CONTACT_PROMOTIONS", "CONTACT_DEPARTURES", "UPCOMING_MEETING", "WEBSITE_VISITOR", "COMPETITOR_INTENT", "WEBSITE_SPIKES", "FORM_COMPLETE", "WEBSITE_VISITS", "COMPANY_FUNDING", "HIRING", "ANOMALOUS_HIRING", "EARNINGS", "INITIAL_PUBLIC_OFFERING", "LAYOFFS", "G2_TRUST_RADIUS", "PODCAST_MENTIONS", "PERSON_BASED_NEWS", "BUYING_INTENT_SPIKE", "TECHNOLOGY_ADDED" ], "description": "Underlying signal that drove the pulse. New signal types are introduced by adding values to this enum; consumers should accept additive enum changes without treating them as a breaking schema change.", "x-enumDescriptions": { "CONTACT_NEW_HIRES": "A contact at a target account has joined a new role.", "CONTACT_PROMOTIONS": "A contact at a target account has been promoted.", "CONTACT_DEPARTURES": "A contact at a target account has left the company.", "UPCOMING_MEETING": "A meeting with a contact at a target account is upcoming.", "WEBSITE_VISITOR": "A known contact visited the customer's website.", "COMPETITOR_INTENT": "Intent activity indicating research into a competitor.", "WEBSITE_SPIKES": "A spike in website traffic from a target account.", "FORM_COMPLETE": "A contact at a target account completed a form on the customer's site.", "WEBSITE_VISITS": "Website visits attributable to a target account (company-level).", "COMPANY_FUNDING": "A target account raised a new round of funding.", "HIRING": "A target account is hiring at a notable rate.", "ANOMALOUS_HIRING": "A target account is hiring well outside its historical rate.", "EARNINGS": "A target account published an earnings report or financial update.", "INITIAL_PUBLIC_OFFERING": "A target account had an initial public offering.", "LAYOFFS": "A target account announced layoffs.", "G2_TRUST_RADIUS": "Activity on G2 or TrustRadius for the customer's product or competitors.", "PODCAST_MENTIONS": "A target account or its contacts were mentioned on a podcast.", "PERSON_BASED_NEWS": "News mentioning a specific contact at a target account.", "BUYING_INTENT_SPIKE": "Account-level intent activity has spiked across buying topics.", "TECHNOLOGY_ADDED": "A target account added a new technology to its stack." } }, "PulseType": { "type": "string", "enum": [ "INSIGHT", "TASK", "EVENT", "SUMMARY" ], "description": "Type of pulse content.", "x-enumDescriptions": { "INSIGHT": "Insight or group of insights about a company or contact.", "TASK": "Task assigned to a user.", "EVENT": "Event such as an upcoming meeting.", "SUMMARY": "Generic summary of data (for example, a weekly territory analysis or CRM hygiene digest)." } } } }