{ "openapi" : "3.0.1", "info" : { "title" : "CRM Notetaker Conversation Recap", "description" : "Basepom for all HubSpot Projects", "version" : "2026-09-beta", "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }, "servers" : [ { "url" : "https://api.hubapi.com" } ], "tags" : [ { "name" : "Basic" } ], "paths" : { "/notetaker/2026-09-beta/conversation/recap/{objectTypeId}/{objectId}" : { "get" : { "tags" : [ "Basic" ], "summary" : "Retrieve conversation recap data", "description" : "Retrieve a recap of a conversation based on the specified object type and object ID. This endpoint provides a summary and action items related to the conversation, which can be useful for reviewing key points and follow-up tasks.", "operationId" : "get-/notetaker/2026-09-beta/conversation/recap/{objectTypeId}/{objectId}", "parameters" : [ { "name" : "objectId", "in" : "path", "description" : "The unique identifier of the object for which the conversation recap is being retrieved. This is a required integer parameter.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } }, { "name" : "objectTypeId", "in" : "path", "description" : "The type of the object for which the conversation recap is being retrieved. This is a required string parameter.", "required" : true, "style" : "simple", "explode" : false, "schema" : { "type" : "string", "example" : null } } ], "responses" : { "200" : { "description" : "successful operation", "content" : { "application/json" : { "schema" : { "$ref" : "#/components/schemas/ConversationRecapResponse" }, "example" : null } } }, "default" : { "description" : "", "$ref" : "#/components/responses/Error" } }, "security" : [ { "oauth2" : [ "crm.objects.contacts.highly_sensitive.read.v2" ] }, { "oauth2" : [ "crm.objects.contacts.sensitive.read.v2" ] }, { "oauth2" : [ "crm.schemas.contacts.read" ] }, { "oauth2" : [ "crm.objects.contacts.read" ] } ] } } }, "components" : { "schemas" : { "ActionItem" : { "required" : [ "title" ], "type" : "object", "properties" : { "assignee" : { "type" : "string", "description" : "A string indicating the individual assigned to the action item. This property is optional.", "example" : null }, "title" : { "type" : "string", "description" : "A string representing the title or main description of the action item. This property is required.", "example" : null } }, "example" : null }, "ConversationRecapActionItemsResult" : { "required" : [ "items", "status" ], "type" : "object", "properties" : { "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "items" : { "type" : "array", "description" : "The list of action items extracted from the conversation. Populated when status is SUCCEEDED; empty otherwise.", "example" : null, "items" : { "$ref" : "#/components/schemas/ActionItem" } }, "status" : { "type" : "string", "description" : "The current state of action item generation. SUCCEEDED — action items are available. NOT_FOUND — no action items have been generated for this engagement. IN_PROGRESS — generation is currently underway. FAILED — an error occurred while retrieving action items.", "example" : null, "enum" : [ "FAILED", "IN_PROGRESS", "NOT_FOUND", "SUCCEEDED" ] } }, "example" : null }, "ConversationRecapCallStatsResult" : { "required" : [ "hasTranscript", "status" ], "type" : "object", "properties" : { "durationMs" : { "type" : "integer", "description" : "The length of the recorded conversation in milliseconds.", "format" : "int64", "example" : null }, "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "hasTranscript" : { "type" : "boolean", "description" : "Whether a transcript for a conversation is found.", "example" : null }, "ownerTalkTimePercentage" : { "type" : "number", "description" : "The percentage of talk-time attributed to the owner participant.", "example" : null }, "status" : { "type" : "string", "description" : "The status of fetching call stats. Either SUCCEEDED, NOT_FOUND, or FAILED.", "example" : null, "enum" : [ "FAILED", "IN_PROGRESS", "NOT_FOUND", "SUCCEEDED" ] } }, "example" : null }, "ConversationRecapNotesResult" : { "required" : [ "status" ], "type" : "object", "properties" : { "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "notes" : { "type" : "string", "description" : "The notes on the conversation object in HTML.", "example" : null }, "status" : { "type" : "string", "description" : "The status of fetching the notes. Either SUCCEEDED, NOT_FOUND, or FAILED.", "example" : null, "enum" : [ "FAILED", "IN_PROGRESS", "NOT_FOUND", "SUCCEEDED" ] } }, "example" : null }, "ConversationRecapParticipantsResult" : { "required" : [ "participants", "status" ], "type" : "object", "properties" : { "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "participants" : { "type" : "array", "description" : "A list of participants.", "example" : null, "items" : { "$ref" : "#/components/schemas/ParticipantInfo" } }, "status" : { "type" : "string", "description" : "The status of fetching participants. Either SUCCEEDED or FAILED.", "example" : null, "enum" : [ "FAILED", "IN_PROGRESS", "NOT_FOUND", "SUCCEEDED" ] } }, "example" : null }, "ConversationRecapQuestionsAskedResult" : { "required" : [ "questionsAndAnswers", "status" ], "type" : "object", "properties" : { "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "questionsAndAnswers" : { "type" : "array", "description" : "A list of question and answer pairs. ", "example" : null, "items" : { "$ref" : "#/components/schemas/QuestionAndAnswer" } }, "status" : { "type" : "string", "description" : "The status of fetching questions and answers. Either FAILED, NOT_FOUND, or SUCCEEDED.", "example" : null, "enum" : [ "FAILED", "IN_PROGRESS", "NOT_FOUND", "SUCCEEDED" ] } }, "example" : null }, "ConversationRecapRecordingUrlResult" : { "required" : [ "status" ], "type" : "object", "properties" : { "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "recordingUrl" : { "type" : "string", "description" : "A temporary URL hosting a recording of a conversation.", "example" : null }, "status" : { "type" : "string", "description" : "The status of creating a URL. Either FAILED, NOT_FOUND, or SUCCEEDED.", "example" : null, "enum" : [ "FAILED", "IN_PROGRESS", "NOT_FOUND", "SUCCEEDED" ] } }, "example" : null }, "ConversationRecapResponse" : { "required" : [ "actionItems", "callStats", "notes", "participants", "questionsAsked", "recordingUrl" ], "type" : "object", "properties" : { "actionItems" : { "$ref" : "#/components/schemas/ConversationRecapActionItemsResult" }, "callStats" : { "$ref" : "#/components/schemas/ConversationRecapCallStatsResult" }, "notes" : { "$ref" : "#/components/schemas/ConversationRecapNotesResult" }, "participants" : { "$ref" : "#/components/schemas/ConversationRecapParticipantsResult" }, "questionsAsked" : { "$ref" : "#/components/schemas/ConversationRecapQuestionsAskedResult" }, "recordingUrl" : { "$ref" : "#/components/schemas/ConversationRecapRecordingUrlResult" }, "summary" : { "$ref" : "#/components/schemas/ConversationRecapSummaryResult" } }, "example" : null }, "ConversationRecapSummaryResult" : { "required" : [ "status" ], "type" : "object", "properties" : { "errorMessage" : { "type" : "string", "description" : "A description of the error that occurred. Only present when status is FAILED.", "example" : null }, "status" : { "type" : "string", "description" : "The current state of summary generation. SUCCEEDED — summary is available. NOT_FOUND — no summary has been generated for this engagement. FAILED — an error occurred while retrieving the summary.", "example" : null, "enum" : [ "FAILED", "NOT_FOUND", "SUCCEEDED" ] }, "value" : { "type" : "string", "description" : "The AI-generated summary text for the conversation. Present when status is SUCCEEDED; absent otherwise.", "example" : null } }, "example" : null }, "Error" : { "required" : [ "category", "correlationId", "message" ], "type" : "object", "properties" : { "category" : { "type" : "string", "description" : "The error category, represented as a string.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "An object providing context about the error condition, where each property is an array of strings.", "example" : "{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}" }, "correlationId" : { "type" : "string", "description" : "A unique identifier for the request, used for tracking and support purposes. It is a string in UUID format.", "format" : "uuid", "example" : "aeb5f871-7f07-4993-9211-075dc63e7cbf" }, "errors" : { "type" : "array", "description" : "An array containing further information about the error, with each item being an ErrorDetail object.", "example" : null, "items" : { "$ref" : "#/components/schemas/ErrorDetail" } }, "links" : { "type" : "object", "additionalProperties" : { "type" : "string", "example" : null }, "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps. Each link is represented as a string.", "example" : null }, "message" : { "type" : "string", "description" : "A human readable message describing the error along with remediation steps where appropriate. It is a string.", "example" : "An error occurred" }, "subCategory" : { "type" : "string", "description" : "A specific category providing more detailed information about the error. It is a string.", "example" : null } }, "description" : "Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered.", "example" : { "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" } } }, "ErrorDetail" : { "required" : [ "message" ], "type" : "object", "properties" : { "code" : { "type" : "string", "description" : "The status code associated with the error detail. This helps identify the type of error that occurred.", "example" : null }, "context" : { "type" : "object", "additionalProperties" : { "type" : "array", "example" : null, "items" : { "type" : "string", "example" : null } }, "description" : "An object providing context about the error condition. It contains additional properties that offer more details, such as missing scopes or other relevant information.", "example" : "{missingScopes=[scope1, scope2]}" }, "in" : { "type" : "string", "description" : "The name of the field or parameter in which the error was found. It provides context about the location of the error.", "example" : null }, "message" : { "type" : "string", "description" : "A human-readable message describing the error along with remediation steps where appropriate. This is a required field.", "example" : null }, "subCategory" : { "type" : "string", "description" : "A specific category that contains more specific detail about the error. It offers further classification of the error.", "example" : null } }, "description" : "Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response.", "example" : null }, "ParticipantInfo" : { "required" : [ "isHost", "name" ], "type" : "object", "properties" : { "email" : { "type" : "string", "description" : "The email address of the participant. Only present when the participant is a HubSpot Contact.", "example" : null }, "isHost" : { "type" : "boolean", "description" : "Whether this participant was the host of the conversation.", "example" : null }, "name" : { "type" : "string", "description" : "The name of the participant. ", "example" : null }, "phoneNumber" : { "type" : "string", "description" : "The phone number of the participant. Only present when the participant is a HubSpot Contact.", "example" : null } }, "example" : null }, "QuestionAndAnswer" : { "required" : [ "question" ], "type" : "object", "properties" : { "answer" : { "$ref" : "#/components/schemas/SpeakerStatement" }, "question" : { "$ref" : "#/components/schemas/SpeakerStatement" } }, "example" : null }, "SpeakerStatement" : { "type" : "object", "properties" : { "speakerName" : { "type" : "string", "description" : "The speaker attributed to this statement.", "example" : null }, "text" : { "type" : "string", "description" : "The time at which this statement occurred.", "example" : null }, "timestampSeconds" : { "type" : "number", "description" : "The time in a recorded conversation at which this statement occurred.", "example" : null } }, "example" : null } }, "responses" : { "Error" : { "description" : "An error occurred.", "content" : { "*/*" : { "schema" : { "$ref" : "#/components/schemas/Error" }, "example" : null } } } }, "securitySchemes" : { "developer_hapikey" : { "type" : "apiKey", "name" : "hapikey", "in" : "query" }, "oauth2" : { "type" : "oauth2", "flows" : { "authorizationCode" : { "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", "scopes" : { "crm.objects.contacts.highly_sensitive.read.v2" : "", "crm.objects.contacts.read" : "", "crm.objects.contacts.sensitive.read.v2" : "", "crm.schemas.contacts.read" : "" } } } }, "private_apps" : { "type" : "apiKey", "name" : "private-app", "in" : "header" }, "private_apps_legacy" : { "type" : "apiKey", "name" : "private-app-legacy", "in" : "header" } } }, "x-hubspot-product-tier-requirements" : { "marketing" : "FREE", "sales" : "FREE", "service" : "FREE", "cms" : "FREE", "commerce" : "FREE", "crmHub" : "FREE", "dataHub" : "FREE" } }