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

# Create a new custom object schema.

> Crie um novo esquema de objeto personalizado definindo Propriedades e associações.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/legacy/v3/crm-schemas-v3.json POST /crm-object-schemas/v3/schemas
openapi: 3.0.1
info:
  title: Esquemas
  description: >-
    The CRM uses schemas to define how custom objects should store and represent
    information in the HubSpot CRM. Schemas define details about an object's
    type, properties, and associations. The schema can be uniquely identified by
    its **object type ID**.
  version: v3
  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-related-documentation:
    - name: Custom Object Guide
      url: >-
        https://developers.hubspot.com/docs/guides/api/crm/objects/custom-objects
  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/v3/schemas:
    post:
      tags:
        - Basic
      summary: Crie um novo esquema de objeto personalizado.
      description: >-
        Crie um novo esquema de objeto personalizado definindo Propriedades e
        associações.
      operationId: post-/crm-object-schemas/v3/schemas_create
      parameters: []
      requestBody:
        description: Object schema definition, including properties and associations.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObjectSchemaEgg'
        required: true
      responses:
        '201':
          description: successful operation
          headers:
            Location:
              description: URL of the newly created resource
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectSchema'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.schemas.custom.write
components:
  schemas:
    ObjectSchemaEgg:
      required:
        - associatedObjects
        - labels
        - name
        - properties
        - requiredProperties
      type: object
      properties:
        allowsSensitiveProperties:
          type: boolean
          description: >-
            Determina se o tipo de objeto pode incluir propriedades marcadas
            como confidenciais.
        associatedObjects:
          type: array
          description: Associações definidas para este tipo de objeto.
          items:
            type: string
        description:
          type: string
          description: Uma breve explicação do tipo de objeto.
        labels:
          $ref: '#/components/schemas/ObjectTypeDefinitionLabels'
        name:
          type: string
          description: Um nome exclusivo para este objeto. Apenas para uso interno.
        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.
        properties:
          type: array
          description: Propriedades definidas para este tipo de objeto.
          items:
            $ref: '#/components/schemas/ObjectTypePropertyCreate'
        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
        shouldCreateSameObjectAssociation:
          type: boolean
      description: Defines a new object type, its properties, and associations.
      example:
        associatedObjects:
          - CONTACT
        labels:
          plural: My objects
          singular: My object
        metaType: PORTAL_SPECIFIC
        name: my_object
        primaryDisplayProperty: my_object_property
        properties:
          - isPrimaryDisplayLabel: true
            label: My object property
            name: my_object_property
        requiredProperties:
          - my_object_property
    ObjectSchema:
      required:
        - associations
        - id
        - labels
        - name
        - properties
        - requiredProperties
      type: object
      properties:
        allowsSensitiveProperties:
          type: boolean
        archived:
          type: boolean
        associations:
          type: array
          description: Associações definidas para um determinado tipo de objeto.
          items:
            $ref: '#/components/schemas/AssociationDefinition'
        createdAt:
          type: string
          description: Quando o esquema do objeto foi criado.
          format: date-time
        createdByUserId:
          type: integer
          format: int32
        description:
          type: string
        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 o tipo de objeto deste esquema. Será definido
            como {meta-type}-{unique ID}.
        labels:
          $ref: '#/components/schemas/ObjectTypeDefinitionLabels'
        name:
          type: string
          description: Um nome exclusivo para o tipo de objeto do esquema.
        objectTypeId:
          type: string
        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.
        properties:
          type: array
          description: Propriedades definidas para este tipo de objeto.
          items:
            $ref: '#/components/schemas/Property'
        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 esquema do objeto foi atualizado pela última vez.
          format: date-time
        updatedByUserId:
          type: integer
          format: int32
      description: Defines an object schema, including its properties and associations.
      example:
        associations:
          - fromObjectTypeId: 2-123456
            id: '123'
            name: my_object_to_contact
            toObjectTypeId: 0-1
        createdAt: '2020-02-20T18:07:11.390Z'
        fullyQualifiedName: p7878787_my_object"
        id: '123456'
        labels:
          plural: My objects
          singular: My object
        metaType: PORTAL_SPECIFIC
        name: my_object
        primaryDisplayProperty: my_object_property
        properties:
          - archived: false
            calculated: false
            createdAt: '2020-02-20T18:07:11.802Z'
            displayOrder: -1
            externalOptions: false
            fieldType: text
            groupName: my_object_information
            hasUniqueValue: false
            label: My object property
            name: my_object_property
            type: string
            updatedAt: '2020-02-20T18:07:11.802Z'
        requiredProperties:
          - my_object_property
        searchableProperties:
          - my_object_property
        updatedAt: '2020-02-20T18:09:07.555Z'
    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.)
      description: Singular and plural labels for the object. Used in CRM display.
      example:
        plural: My objects
        singular: My object
    ObjectTypePropertyCreate:
      required:
        - fieldType
        - label
        - name
        - type
      type: object
      properties:
        description:
          type: string
          description: >-
            Uma descrição da propriedade que será exibida como texto de ajuda no
            HubSpot.
        displayOrder:
          type: integer
          description: >-
            A ordem em que esta propriedade deve ser exibida na interface do
            HubSpot em relação a outras propriedades para este tipo de objeto.
            As propriedades são exibidas em ordem, começando pelo menor valor
            inteiro positivo. Um valor de -1 fará com que a propriedade seja
            exibida **após** os valores positivos.
          format: int32
        externalOptionsReferenceType:
          type: string
          description: >-
            Especifica o tipo de referência para opções externas associadas à
            propriedade.
        fieldType:
          type: string
          description: Controla como a propriedade aparece no HubSpot.
        formField:
          type: boolean
          description: Se a propriedade pode ser usada em um formulário da HubSpot.
        groupName:
          type: string
          description: O nome do grupo ao qual esta propriedade pertence.
        hasUniqueValue:
          type: boolean
          description: >-
            Se o valor da propriedade deve ser exclusivo ou não. Uma vez
            definido, isso não pode ser alterado.
        hidden:
          type: boolean
          description: Opções ocultas não serão mostradas no HubSpot.
        label:
          type: string
          description: >-
            Um rótulo de propriedade legível por humanos que será exibido no
            HubSpot.
        name:
          type: string
          description: >-
            O nome interno da propriedade, que deve ser usado ao referenciar a
            propriedade na API.
        numberDisplayHint:
          type: string
          description: >-
            Controla como as propriedades numéricas são formatadas na UI do
            HubSpot
          enum:
            - currency
            - duration
            - formatted
            - percentage
            - probability
            - unformatted
        optionSortStrategy:
          type: string
          description: >-
            Controla como as opções de propriedade serão classificadas na UI do
            HubSpot.
          enum:
            - ALPHABETICAL
            - DISPLAY_ORDER
        options:
          type: array
          description: >-
            Uma lista de opções disponíveis para a propriedade. Este campo é
            obrigatório apenas para propriedades enumeradas.
          items:
            $ref: '#/components/schemas/OptionInput'
        referencedObjectType:
          type: string
          description: >-
            Define as opções que esta propriedade retornará, por exemplo, OWNER
            retornaria o nome dos usuários no portal.
        searchableInGlobalSearch:
          type: boolean
          description: >-
            Permitir que os usuários pesquisem as informações inseridas nesse
            campo (limitado a 3 propriedades)
        showCurrencySymbol:
          type: boolean
          description: Se a propriedade exibirá o símbolo da moeda na UI do HubSpot.
        textDisplayHint:
          type: string
          description: >-
            Controla como as propriedades de texto são formatadas na interface
            do HubSpot
          enum:
            - domain_name
            - email
            - ip_address
            - multi_line
            - phone_number
            - physical_address
            - postal_code
            - unformatted_single_line
        type:
          type: string
          description: O tipo de dados da propriedade.
          enum:
            - bool
            - date
            - datetime
            - enumeration
            - number
            - phone_number
            - string
      description: Defines a property to create.
      example:
        displayOrder: 2
        fieldType: select
        groupName: my_object_information
        hasUniqueValue: false
        label: My object property
        options:
          - description: Choice number one
            displayOrder: 1
            label: Option A
            value: A
          - description: Choice number two
            displayOrder: 2
            label: Option B
            value: B
        type: enumeration
    AssociationDefinition:
      required:
        - fromObjectTypeId
        - id
        - toObjectTypeId
      type: object
      properties:
        createdAt:
          type: string
          description: Quando a associação foi definida.
          format: date-time
        fromObjectTypeId:
          type: string
          description: O ID do tipo de objeto principal do qual vincular.
        id:
          type: string
          description: Um ID exclusivo para esta associação.
        name:
          type: string
          description: O nome exclusivo desta associação.
        toObjectTypeId:
          type: string
          description: A ID do objeto do CRM de destino ao qual vincular.
        updatedAt:
          type: string
          description: Quando a associação foi atualizada pela última vez.
          format: date-time
      description: A definição de uma associação
      example:
        fromObjectTypeId: 2-123456
        id: '105'
        name: my_object_to_contact
        toObjectTypeId: 0-1
    Property:
      required:
        - description
        - fieldType
        - groupName
        - label
        - name
        - options
        - type
      type: object
      properties:
        archived:
          type: boolean
          description: Se a propriedade está arquivada ou não.
        archivedAt:
          type: string
          description: Quando a propriedade foi arquivada.
          format: date-time
        calculated:
          type: boolean
          description: >-
            Para propriedades padrão, verdadeiro indica que a propriedade é
            calculada por um processo da HubSpot. Não tem efeito para
            propriedades personalizadas.
        calculationFormula:
          type: string
          description: A fórmula usada para propriedades de cálculo.
        createdAt:
          type: string
          description: Quando a propriedade foi criada
          format: date-time
        createdUserId:
          type: string
          description: >-
            O ID interno do usuário que criou a propriedade no HubSpot. Este
            campo pode não existir se a propriedade foi criada fora do HubSpot.
        currencyPropertyName:
          type: string
          description: O nome da propriedade de moeda relacionada.
        dataSensitivity:
          type: string
          description: >-
            Indica o nível de sensibilidade da propriedade, como
            "non_sensitive", "sensitive" ou "highly_sensitive".
          enum:
            - highly_sensitive
            - non_sensitive
            - sensitive
        dateDisplayHint:
          type: string
          description: >-
            Controla como as propriedades de data são exibidas na interface do
            HubSpot, com opções como "absolute", "absolute_with_relative",
            "time_since" e "time_until".
          enum:
            - absolute
            - absolute_with_relative
            - time_since
            - time_until
        description:
          type: string
          description: >-
            Uma descrição da propriedade que será exibida como texto de ajuda no
            HubSpot.
        displayOrder:
          type: integer
          description: >-
            A ordem em que esta propriedade deve ser exibida na interface do
            HubSpot em relação a outras propriedades para este tipo de objeto.
            As propriedades são exibidas em ordem, começando pelo menor valor
            inteiro positivo. Um valor de -1 fará com que a propriedade seja
            exibida **após** os valores positivos.
          format: int32
        externalOptions:
          type: boolean
          description: >-
            Para propriedades padrão, verdadeiro indica que as opções são
            armazenadas externamente às configurações da propriedade.
        fieldType:
          type: string
          description: Controla como a propriedade aparece no HubSpot.
        formField:
          type: boolean
          description: Se a propriedade pode ser usada em um formulário da HubSpot.
        groupName:
          type: string
          description: O nome do grupo de propriedades ao qual a propriedade pertence.
        hasUniqueValue:
          type: boolean
          description: >-
            Se o valor da propriedade deve ser exclusivo ou não. Uma vez
            definido, isso não pode ser alterado.
        hidden:
          type: boolean
          description: Opções ocultas não serão mostradas no HubSpot.
          example: false
        hubspotDefined:
          type: boolean
          description: >-
            Será verdadeiro para propriedades de objeto padrão incorporadas ao
            HubSpot.
        label:
          type: string
          description: >-
            Um rótulo de propriedade legível por humanos que será exibido no
            HubSpot.
        modificationMetadata:
          $ref: '#/components/schemas/PropertyModificationMetadata'
        name:
          type: string
          description: >-
            O nome interno da propriedade, que deve ser usado ao referenciá-la
            via API.
        numberDisplayHint:
          type: string
          description: >-
            Dica de como uma propriedade numérica é exibida e validada na
            interface do HubSpot. Pode ser: "sem formato", "formatado", "moeda",
            "porcentagem", "duração" ou "probabilidade".
          enum:
            - currency
            - duration
            - formatted
            - percentage
            - probability
            - unformatted
        options:
          type: array
          description: >-
            Uma lista de opções válidas para a propriedade. Este campo é
            obrigatório para propriedades enumeradas, mas estará vazio para
            outros tipos de propriedade.
          items:
            $ref: '#/components/schemas/Option'
        referencedObjectType:
          type: string
          description: >-
            Se esta propriedade estiver relacionada a outro(s) objeto(s), ele(s)
            será(ão) listado(s) aqui.
        sensitiveDataCategories:
          type: array
          description: >-
            Quando sensitiveData é verdadeiro, lista o tipo de dados
            confidenciais contidos na propriedade (por exemplo, "HIPAA").
          items:
            type: string
        showCurrencySymbol:
          type: boolean
          description: >-
            Se a propriedade exibirá o símbolo da moeda definido nas
            configurações da conta.
        textDisplayHint:
          type: string
          description: >-
            Dica de como o texto é exibido e validado na interface do HubSpot.
            Pode ser: "unformatted_single_line", "multi_line", "email",
            "phone_number", "domain_name", "ip_address", "physical_address" ou
            "postal_code".
          enum:
            - domain_name
            - email
            - ip_address
            - multi_line
            - phone_number
            - physical_address
            - postal_code
            - unformatted_single_line
        type:
          type: string
          description: O tipo de dados da propriedade.
        updatedAt:
          type: string
          description: Quando o tipo de objeto foi atualizado pela última vez.
          format: date-time
        updatedUserId:
          type: string
          description: >-
            O ID de usuário interno do usuário que atualizou a propriedade no
            HubSpot. Este campo pode não existir se a propriedade foi atualizada
            fora do HubSpot.
      description: Propriedade do HubSpot
      example:
        displayOrder: 2
        fieldType: select
        groupName: my_object_information
        hasUniqueValue: false
        label: My object property
        modificationMetadata:
          archivable: true
          readOnlyDefinition: false
          readOnlyOptions: false
          readOnlyValue: false
        name: my_object_property
        options:
          - description: Choice number one
            displayOrder: 1
            hidden: false
            label: Option A
            value: A
          - description: Choice number two
            displayOrder: 2
            hidden: false
            label: Option B
            value: B
        type: enumeration
    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
      description: >-
        Representa uma resposta de erro retornada pela API quando uma operação
        falha. Este componente é usado em vários endpoints para fornecer
        informações detalhadas sobre o erro encontrado.
      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
    OptionInput:
      required:
        - displayOrder
        - hidden
        - label
        - value
      type: object
      properties:
        description:
          type: string
          description: Uma descrição da opção.
        displayOrder:
          type: integer
          description: >-
            As opções são mostradas em ordem, começando com o menor valor
            inteiro positivo. Valores de -1 farão com que a opção seja exibida
            após os valores positivos.
          format: int32
        hidden:
          type: boolean
          description: Opções ocultas não serão mostradas no HubSpot.
        label:
          type: string
          description: Um rótulo de opção legível por humanos que será exibido no HubSpot.
        value:
          type: string
          description: >-
            O valor interno da opção, que deve ser usado ao definir o valor da
            propriedade através da API.
      description: Defines a enumeration property option
      example:
        description: Choice number one
        displayOrder: 1
        hidden: false
        label: Option A
        value: A
    PropertyModificationMetadata:
      required:
        - archivable
        - readOnlyDefinition
        - readOnlyValue
      type: object
      properties:
        archivable:
          type: boolean
          description: Indica se a propriedade pode ser arquivada.
        readOnlyDefinition:
          type: boolean
          description: Indica se a definição da propriedade é somente leitura.
        readOnlyOptions:
          type: boolean
          description: Indica se as opções da propriedade são somente leitura.
        readOnlyValue:
          type: boolean
          description: Indica se o valor da propriedade é somente leitura.
    Option:
      required:
        - hidden
        - label
        - value
      type: object
      properties:
        description:
          type: string
          description: Uma descrição da opção.
        displayOrder:
          type: integer
          description: >-
            As opções são exibidas em ordem, começando com o menor valor inteiro
            positivo. Valores de -1 farão com que a opção seja exibida após os
            valores positivos.
          format: int32
        hidden:
          type: boolean
          description: Opções ocultas não serão exibidas no HubSpot.
        label:
          type: string
          description: Um rótulo de opção legível por humanos que será exibido no HubSpot.
        value:
          type: string
          description: >-
            O valor interno da opção, que deve ser usado ao definir o valor da
            propriedade através da API.
      description: Uma opção de propriedade da HubSpot
      example:
        description: Choice number one
        displayOrder: 1
        hidden: false
        label: Option A
        value: A
    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
      description: >-
        Representa informações detalhadas sobre um erro ocorrido na API. Este
        componente é usado para fornecer contexto e detalhes adicionais sobre os
        erros, geralmente como parte de uma resposta de 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.highly_sensitive.write.v2: ''
            crm.objects.custom.read: ''
            crm.objects.custom.sensitive.read.v2: ''
            crm.objects.custom.sensitive.write.v2: ''
            crm.objects.custom.write: ''
            crm.schemas.custom.read: ''
            crm.schemas.custom.write: ''

````