> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.es/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve conversation recap data

> Obtén un resumen de una conversación según el tipo y la ID de objeto especificados. Este punto de terminación proporciona una variedad de datos relacionados con las conversaciones, como el resumen, los elementos de acción, las preguntas formuladas, las estadísticas de llamadas, los participantes y la URL de la grabación.

export const ScopesList = ({scopes = [], description = "Esta API requiere uno de los siguientes ámbitos:"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Productos compatibles",
    description: "Se requiere uno de los siguientes productos o productos de ediciones superiores.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuito",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Enterprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<AccordionGroup>
  <Accordion title="Supported products" defaultOpen="true" icon="cubes">
    <SupportedProducts sales={true} service={true} salesLevel="PROFESSIONAL" serviceLevel="PROFESSIONAL" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'crm.objects.contacts.read'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-09/crm-notetaker-conversation-recap-v2026-09.json GET /notetaker/2026-09/conversation/recap/{objectTypeId}/{objectId}
openapi: 3.0.1
info:
  title: CRM Notetaker Conversation Recap
  description: Basepom for all HubSpot Projects
  version: 2026-09
  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
security: []
tags:
  - name: Basic
paths:
  /notetaker/2026-09/conversation/recap/{objectTypeId}/{objectId}:
    get:
      tags:
        - Basic
      summary: Obtener datos del resumen de la conversación
      description: >-
        Obtén un resumen de una conversación según el tipo y la ID de objeto
        especificados. Este punto de terminación proporciona una variedad de
        datos relacionados con las conversaciones, como el resumen, los
        elementos de acción, las preguntas formuladas, las estadísticas de
        llamadas, los participantes y la URL de la grabación.
      operationId: get-/notetaker/2026-09/conversation/recap/{objectTypeId}/{objectId}
      parameters:
        - name: objectId
          in: path
          description: >-
            El identificador único del objeto para el que se recupera el resumen
            de la conversación. Este es un parámetro entero obligatorio.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: objectTypeId
          in: path
          description: >-
            El tipo de objeto para el que se recupera el resumen de las
            conversaciones. Es un parámetro de cadena obligatorio.
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationRecapResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      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:
    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'
    ConversationRecapActionItemsResult:
      required:
        - items
        - status
      type: object
      properties:
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        items:
          type: array
          description: >-
            La lista de elementos de acción extraídos de la conversación. Se
            completa cuando el estado es SUCCEEDED; de lo contrario, está vacía.
          items:
            $ref: '#/components/schemas/ActionItem'
        status:
          type: string
          description: >-
            El estado actual de la generación de elementos de acción. SUCCEEDED:
            los elementos de acción están disponibles. NOT_FOUND: no se
            generaron elementos de acción para esta interacción. IN_PROGRESS: la
            generación está en curso. FAILED: se produjo un error al recuperar
            los elementos de acción.
          enum:
            - FAILED
            - IN_PROGRESS
            - NOT_FOUND
            - SUCCEEDED
    ConversationRecapCallStatsResult:
      required:
        - hasTranscript
        - status
      type: object
      properties:
        durationMs:
          type: integer
          description: La duración de la conversación grabada en milisegundos.
          format: int64
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        hasTranscript:
          type: boolean
          description: Si se encuentra una transcripción de una conversación.
        ownerTalkTimePercentage:
          type: number
          description: >-
            El porcentaje de tiempo de conversación atribuido al participante
            propietario.
        status:
          type: string
          description: >-
            Estado de la obtención de estadísticas de llamadas: SUCCEEDED,
            NOT_FOUND o FAILED.
          enum:
            - FAILED
            - IN_PROGRESS
            - NOT_FOUND
            - SUCCEEDED
    ConversationRecapNotesResult:
      required:
        - status
      type: object
      properties:
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        notes:
          type: string
          description: Las notas sobre el objeto de la conversación en HTML.
        status:
          type: string
          description: >-
            El estado de la obtención de las notas. Puede ser SUCCEEDED,
            NOT_FOUND o FAILED.
          enum:
            - FAILED
            - IN_PROGRESS
            - NOT_FOUND
            - SUCCEEDED
    ConversationRecapParticipantsResult:
      required:
        - participants
        - status
      type: object
      properties:
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        participants:
          type: array
          description: Una lista de participantes.
          items:
            $ref: '#/components/schemas/ParticipantInfo'
        status:
          type: string
          description: >-
            El estado de la obtención de participantes. Puede ser SUCCEEDED o
            FAILED.
          enum:
            - FAILED
            - IN_PROGRESS
            - NOT_FOUND
            - SUCCEEDED
    ConversationRecapQuestionsAskedResult:
      required:
        - questionsAndAnswers
        - status
      type: object
      properties:
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        questionsAndAnswers:
          type: array
          description: 'Una lista de pares de preguntas y respuestas. '
          items:
            $ref: '#/components/schemas/QuestionAndAnswer'
        status:
          type: string
          description: >-
            El estado de la obtención de preguntas y respuestas. Puede ser
            FAILED, NOT_FOUND o SUCCEEDED.
          enum:
            - FAILED
            - IN_PROGRESS
            - NOT_FOUND
            - SUCCEEDED
    ConversationRecapRecordingUrlResult:
      required:
        - status
      type: object
      properties:
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        recordingUrl:
          type: string
          description: Una URL temporal que aloja una grabación de una conversación.
        status:
          type: string
          description: >-
            El estado de la creación de una URL. Puede ser FAILED, NOT_FOUND o
            SUCCEEDED.
          enum:
            - FAILED
            - IN_PROGRESS
            - NOT_FOUND
            - SUCCEEDED
    ConversationRecapSummaryResult:
      required:
        - status
      type: object
      properties:
        errorMessage:
          type: string
          description: >-
            Una descripción del error que ocurrió. Solo se presenta cuando el
            estado es FAILED.
        status:
          type: string
          description: >-
            El estado actual de la generación del resumen. SUCCEEDED: el resumen
            está disponible. NOT_FOUND: no se generó ningún resumen para esta
            interacción. FAILED: se produjo un error al recuperar el resumen.
          enum:
            - FAILED
            - NOT_FOUND
            - SUCCEEDED
        value:
          type: string
          description: >-
            El texto de resumen generado por IA para la conversación. Se
            presenta cuando el estado es SUCCEEDED; ausente en caso contrario.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La categoría del error, representada como una cadena.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Un objeto que proporciona contexto sobre la condición del error,
            donde cada propiedad es un conjunto de cadenas.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identificador único para la solicitud, que se usa para fines de
            seguimiento y soporte. Es una cadena en formato UUID.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Un conjunto que contiene más información sobre el error, donde cada
            elemento es un objeto ErrorDetail.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Un mapa de nombres de enlaces a URI asociados que contienen
            documentación sobre el error o los pasos de solución recomendados.
            Cada enlace se representa como una cadena.
        message:
          type: string
          description: >-
            Un mensaje legible que describe el error, junto con los pasos de
            solución cuando corresponda. Es una cadena.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Una categoría específica que proporciona información más detallada
            sobre el error. Es una cadena.
      description: >-
        Representa una respuesta de error que devuelve la API cuando una
        operación falla. Este componente se usa en varios puntos de terminación
        para dar información detallada sobre el error que se encontró.
      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
    ActionItem:
      required:
        - title
      type: object
      properties:
        assignee:
          type: string
          description: >-
            Una cadena que indica la persona asignada al elemento de acción.
            Esta propiedad es opcional.
        title:
          type: string
          description: >-
            Una cadena que representa el título o la descripción principal del
            elemento de acción. Esta propiedad es obligatoria.
    ParticipantInfo:
      required:
        - isHost
        - name
      type: object
      properties:
        email:
          type: string
          description: >-
            La dirección de correo electrónico del participante. Solo se muestra
            cuando el participante es un contacto de HubSpot.
        isHost:
          type: boolean
          description: Si este participante fue el anfitrión de la conversación.
        name:
          type: string
          description: 'El nombre del participante. '
        phoneNumber:
          type: string
          description: >-
            El número de teléfono del participante. Solo se muestra cuando el
            participante es un contacto de HubSpot.
    QuestionAndAnswer:
      required:
        - question
      type: object
      properties:
        answer:
          $ref: '#/components/schemas/SpeakerStatement'
        question:
          $ref: '#/components/schemas/SpeakerStatement'
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: >-
            El código de estado asociado con el detalle del error. Ayuda a
            identificar el tipo de error que ocurrió.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Un objeto que proporciona contexto sobre la condición del error.
            Contiene propiedades adicionales que ofrecen más detalles, como
            ámbitos faltantes u otra información relevante.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            El nombre del campo o parámetro donde se encontró el error.
            Proporciona contexto sobre la ubicación del error.
        message:
          type: string
          description: >-
            Un mensaje comprensible para los humanos que describe el error,
            junto con los pasos de solución cuando corresponda. Este es un campo
            obligatorio.
        subCategory:
          type: string
          description: >-
            Una categoría específica que contiene detalles más concretos sobre
            el error. Ofrece una clasificación adicional del error.
      description: >-
        Representa información detallada sobre un error que ocurrió en la API.
        Este componente se usa para dar contexto adicional y detalles
        específicos sobre los errores, normalmente como parte de una respuesta
        de error.
    SpeakerStatement:
      type: object
      properties:
        speakerName:
          type: string
          description: El orador atribuido a esta declaración.
        text:
          type: string
          description: La hora en que ocurrió esta declaración.
        timestampSeconds:
          type: number
          description: >-
            El momento en una conversación grabada en el que ocurrió esta
            declaración.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    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: ''

````