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

# Update an existing table

> Eine vorhandene HubDB-Tabelle aktualisieren. Endpunkt zum Hinzufügen oder Entfernen von Tabellenspalten und zum Wiederherstellen einer archivierten Tabelle. Tabellen, die mit diesem Endpunkt aktualisiert werden, ändern nur die Version „Entwurf“ der Tabelle. Verwenden Sie den Endpunkt „/publish“, um alle Änderungen in der veröffentlichten Version zu übernehmen. Schließen Sie zum Wiederherstellen einer Tabelle die Abfrageparameter „archived=true“ und „"archived": false“ in den JSON-Text ein.
**Hinweis:** Sie müssen alle Spalten in die Eingabe einbeziehen, wenn Sie eine Spalte hinzufügen/entfernen/aktualisieren. Wird eine bereits vorhandene Spalte nicht in die Anfrage aufgenommen, wird die Spalte gelöscht.

export const ScopesList = ({scopes = [], description = "Diese API erfordert einen der folgenden Bereiche:"}) => {
  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: "Unterstützte Produkte",
    description: "Erfordert eines der folgenden Produkte oder höher.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Kostenlos",
      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="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: Rows
  - name: Tabellen
  - name: Tables
  - name: Zeilen
paths:
  /cms/hubdb/2026-03/tables/{tableIdOrName}/draft:
    patch:
      tags:
        - Tabellen
        - Tables
      summary: Vorhandene Tabelle aktualisieren
      description: >-
        Eine vorhandene HubDB-Tabelle aktualisieren. Endpunkt zum Hinzufügen
        oder Entfernen von Tabellenspalten und zum Wiederherstellen einer
        archivierten Tabelle. Tabellen, die mit diesem Endpunkt aktualisiert
        werden, ändern nur die Version „Entwurf“ der Tabelle. Verwenden Sie den
        Endpunkt „/publish“, um alle Änderungen in der veröffentlichten Version
        zu übernehmen. Schließen Sie zum Wiederherstellen einer Tabelle die
        Abfrageparameter „archived=true“ und „"archived": false“ in den
        JSON-Text ein.

        **Hinweis:** Sie müssen alle Spalten in die Eingabe einbeziehen, wenn
        Sie eine Spalte hinzufügen/entfernen/aktualisieren. Wird eine bereits
        vorhandene Spalte nicht in die Anfrage aufgenommen, wird die Spalte
        gelöscht.
      operationId: patch-/cms/hubdb/2026-03/tables/{tableIdOrName}/draft_updateDraftTable
      parameters:
        - name: tableIdOrName
          in: path
          description: Die ID oder der Name der Tabelle, die aktualisiert werden soll.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: archived
          in: query
          description: >-
            Gibt an, ob archivierte Tabellen zurückgegeben werden sollen. Der
            Standardwert ist „false“ (falsch).
          required: false
          style: form
          explode: true
          schema:
            type: boolean
        - name: includeForeignIds
          in: query
          description: >-
            Legen Sie dies auf „true“ (wahr) fest, um Fremd-ID-Werte im Ergebnis
            auszufüllen.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
        - name: isGetLocalizedSchema
          in: query
          description: >-
            Gibt an, ob das lokalisierte Schema für die Tabelle abgerufen werden
            soll.
          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: Gibt an, ob untergeordnete Tabellen erstellt werden können
        allowPublicApiAccess:
          type: boolean
          description: >-
            Gibt an, ob die Tabelle öffentlich zugänglich ist und ohne
            Autorisierung gelesen werden kann
        columns:
          type: array
          description: Liste mit den Spalten in der Tabelle
          items:
            $ref: '#/components/schemas/ColumnRequest'
        dynamicMetaTags:
          type: object
          additionalProperties:
            type: integer
            format: int32
          description: >-
            Gibt die Schlüssel-Wert-Paare der
            [Metadatenfelder](https://developers.hubspot.com/docs/cms/guides/dynamic-pages/hubdb#dynamic-pages)
            mit den zugehörigen Spalten-IDs an.
        enableChildTablePages:
          type: boolean
          description: >-
            Gibt die Erstellung dynamischer Multi-Level-Seiten mithilfe von
            untergeordneten Tabellen an
        label:
          type: string
          description: Label der Tabelle
        name:
          type: string
          description: Name der Tabelle
        useForPages:
          type: boolean
          description: >-
            Gibt an, ob die Tabelle zum Erstellen von dynamischen Seiten
            verwendet werden kann
    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: Gibt an, ob untergeordnete Tabellen erstellt werden können
        allowPublicApiAccess:
          type: boolean
          description: >-
            Gibt an, ob die Tabelle öffentlich zugänglich ist und ohne
            Autorisierung gelesen werden kann
        columnCount:
          type: integer
          description: Anzahl der Spalten inklusive der gelöschten
          format: int64
        columns:
          type: array
          description: Liste mit den Spalten in der Tabelle
          items:
            $ref: '#/components/schemas/Column'
        createdAt:
          type: string
          description: Zeitstempel, wann die Tabelle erstellt wurde
          format: date-time
        createdBy:
          $ref: '#/components/schemas/SimpleUser'
        deleted:
          type: boolean
          description: Gibt an, ob die Tabelle als gelöscht markiert ist.
        deletedAt:
          type: string
          description: Der Zeitstempel, der angibt, wann die Tabelle gelöscht wurde.
          format: date-time
        dynamicMetaTags:
          type: object
          additionalProperties:
            type: integer
            format: int32
          description: >-
            Gibt die Schlüssel-Wert-Paare der
            [Metadatenfelder](https://developers.hubspot.com/docs/cms/guides/dynamic-pages/hubdb#dynamic-pages)
            mit den zugehörigen Spalten-IDs an.
        enableChildTablePages:
          type: boolean
          description: >-
            Gibt die Erstellung dynamischer Multi-Level-Seiten mithilfe von
            untergeordneten Tabellen an
        id:
          type: string
          description: ID der Tabelle
        isOrderedManually:
          type: boolean
          description: Gibt an, ob die Tabellenzeilen manuell sortiert sind.
        label:
          type: string
          description: Label der Tabelle
        name:
          type: string
          description: Name der Tabelle
        published:
          type: boolean
          description: Gibt an, ob die Tabelle derzeit veröffentlicht ist.
        publishedAt:
          type: string
          description: Zeitstempel, wann die Tabelle kürzlich veröffentlicht wurde
          format: date-time
        rowCount:
          type: integer
          description: Anzahl der Zeilen in der Tabelle
          format: int32
        updatedAt:
          type: string
          description: Zeitstempel, wann die Tabelle kürzlich aktualisiert wurde
          format: date-time
        updatedBy:
          $ref: '#/components/schemas/SimpleUser'
        useForPages:
          type: boolean
          description: >-
            Gibt an, ob die Tabelle zum Erstellen von dynamischen Seiten
            verwendet werden kann
    ColumnRequest:
      required:
        - id
        - label
        - name
        - options
        - type
      type: object
      properties:
        foreignColumnId:
          type: integer
          description: >-
            Die ID der Spalte aus einer anderen Tabelle, auf die die Spalte
            verweist/sich bezieht.
          format: int32
        foreignTableId:
          type: integer
          description: >-
            Die ID einer anderen Spalte, auf die die Spalte verweist/sich
            bezieht.
          format: int64
        id:
          type: integer
          description: Spalten-ID
          format: int32
        label:
          type: string
          description: Label der Spalte
        maxNumberOfCharacters:
          type: integer
          description: Legt die maximal zulässige Anzahl von Zeichen in der Spalte fest.
          format: int32
        maxNumberOfOptions:
          type: integer
          description: >-
            Gibt die maximale Anzahl von Optionen an, die für Auswahl- und
            Mehrfachauswahlspalten festgelegt werden können.
          format: int32
        name:
          type: string
          description: Name der Spalte
        options:
          type: array
          description: Auswahlmöglichkeiten für Auswahl- und Mehrfachauswahl-Spalten
          items:
            $ref: '#/components/schemas/Option'
        type:
          type: string
          description: Typ der Spalte
          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: Der Zeitstempel, zu dem die Spalte erstellt wurde.
          format: date-time
        createdBy:
          $ref: '#/components/schemas/SimpleUser'
        createdByUserId:
          type: integer
          description: Die ID des Benutzers, der die Spalte erstellt hat.
          format: int32
        deleted:
          type: boolean
          description: Gibt an, ob die Spalte gelöscht wurde.
        description:
          type: string
          description: Die Beschreibung der Spalte.
        foreignColumnId:
          type: integer
          description: Fremde Spalten-ID
          format: int32
        foreignIds:
          type: array
          description: Fremd-IDs
          items:
            $ref: '#/components/schemas/ForeignId'
        foreignIdsById:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ForeignId'
          description: Fremd-IDs
        foreignIdsByName:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ForeignId'
          description: Fremd-IDs nach Name
        foreignTableId:
          type: integer
          description: Fremde Tabellen-ID referenziert
          format: int64
        id:
          type: string
          description: Spalten-ID
        label:
          type: string
          description: Label der Spalte
        name:
          type: string
          description: Name der Spalte
        optionCount:
          type: integer
          description: Anzahl der verfügbaren Optionen
          format: int32
        options:
          type: array
          description: Auswahlmöglichkeiten für Auswahl- und Mehrfachauswahl-Spalten
          items:
            $ref: '#/components/schemas/Option'
        type:
          type: string
          description: Typ der Spalte
          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: Der Zeitstempel, zu dem die Spalte zuletzt aktualisiert wurde.
          format: date-time
        updatedBy:
          $ref: '#/components/schemas/SimpleUser'
        updatedByUserId:
          type: integer
          description: Die ID des Benutzers, der die Spalte zuletzt aktualisiert hat.
          format: int32
        width:
          type: integer
          description: Spaltenbreite für HubDB-UI
          format: int32
    SimpleUser:
      required:
        - email
        - firstName
        - id
        - lastName
      type: object
      properties:
        email:
          type: string
          description: Die E-Mail-Adresse des Benutzers.
        firstName:
          type: string
          description: Der Vorname des Benutzers.
        id:
          type: string
          description: Die eindeutige ID für den Benutzer.
        lastName:
          type: string
          description: Der Nachname des Benutzers.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: Die Fehlerkategorie
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Kontext zur Fehlerbedingung
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Eine eindeutige ID für die Anfrage. Berücksichtigen Sie diesen Wert
            in Fehlerberichten oder Support-Tickets.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: Weitere Informationen zum Fehler
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Zuordnung der Namen von Links zu zugeordneten URIs mit einer
            Dokumentation zum Fehler oder empfohlenen Abhilfemaßnahmen
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen
          example: An error occurred
        subCategory:
          type: string
          description: Eine spezifische Kategorie, die genauere Details zum Fehler enthält
      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: Der Zeitstempel, wann die Opion erstellt wurde (Format ISO 8601).
          format: date-time
        createdBy:
          $ref: '#/components/schemas/SimpleUser'
        createdByUserId:
          type: integer
          description: Die ID des Benutzers, der die Option erstellt hat.
          format: int32
        id:
          type: string
          description: Die eindeutige ID der Option.
        label:
          type: string
          description: Ein benutzerfreundliches Label, das die Option identifiziert.
        name:
          type: string
          description: >-
            Ein interner, der Option zugewiesener Name, der sich vom Label
            unterscheidet.
        order:
          type: integer
          description: >-
            Die Reihenfolge, in der die Option erscheint, dargestellt als
            Ganzzahl.
          format: int32
        type:
          type: string
          description: "Verweist auf die Kategorie oder den Datentyp der Option (z.\_B. Zeichenfolge, Nummer)."
        updatedAt:
          type: string
          description: >-
            Der Zeitstempel, wann die Option zuletzt aktualisiert wurde (Format
            ISO 8601).
          format: date-time
        updatedBy:
          $ref: '#/components/schemas/SimpleUser'
        updatedByUserId:
          type: integer
          description: Die ID des Benutzers, der die Option zuletzt aktualisiert hat.
          format: int32
      description: A HubSpot property option
    ForeignId:
      required:
        - id
        - name
        - type
      type: object
      properties:
        id:
          type: string
          description: Eindeutige ID der Fremd-ID.
        name:
          type: string
          description: Name der Fremd-ID.
        type:
          type: string
          description: Typ der Fremd-ID.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Der Statuscode, der dem Fehlerdetail zugeordnet ist
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Kontext zur Fehlerbedingung
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        in:
          type: string
          description: >-
            Der Name des Felds oder Parameters, in dem der Fehler gefunden
            wurde.
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen
        subCategory:
          type: string
          description: Eine spezifische Kategorie, die genauere Details zum Fehler enthält
  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: ''

````