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

# Get an event instance

> Recupere uma instância de evento, especificada pelo ID do modelo e pelo ID do evento.

export const ScopesList = ({scopes = [], description = "Esta API requer um dos seguintes escopos:"}) => {
  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: "Produtos suportados",
    description: "Requer um dos seguintes produtos ou superior.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Grátis",
      starter: "Starter",
      professional: "Professional",
      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 marketing={true} sales={true} service={true} cms={true} marketingLevel="FREE" salesLevel="FREE" serviceLevel="FREE" cmsLevel="FREE" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'crm.objects.contacts.read',
  'crm.objects.deals.read',
  'tickets',
  'crm.objects.companies.sensitive.read.v2',
  'tickets.sensitive.v2',
  'crm.objects.companies.read',
  'crm.objects.contacts.highly_sensitive.read.v2',
  'crm.schemas.deals.read',
  'crm.schemas.contacts.read',
  'tickets.highly_sensitive.v2',
  'crm.objects.deals.sensitive.read.v2',
  'crm.objects.deals.highly_sensitive.read.v2',
  'crm.objects.companies.highly_sensitive.read.v2',
  'crm.objects.contacts.sensitive.read.v2',
  'timeline',
  'crm.schemas.companies.read'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/legacy/v3/crm-timeline-v3.json GET /integrators/timeline/v3/events/{eventTemplateId}/{eventId}
openapi: 3.0.1
info:
  title: Linha do tempo
  description: Basepom for all HubSpot Projects
  version: v3
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-api-use-case: >-
    Depois de configurar um novo conjunto de fluxos de cadastro no seu site,
    atualize as linhas do tempo do contato para indicar qual fluxo eles
    concluíram. Em cada caso, você deve também incluir um link para abrir um
    iframe que mostra os dados externos adicionais sobre o evento.
  x-hubspot-related-documentation:
    - name: Timeline Events Guide
      url: https://developers.hubspot.com/docs/guides/api/crm/extensions/timeline
  x-hubspot-introduction: >-
    Use a API de eventos da linha do tempo para adicionar informações de evento
    personalizado a linhas do tempo de registro de CRM. Você precisará primeiro
    criar um aplicativo público e depois um modelo de evento para mostrar dados
    de evento. 
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
paths:
  /integrators/timeline/v3/events/{eventTemplateId}/{eventId}:
    get:
      tags:
        - Basic
      summary: Obter uma instância de evento
      description: >-
        Recupere uma instância de evento, especificada pelo ID do modelo e pelo
        ID do evento.
      operationId: get-/integrators/timeline/v3/events/{eventTemplateId}/{eventId}_getById
      parameters:
        - name: eventId
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: eventTemplateId
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimelineEventResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      deprecated: true
      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
        - oauth2:
            - crm.objects.companies.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.companies.read
        - oauth2:
            - crm.schemas.companies.read
        - oauth2:
            - crm.objects.companies.sensitive.read.v2
        - oauth2:
            - crm.objects.deals.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.deals.read
        - oauth2:
            - crm.schemas.deals.read
        - oauth2:
            - crm.objects.deals.sensitive.read.v2
        - oauth2:
            - tickets
        - oauth2:
            - tickets.sensitive.v2
        - oauth2:
            - tickets.highly_sensitive.v2
        - oauth2:
            - timeline.read
        - oauth2:
            - timeline
components:
  schemas:
    TimelineEventResponse:
      required:
        - eventTemplateId
        - id
        - objectType
        - tokens
      type: object
      properties:
        createdAt:
          type: string
          description: Não usado.
          format: date-time
        customObjectTypeId:
          type: string
        domain:
          type: string
          description: O domínio do evento (frequentemente pareado com o utk).
        email:
          type: string
          description: >-
            O endereço de e-mail usado para eventos específicos de contato. Pode
            ser usado para identificar contatos existentes, criar novos contatos
            ou alterar o e-mail de um contato existente (se estiver pareado com
            o "objectId").
        eventTemplateId:
          type: string
          description: O ID do modelo do evento.
        extraData:
          type: object
          properties: {}
          description: >-
            Dados adicionais específicos do evento que podem ser interpretados
            pelo markdown do modelo.
        id:
          type: string
          description: >-
            Identificador do evento. Deve ser exclusivo para o aplicativo e
            modelo de evento. Se você usar o mesmo ID para diferentes objetos do
            CRM, o último a ser processado prevalecerá e o primeiro não terá um
            registro. Você também pode usar "{{uuid}}" em qualquer lugar no ID
            para gerar uma string única, garantindo a exclusividade.
        objectId:
          type: string
          description: >-
            O identificador do objeto do CRM. É necessário para todos os
            eventos, exceto contatos (nos quais o utk ou o e-mail podem ser
            usados).
        objectType:
          type: string
          description: O ObjectType associado a EventTemplate.
        timelineIFrame:
          $ref: '#/components/schemas/TimelineEventIFrame'
        timestamp:
          type: string
          description: >-
            A hora em que o evento ocorreu. Se não for transmitido, a hora atual
            será usada. É usado para determinar onde um evento é mostrado na
            linha do tempo de um objeto do CRM.
          format: date-time
        tokens:
          type: object
          additionalProperties:
            type: string
          description: >-
            Uma coleção de chaves de token e valores associados aos tokens do
            modelo.
        utk:
          type: string
          description: >-
            Use o parâmetro "utk" para associar um evento com um contato pelo
            "usertoken". É recomendado fazer isso se você não souber o e-mail de
            um usuário, mas tiver um token de identificação do usuário em seus
            cookies.
    TimelineEventIFrame:
      required:
        - headerLabel
        - height
        - linkLabel
        - url
        - width
      type: object
      properties:
        headerLabel:
          type: string
          description: O rótulo da janela modal que exibe o conteúdo do iframe.
        height:
          type: integer
          description: A altura da janela modal em pixels.
          format: int32
        linkLabel:
          type: string
          description: O texto mostrando o link que exibirá o iframe.
        url:
          type: string
          description: O URI do conteúdo do iframe.
        width:
          type: integer
          description: A largura da janela modal em pixels.
          format: int32
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: A categoria de erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Um identificador exclusivo para a solicitação. Inclua este valor em
            relatórios de erro ou tickets de suporte
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: mais informações sobre o erro
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Um mapa de nomes de links para URIs associados que contêm
            documentação sobre o erro ou as etapas de correção recomendadas
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
      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: O código de status associado ao detalhe do erro
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto sobre a condição do erro
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: O nome do campo ou parâmetro no qual o erro foi encontrado.
        message:
          type: string
          description: >-
            Uma mensagem legível por humanos que descreve o erro, juntamente com
            as etapas de correção, quando apropriado
        subCategory:
          type: string
          description: >-
            Uma categoria específica que contém mais detalhes específicos sobre
            o erro
  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.companies.highly_sensitive.read.v2: ''
            crm.objects.companies.highly_sensitive.write.v2: ''
            crm.objects.companies.read: ''
            crm.objects.companies.sensitive.read.v2: ''
            crm.objects.companies.sensitive.write.v2: ''
            crm.objects.companies.write: ''
            crm.objects.contacts.highly_sensitive.read.v2: ''
            crm.objects.contacts.highly_sensitive.write.v2: ''
            crm.objects.contacts.read: ''
            crm.objects.contacts.sensitive.read.v2: ''
            crm.objects.contacts.sensitive.write.v2: ''
            crm.objects.contacts.write: ''
            crm.objects.deals.highly_sensitive.read.v2: ''
            crm.objects.deals.highly_sensitive.write.v2: ''
            crm.objects.deals.read: ''
            crm.objects.deals.sensitive.read.v2: ''
            crm.objects.deals.sensitive.write.v2: ''
            crm.objects.deals.write: ''
            crm.schemas.companies.read: ''
            crm.schemas.companies.write: ''
            crm.schemas.contacts.read: ''
            crm.schemas.contacts.write: ''
            crm.schemas.deals.read: ''
            crm.schemas.deals.write: ''
            developers-read: ''
            developers-write: ''
            tickets: ''
            tickets.highly_sensitive.v2: ''
            tickets.sensitive.v2: ''
            timeline: ''
            timeline.read: ''
            timeline.write: ''

````