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

# Update an existing table

> Actualiza una tabla de HubDB existente. Puedes utilizar este punto de terminación para agregar o eliminar columnas de la tabla, así como para restaurar una tabla archivada. En las tablas que se actualicen utilizando el punto de terminación, solo se modificará la versión en borrador de la tabla. Utiliza el punto de terminación "/publish" para aplicar todos los cambios a la versión publicada. Para restaurar una tabla, incluye el parámetro de consulta "archived=true" y ""archived": false" en el cuerpo del json.
**Nota:** Debes incluir todas las columnas en la entrada cuando estés agregando/eliminando/actualizando una columna. Si no incluyes una columna ya existente en la solicitud, esa columna se eliminará.

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 marketing={true} sales={true} service={true} cms={true} marketingLevel="PROFESSIONAL" salesLevel="FREE" serviceLevel="FREE" cmsLevel="PROFESSIONAL" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'hubdb'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/2026-03/cms-hubdb-v2026-03.json PATCH /cms/hubdb/2026-03/tables/{tableIdOrName}/draft
openapi: 3.0.1
info:
  title: Hubdb
  description: Basepom for all HubSpot Projects
  version: 2026-03
  x-hubspot-product-tier-requirements:
    marketing: PROFESSIONAL
    sales: FREE
    service: FREE
    cms: PROFESSIONAL
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Filas
  - name: Rows
  - name: Tablas
  - name: Tables
paths:
  /cms/hubdb/2026-03/tables/{tableIdOrName}/draft:
    patch:
      tags:
        - Tablas
        - Tables
      summary: Actualiza una tabla existente
      description: >-
        Actualiza una tabla de HubDB existente. Puedes utilizar este punto de
        terminación para agregar o eliminar columnas de la tabla, así como para
        restaurar una tabla archivada. En las tablas que se actualicen
        utilizando el punto de terminación, solo se modificará la versión en
        borrador de la tabla. Utiliza el punto de terminación "/publish" para
        aplicar todos los cambios a la versión publicada. Para restaurar una
        tabla, incluye el parámetro de consulta "archived=true" y ""archived":
        false" en el cuerpo del json.

        **Nota:** Debes incluir todas las columnas en la entrada cuando estés
        agregando/eliminando/actualizando una columna. Si no incluyes una
        columna ya existente en la solicitud, esa columna se eliminará.
      operationId: patch-/cms/hubdb/2026-03/tables/{tableIdOrName}/draft_updateDraftTable
      parameters:
        - name: tableIdOrName
          in: path
          description: El ID o nombre de la tabla que se actualizará.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: archived
          in: query
          description: >-
            Especifica si se devuelven las tablas archivadas. La opción
            predeterminada es `falso`.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
        - name: includeForeignIds
          in: query
          description: >-
            Establécelo en `verdadero` para rellenar los valores de ID foráneos
            en el resultado.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
        - name: isGetLocalizedSchema
          in: query
          description: Indica si se debe obtener el esquema localizado de la tabla.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HubDbTableV3Request'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HubDbTableV3'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - hubdb
        - oauth2:
            - hubdb.tables.write
components:
  schemas:
    HubDbTableV3Request:
      required:
        - allowChildTables
        - allowPublicApiAccess
        - columns
        - dynamicMetaTags
        - enableChildTablePages
        - label
        - name
        - useForPages
      type: object
      properties:
        allowChildTables:
          type: boolean
          description: Especifica si se pueden crear tablas secundarias.
        allowPublicApiAccess:
          type: boolean
          description: >-
            Especifica si la tabla puede ser leída por el público sin
            autorización
        columns:
          type: array
          description: Lista de columnas en la tabla
          items:
            $ref: '#/components/schemas/ColumnRequest'
        dynamicMetaTags:
          type: object
          additionalProperties:
            type: integer
            format: int32
          description: >-
            Especifica los pares de valores clave de los [campos de
            metadatos](https://developers.hubspot.com/docs/cms/guides/dynamic-pages/hubdb#dynamic-pages)
            con los IDs de columna asociados.
        enableChildTablePages:
          type: boolean
          description: >-
            Especifica la creación de páginas dinámicas multinivel utilizando
            tablas secundarias
        label:
          type: string
          description: Etiqueta de la tabla
        name:
          type: string
          description: Nombre de la tabla
        useForPages:
          type: boolean
          description: >-
            Especifica si la tabla se puede utilizar para la creación de páginas
            dinámicas.
    HubDbTableV3:
      required:
        - allowChildTables
        - allowPublicApiAccess
        - columnCount
        - columns
        - createdAt
        - deleted
        - deletedAt
        - dynamicMetaTags
        - enableChildTablePages
        - id
        - label
        - name
        - published
        - publishedAt
        - rowCount
        - updatedAt
        - useForPages
      type: object
      properties:
        allowChildTables:
          type: boolean
          description: Especifica si se pueden crear tablas secundarias.
        allowPublicApiAccess:
          type: boolean
          description: >-
            Especifica si la tabla puede ser leída por el público sin
            autorización
        columnCount:
          type: integer
          description: Número de columnas incluyendo las eliminadas
          format: int64
        columns:
          type: array
          description: Lista de columnas en la tabla
          items:
            $ref: '#/components/schemas/Column'
        createdAt:
          type: string
          description: Marca de tiempo en la que se crea la tabla
          format: date-time
        createdBy:
          $ref: '#/components/schemas/SimpleUser'
        deleted:
          type: boolean
          description: Especifica si la tabla se marca como eliminada.
        deletedAt:
          type: string
          description: La marca de tiempo que indica cuándo se eliminó la tabla.
          format: date-time
        dynamicMetaTags:
          type: object
          additionalProperties:
            type: integer
            format: int32
          description: >-
            Especifica los pares de valores clave de los [campos de
            metadatos](https://developers.hubspot.com/docs/cms/guides/dynamic-pages/hubdb#dynamic-pages)
            con los IDs de columna asociados.
        enableChildTablePages:
          type: boolean
          description: >-
            Especifica la creación de páginas dinámicas multinivel utilizando
            tablas secundarias
        id:
          type: string
          description: ID de la tabla
        isOrderedManually:
          type: boolean
          description: Indica si las filas de la tabla se ordenan manualmente.
        label:
          type: string
          description: Etiqueta de la tabla
        name:
          type: string
          description: Nombre de la tabla
        published:
          type: boolean
          description: Indica si la tabla está publicada actualmente.
        publishedAt:
          type: string
          description: Marca de tiempo en la que la tabla se publicó recientemente.
          format: date-time
        rowCount:
          type: integer
          description: Número de filas en la tabla
          format: int32
        updatedAt:
          type: string
          description: Marca de tiempo en la que la tabla se actualizó recientemente
          format: date-time
        updatedBy:
          $ref: '#/components/schemas/SimpleUser'
        useForPages:
          type: boolean
          description: >-
            Especifica si la tabla se puede utilizar para la creación de páginas
            dinámicas.
    ColumnRequest:
      required:
        - id
        - label
        - name
        - options
        - type
      type: object
      properties:
        foreignColumnId:
          type: integer
          description: >-
            El ID de la columna de otra tabla a la que hace referencia/apunta la
            columna.
          format: int32
        foreignTableId:
          type: integer
          description: El ID de otra tabla a la que hace referencia/apunta la columna.
          format: int64
        id:
          type: integer
          description: ID de columna
          format: int32
        label:
          type: string
          description: Etiqueta de la columna
        maxNumberOfCharacters:
          type: integer
          description: Define el número máximo de caracteres permitidos en la columna.
          format: int32
        maxNumberOfOptions:
          type: integer
          description: >-
            Especifica el número máximo de opciones que se pueden definir para
            las columnas de selección y selección múltiple.
          format: int32
        name:
          type: string
          description: Nombre de la columna
        options:
          type: array
          description: Opciones para elegir en columnas de selección simple y múltiple
          items:
            $ref: '#/components/schemas/Option'
        type:
          type: string
          description: Tipo de la columna
          enum:
            - BOOLEAN
            - CODE
            - COMPOSITE
            - CTA
            - CURRENCY
            - DATE
            - DATETIME
            - EMBED
            - FILE
            - FOREIGN_ID
            - HUBSPOT_VIDEO
            - IMAGE
            - JSON
            - LOCATION
            - MULTISELECT
            - 'NULL'
            - NUMBER
            - RICHTEXT
            - SELECT
            - TEXT
            - URL
            - VIDEO
    Column:
      required:
        - deleted
        - description
        - id
        - label
        - name
        - type
      type: object
      properties:
        createdAt:
          type: string
          description: La marca de tiempo de cuando se creó la columna.
          format: date-time
        createdBy:
          $ref: '#/components/schemas/SimpleUser'
        createdByUserId:
          type: integer
          description: El ID del usuario que creó la columna.
          format: int32
        deleted:
          type: boolean
          description: Indica si se eliminó la columna.
        description:
          type: string
          description: La descripción de la columna.
        foreignColumnId:
          type: integer
          description: ID foráneo de columna
          format: int32
        foreignIds:
          type: array
          description: IDs foráneos
          items:
            $ref: '#/components/schemas/ForeignId'
        foreignIdsById:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ForeignId'
          description: IDs foráneos
        foreignIdsByName:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ForeignId'
          description: IDs foráneos por nombre
        foreignTableId:
          type: integer
          description: ID foráneo de tabla referenciada
          format: int64
        id:
          type: string
          description: ID de columna
        label:
          type: string
          description: Etiqueta de la columna
        name:
          type: string
          description: Nombre de la columna
        optionCount:
          type: integer
          description: Número de opciones disponibles
          format: int32
        options:
          type: array
          description: Opciones para elegir en columnas de selección simple y múltiple
          items:
            $ref: '#/components/schemas/Option'
        type:
          type: string
          description: Tipo de la columna
          enum:
            - BOOLEAN
            - CODE
            - COMPOSITE
            - CTA
            - CURRENCY
            - DATE
            - DATETIME
            - EMBED
            - FILE
            - FOREIGN_ID
            - HUBSPOT_VIDEO
            - IMAGE
            - JSON
            - LOCATION
            - MULTISELECT
            - 'NULL'
            - NUMBER
            - RICHTEXT
            - SELECT
            - TEXT
            - URL
            - VIDEO
        updatedAt:
          type: string
          description: La marca de tiempo de cuando se actualizó por última vez la columna.
          format: date-time
        updatedBy:
          $ref: '#/components/schemas/SimpleUser'
        updatedByUserId:
          type: integer
          description: El ID del usuario que actualizó la columna por última vez.
          format: int32
        width:
          type: integer
          description: Ancho de la columna para la interfaz de HubDB
          format: int32
    SimpleUser:
      required:
        - email
        - firstName
        - id
        - lastName
      type: object
      properties:
        email:
          type: string
          description: La dirección de correo del usuario.
        firstName:
          type: string
          description: El nombre del usuario.
        id:
          type: string
          description: El identificador único del usuario.
        lastName:
          type: string
          description: El apellido del usuario.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: La categoría del error
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto de la condición de error
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Un identificador único para la solicitud. Incluye este valor con
            cualquier informe de error o ticket de asistencia.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: información adicional acerca del error
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Un mapa de nombres de enlaces a las URI asociadas que contienen
            documentación sobre el error o los pasos recomendados para
            solucionarlo
        message:
          type: string
          description: >-
            Un mensaje legible en el que se describa el error y los pasos para
            solucionarlo, si procede
          example: An error occurred
        subCategory:
          type: string
          description: >-
            Una categoría específica que contiene detalles más concretos acerca
            del error
      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
    Option:
      required:
        - createdAt
        - id
        - label
        - name
        - order
        - type
        - updatedAt
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            La marca de tiempo del momento en que se creó la opción, en formato
            ISO 8601.
          format: date-time
        createdBy:
          $ref: '#/components/schemas/SimpleUser'
        createdByUserId:
          type: integer
          description: El ID del usuario que creó la opción.
          format: int32
        id:
          type: string
          description: El ID único de la opción.
        label:
          type: string
          description: Una etiqueta fácil de usar que identifica la opción.
        name:
          type: string
          description: Un nombre interno asignado a la opción, distinto del de la etiqueta.
        order:
          type: integer
          description: >-
            El orden en que aparece la opción, representado como un número
            entero.
          format: int32
        type:
          type: string
          description: >-
            Indica la categoría o el tipo de dato de la opción (por ejemplo,
            cadena, número)
        updatedAt:
          type: string
          description: >-
            La marca de tiempo de la última vez que se actualizó la opción, en
            formato ISO 8601.
          format: date-time
        updatedBy:
          $ref: '#/components/schemas/SimpleUser'
        updatedByUserId:
          type: integer
          description: El ID del usuario que actualizó la opción por última vez.
          format: int32
      description: A HubSpot property option
    ForeignId:
      required:
        - id
        - name
        - type
      type: object
      properties:
        id:
          type: string
          description: ID único del ID externo.
        name:
          type: string
          description: Nombre del ID externo.
        type:
          type: string
          description: Tipo de ID externo.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: El código de estado asociado al detalle del error
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Contexto de la condición de error
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        in:
          type: string
          description: El nombre del campo o parámetro en el que se encontró el error.
        message:
          type: string
          description: >-
            Un mensaje legible en el que se describa el error y los pasos para
            solucionarlo, si procede
        subCategory:
          type: string
          description: >-
            Una categoría específica que contiene detalles más concretos acerca
            del error
  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:
            hubdb: ''

````