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

# Replace an existing row

> Ersetzen Sie eine einzelne Zeile in der Entwurfsversion einer Tabelle. Alle Spaltenwerte müssen angegeben werden. Wenn eine Spalte in der Zieltabelle einen Wert hat und diese Anfrage diesen Wert nicht definiert, wird sie gelöscht.
Anweisungen zum Formatieren der JSON-Zeilendefinitionen finden Sie unter dem Endpunkt „Zeile erstellen“.

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 PUT /cms/hubdb/2026-03/tables/{tableIdOrName}/rows/{rowId}/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}/rows/{rowId}/draft:
    put:
      tags:
        - Rows
        - Zeilen
      summary: Ersetzt eine vorhandene Zeile
      description: >-
        Ersetzen Sie eine einzelne Zeile in der Entwurfsversion einer Tabelle.
        Alle Spaltenwerte müssen angegeben werden. Wenn eine Spalte in der
        Zieltabelle einen Wert hat und diese Anfrage diesen Wert nicht
        definiert, wird sie gelöscht.

        Anweisungen zum Formatieren der JSON-Zeilendefinitionen finden Sie unter
        dem Endpunkt „Zeile erstellen“.
      operationId: >-
        put-/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/{rowId}/draft_replaceDraftTableRow
      parameters:
        - name: rowId
          in: path
          description: Die ID der Zeile
          required: true
          style: simple
          explode: false
          schema:
            pattern: \d+
            type: string
        - name: tableIdOrName
          in: path
          description: Die ID oder der Name der Tabelle
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HubDbTableRowV3Request'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HubDbTableRowV3'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - hubdb
        - oauth2:
            - hubdb.rows.write
components:
  schemas:
    HubDbTableRowV3Request:
      required:
        - childTableId
        - displayIndex
        - values
      type: object
      properties:
        childTableId:
          type: integer
          description: Gibt den Wert für die Spalte „Untergeordnete Tabellen-ID“ an
          format: int64
        displayIndex:
          type: integer
          description: Die Indexposition für die Anzeige der Zeile innerhalb der Tabelle.
          format: int32
        name:
          type: string
          description: >-
            Gibt den Wert für die „hs_name“-Spalte an. Wird als Titel in den
            dynamischen Seiten verwendet.
        path:
          type: string
          description: >-
            Gibt den Wert für die „hs_path“-Spalte an. Wird als Slug in den
            dynamischen Seiten verwendet.
        values:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Variant'
          description: >-
            Liste der Schlüssel-Wert-Paare mit dem Spaltennamen und dem
            Spaltenwert
    HubDbTableRowV3:
      required:
        - childTableId
        - createdAt
        - id
        - name
        - path
        - publishedAt
        - updatedAt
        - values
      type: object
      properties:
        childTableId:
          type: string
          description: Gibt den Wert für die Spalte „Untergeordnete Tabellen-ID“ an
        createdAt:
          type: string
          description: Zeitstempel, wann die Zeile erstellt wurde
          format: date-time
        id:
          type: string
          description: Die ID der Tabellenzeile
        name:
          type: string
          description: >-
            Gibt den Wert für die „hs_name“-Spalte an. Wird als Titel in den
            dynamischen Seiten verwendet.
        path:
          type: string
          description: >-
            Gibt den Wert für die „hs_path“-Spalte an. Wird als Slug in den
            dynamischen Seiten verwendet.
        publishedAt:
          type: string
          description: >-
            Der Zeitstempel, der im Datums- und Zeitformat angibt, wann die
            Zeile zuletzt veröffentlicht wurde.
          format: date-time
        updatedAt:
          type: string
          description: Zeitstempel, wann die Zeile das letzte Mal aktualisiert wurde
          format: date-time
        values:
          type: object
          additionalProperties:
            type: object
            properties: {}
          description: >-
            Liste der Schlüssel-Wert-Paare mit dem Spaltennamen und dem
            Spaltenwert
    Variant:
      type: object
      properties: {}
    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
    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: ''

````