> ## 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.

# Update the schema of a specified custom object.

> Atualize atributos de um esquema de objeto personalizado, como propriedades e rótulos, usando o ID do tipo de objeto ou o nome totalmente qualificado.

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="ENTERPRISE" salesLevel="ENTERPRISE" serviceLevel="ENTERPRISE" cmsLevel="ENTERPRISE" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'crm.schemas.custom.write'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-03/crm-schemas-v2026-03.json PATCH /crm-object-schemas/2026-03/schemas/{objectType}
openapi: 3.0.1
info:
  title: Esquemas
  description: Basepom for all HubSpot Projects
  version: 2026-03
  x-hubspot-product-tier-requirements:
    marketing: ENTERPRISE
    sales: ENTERPRISE
    service: ENTERPRISE
    cms: ENTERPRISE
    commerce: ENTERPRISE
    crmHub: ENTERPRISE
    dataHub: ENTERPRISE
  x-hubspot-api-use-case: >-
    Crie um novo objeto para armazenar informações sobre carros em uma
    concessionária. A definição do objeto pode incluir propriedades para
    armazenar informações, bem como os filtros disponíveis na página de índice
    do objeto personalizado.
  x-hubspot-introduction: >-
    Use a API de esquema de objetos personalizados para definir novos tipos de
    registros do CRM na sua conta. Após configurar um esquema de objetos, você
    poderá criar registros para esse objeto personalizado no HubSpot e usando a
    API de objetos.
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
paths:
  /crm-object-schemas/2026-03/schemas/{objectType}:
    patch:
      tags:
        - Basic
      summary: Atualize o esquema de um objeto personalizado especificado.
      description: >-
        Atualize atributos de um esquema de objeto personalizado, como
        propriedades e rótulos, usando o ID do tipo de objeto ou o nome
        totalmente qualificado.
      operationId: patch-/crm-object-schemas/2026-03/schemas/{objectType}_update
      parameters:
        - name: objectType
          in: path
          description: ''
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectTypeDefinitionPatch'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectTypeDefinition'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.schemas.custom.write
components:
  schemas:
    ObjectTypeDefinitionPatch:
      required:
        - clearDescription
      type: object
      properties:
        allowsSensitiveProperties:
          type: boolean
          description: >-
            Determina se o tipo de objeto pode incluir propriedades marcadas
            como confidenciais.
        clearDescription:
          type: boolean
          description: Indica se a descrição do tipo de objeto deve ser apagada.
        description:
          type: string
          description: Uma breve explicação do tipo de objeto.
        labels:
          $ref: '#/components/schemas/ObjectTypeDefinitionLabels'
        primaryDisplayProperty:
          type: string
          description: >-
            O nome da propriedade principal para este objeto. Será exibido como
            principal na página de registro do HubSpot para este tipo de objeto.
        requiredProperties:
          type: array
          description: >-
            Os nomes das propriedades que devem ser **obrigatórias** ao criar um
            objeto deste tipo.
          items:
            type: string
        restorable:
          type: boolean
          description: >-
            Especifica se o tipo de objeto pode ser restaurado após ser
            excluído.
        searchableProperties:
          type: array
          description: >-
            Nomes das propriedades que serão indexadas para este tipo de objeto
            na pesquisa de produtos da HubSpot.
          items:
            type: string
        secondaryDisplayProperties:
          type: array
          description: >-
            Os nomes das propriedades secundárias para este objeto. Serão
            exibidas como secundárias na página do registro do HubSpot para este
            tipo de objeto.
          items:
            type: string
    ObjectTypeDefinition:
      required:
        - allowsSensitiveProperties
        - archived
        - fullyQualifiedName
        - id
        - labels
        - name
        - objectTypeId
        - requiredProperties
        - searchableProperties
        - secondaryDisplayProperties
      type: object
      properties:
        allowsSensitiveProperties:
          type: boolean
          description: >-
            Indica se o tipo de objeto permite propriedades que contêm dados
            confidenciais.
        archived:
          type: boolean
          description: Indica se o tipo de objeto está arquivado.
        createdAt:
          type: string
          description: Quando o tipo de objeto foi criado.
          format: date-time
        description:
          type: string
          description: Uma descrição do tipo de objeto.
        fullyQualifiedName:
          type: string
          description: >-
            Um ID exclusivo atribuído ao objeto, incluindo o ID do portal e o
            nome do objeto.
        id:
          type: string
          description: >-
            Um ID exclusivo para este tipo de objeto. Será definido como
            {meta-type}-{unique ID}.
        labels:
          $ref: '#/components/schemas/ObjectTypeDefinitionLabels'
        name:
          type: string
          description: Um nome exclusivo para este objeto. Apenas para uso interno.
        objectTypeId:
          type: string
          description: Um identificador exclusivo para o tipo de objeto.
        portalId:
          type: integer
          description: O ID da conta ao qual este objeto é específico.
          format: int32
        primaryDisplayProperty:
          type: string
          description: >-
            O nome da propriedade principal para este objeto. Será exibido como
            principal na página de registro do HubSpot para este tipo de objeto.
        requiredProperties:
          type: array
          description: >-
            Os nomes das propriedades que devem ser **obrigatórias** ao criar um
            objeto deste tipo.
          items:
            type: string
        searchableProperties:
          type: array
          description: >-
            Nomes das propriedades que serão indexadas para este tipo de objeto
            na pesquisa de produtos da HubSpot.
          items:
            type: string
        secondaryDisplayProperties:
          type: array
          description: >-
            Os nomes das propriedades secundárias para este objeto. Serão
            exibidas como secundárias na página do registro do HubSpot para este
            tipo de objeto.
          items:
            type: string
        updatedAt:
          type: string
          description: Quando o tipo de objeto foi atualizado pela última vez.
          format: date-time
    ObjectTypeDefinitionLabels:
      type: object
      properties:
        plural:
          type: string
          description: >-
            A palavra para vários objetos. (Não é possível alterar isso mais
            tarde.)
        singular:
          type: string
          description: A palavra para um objeto. (Não é possível alterar isso mais tarde.)
    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.custom.highly_sensitive.read.v2: ''
            crm.objects.custom.read: ''
            crm.objects.custom.sensitive.read.v2: ''
            crm.objects.custom.sensitive.write.v2: ''
            crm.schemas.custom.read: ''
            crm.schemas.custom.write: ''
            oauth: ''

````