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

# CMS-API | HubDB

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>;
};

<RelatedApiLink />

<Accordion title="Bereichsanforderungen">
  <ScopesList
    scopes={[
  'hubdb'
]}
  />
</Accordion>

HubDB ist ein relationaler Datenspeicher, der Daten als Zeilen, Spalten und Zellen in einer Tabelle darstellt, ähnlich wie in einer Kalkulationstabelle. HubDB Tabellen können [in Ihrem HubSpot-Account](/cms/start-building/features/storage/hubdb#create-a-hubdb-table) hinzugefügt oder geändert werden, aber Sie können auch die hier dokumentierten API-Endpunkte verwenden. Informationen zur Verwendung von Daten aus HubDB-Tabellen auf Ihrer Website oder in [E-Mails mit programmierbaren Inhalten](/cms/start-building/features/data-driven-content/emails-with-programmable-content) finden Sie in [der CMS-Entwicklerdokumentation von HubSpot](/cms/start-building/features/storage/hubdb).

Ähnlich wie bei HubSpot-Website-Seiten unterstützen HubDB Tabellen `draft`- und `published`-Versionen. Auf diese Weise können Sie Daten in der Tabelle aktualisieren, entweder zu Testzwecken oder für einen manuellen Genehmigungsprozess, ohne dass sich dies auf Live-Seiten auswirkt. Erfahren Sie mehr über [Entwurfs- und Live-Tabellen.](#draft-vs-live-tables)

Wenn für eine Tabelle der [öffentliche Zugriff zugelassen](https://knowledge.hubspot.com/website-and-landing-pages/create-and-hubdb-tables#manage-table-settings-cms-hub-professional-and-enterprise-only) werden soll, können Sie ohne Authentifizierung auf die veröffentlichten Version der Tabelle und der Zeilen zugreifen, indem Sie Ihre HubSpot-Account-ID über den Abfrageparameter `portalId` angeben.

Wenn Sie von v2 der HubDB-API migrieren, erfahren Sie hier mehr über die [Änderungen in der aktuellen (v3)-API.](#changes-in-v3)

<Warning>
  ### Bitte beachten:

  Endpunkte, die `GET` unterstützen , unterstützen auch `CORS`, sodass Sie clientseitig mit JavaScript und Ihrer Account-ID auf Daten in einer Tabelle zugreifen können. Andere Methoden und der Endpunkt *Alle Tabellen abrufen* erfordern eine Authentifizierung und unterstützen `CORS`nicht.
</Warning>

## Ratenbeschränkungen

HubDB-API-Anfragen unterliegen je nach Art der Anfrage unterschiedlichen Beschränkungen:

* Alle durchgeführten `GET`-Anfragen, die keine Authentifizierung erfordern (einschließlich clientseitiger JavaScript-Anfragen), sind auf 10 Anfragen pro Sekunde beschränkt. Diese Anfragen werden nicht auf das tägliche Limit angerechnet.
* Für alle anderen Anfragen, die [Authentifizierung verwenden](https://developers.hubspot.de/docs/guides/api/oauth/tokens), gelten die [Standardbeschränkungen](/api-reference/overview).

## Entwurfs- vs. Live-Tabellen

HubDB-Tabellen verfügen sowohl über eine Entwurfs- als auch über eine Live-Version, und Live-Versionen können veröffentlicht oder ihre Veröffentlichung rückgängig gemacht werden. Auf diese Weise können Sie die Daten in der Tabelle aktualisieren, entweder für Seitenvorschauen oder Tests oder für einen manuellen Genehmigungsprozess, ohne dass sich dies auf Live-Seiten auswirkt.

In dieser API sind separate Endpunkte für die Entwurfs- und die veröffentlichte Version einer Tabelle vorgesehen. Sie können beispielsweise die veröffentlichte Version einer Tabelle abrufen, indem Sie eine `GET`-Anfrage an den folgenden Endpunkt durchführen:

`/cms/v3/hubdb/tables/{tableIdOrName}`

Um alle Inhalte abzurufen, die bereits entworfen, aber noch nicht veröffentlicht wurden, fügen Sie am Ende der URL `/draft` hinzu:

`/cms/v3/hubdb/tables/{tableIdOrName}/draft`

Entwurfsdaten können überprüft und dann in HubSpot oder mit dem `/push-live`-Endpunkt übertragen werden. Die Entwurfsdaten können auch über den `/reset`-Endpunkt verworfen werden, sodass Sie ohne Unterbrechung zur aktuellen Live-Version der Daten zurückkehren können.

## Eine HubDB-Tabelle erstellen

Um eine HubDB-Tabelle zu erstellen, führen Sie eine `POST`-Anfrage an `/cms/v3/hubdb/tables` durch.

Geben Sie im Anfragetext die folgenden Pflichtfelder an:

| Feld    | Typ          | Beschreibung                                                                                                                                                                                                                  | Beispiel             |
| ------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| `name`  | Zeichenfolge | Der interne Name der Tabelle. Dieser Name kann nicht mehr geändert werden, nachdem die Tabelle erstellt wurde. Namen dürfen nur Kleinbuchstaben, Ziffern und Unterstriche enthalten und dürfen nicht mit einer Zahl beginnen. | `"name": "my_table"` |
| `label` | Zeichenfolge | Das Label der Tabelle, das Benutzer beim Bearbeiten der Tabelle in HubSpot sehen.                                                                                                                                             | `"label":"My table"` |

Darüber hinaus können Sie die folgenden optionalen Felder angeben:

| Feld                    | Typ      | Beschreibung                                                                                                                                                                         | Beispiel                                |
| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------- |
| `useForPages`           | Boolesch | Gibt an, ob die Tabelle zum [Erstellen von dynamischen Seiten](#configuring-hubdb-tables-for-dynamic-pages) verwendet werden kann                                                    | `"useForPages": false`                  |
| `allowPublicAPIAccess`  | Boolesch | Gibt an, ob die Tabelle ohne Autorisierung gelesen werden kann.                                                                                                                      | `"allowPublicApiAccess": false`         |
| `allowChildTables`      | Boolesch | Gibt an, ob untergeordnete Tabellen für die Tabelle erstellt werden können.                                                                                                          | `"allowChildTables": false`             |
| `enableChildTablePages` | Boolesch | Gibt an, ob [dynamische Seiten mit mehreren Ebenen](/cms/start-building/features/data-driven-content/hubdb/multilevel) mithilfe von untergeordneten Tabellen erstellt werden sollen. | `"enableChildTablePages": false`        |
| `columns`               | Objekt   | Die Spalten der Tabelle. Erfahren Sie im Abschnitt [Tabellenspalten hinzufügen](#add-table-columns) mehr über die Eigenschaften von Spalten.                                         | `See "Add table columns" section below` |

Ohne dass noch Spalten hinzugefügt wurden, könnte Ihre Erstellungsanfrage wie folgt aussehen:

```json theme={null}
// Example request
{
  "name": "test_table",
  "label": "Test Table",
  "useForPages": false,
  "allowPublicApiAccess": false,
  "allowChildTables": true,
  "enableChildTablePages": false,
  "columns": []
}
```

### Tabellenzeilen hinzufügen

Jede Spalte in einer HubDB-Tabelle kann mit den folgenden Eigenschaften definiert werden:

| Feld      | Typ          | Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Beispiel                                                                                   |
| --------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `name`    | Zeichenfolge | Erforderlich. Der interne Name der Spalte. Kann nach dem Erstellen der Spalte nicht mehr geändert werden.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | `"name": "row_name"`                                                                       |
| `label`   | Zeichenfolge | Optional. Das Label für die Spalte, das Benutzern beim Bearbeiten der Tabelle in HubSpot angezeigt wird.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `"label": "Row label"`                                                                     |
| `type`    | Zeichenfolge | Der Datentyp der Spalte. Muss einer der folgenden sein:<ul><li>`TEXT`: ein Textfeld.</li><li>`RICHTEXT`: ein Textfeld, das die grundlegende HTML-Formatierung unterstützt. Nicht empfohlen für unformatiertes HTML, da es Auswirkungen darauf haben kann, ob das HTML in HubSpot bearbeitet werden kann. Die Bearbeitung des Codes in HubSpot kann sich auch auf die Art und Weise auswirken, wie der Code gerendert wird. </li><li>`NUMBER`: ein Zahlenfeld.</li><li>`BOOLEAN`: wird in HubSpot als Kontrollkästchen dargestellt. Verwendet `0` für deaktiviert und `1` für aktiviert.</li><li>`DATE`: speichert ein bestimmtes Datum als Millisekunden-Zeitstempel, der auf Mitternacht UTC festgelegt ist.</li><li>`DATETIME`: speichert ein Datum und eine Uhrzeit als Millisekunden-Zeitstempel.</li><li>`SELECT`: Die Spalte kann nur auf eine aus einer Reihe von Optionen festgelegt werden. Siehe das `options`-Feld unten für erforderliche Eigenschaften.</li><li>`MULTISELECT`: Die Spalte kann auf eine oder mehrere Optionen aus einer Reihe von Optionen festgelegt werden. Siehe das `options`-Feld unten für erforderliche Eigenschaften.</li><li>`LOCATION`: speichert einen Breiten- und Längengrad.</li><li>`IMAGE`: speichert die URL eines Bildes.</li><li>`VIDEO`: speichert die Player-ID des Videos.</li><li>`FOREIGN_ID`: Die Spalte verweist auf eine Spalte aus einer anderen HubDB-Tabelle. Darüber hinaus müssen Sie die andere HubDB-Tabelle mit den folgenden Eigenschaften definieren:<ul><li>foreignTableId: die ID der anderen HubDB-Tabelle. </li><li>foreignColumnId: die ID der Spalte in der anderen HubDB-Tabelle.</li></ul></li><li>`CURRENCY`: speichert die Zahl als Währungswert.</li><li>`FILE`: speichert eine Datei aus dem Datei-Manager. Sie müssen auch ein `fileType`-Feld berücksichtigen, um anzugeben, ob das Feld alle Dateitypen (`FILE`) oder nur Dokumenttypen wie PDF (`DOCUMENT`) speichern kann.</li></ul> | `"type": "type"`                                                                           |
| `options` | Objekt       | Eine Liste von Optionen für Auswahl- und Mehrfachauswahlspalten. Jede Option wird mit einem `name` zusammen mit einem `type` gleich `option` definiert.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `"option": [{"name":"Option 1", "type":"option"}, {"name": "Option 2", "type": "option"}]` |

Mit den obigen Feldern könnte Ihre Anfrage zum Erstellen einer neuen HubDB-Tabelle wie folgt aussehen:

```json theme={null}
// Example request
{
  "label": "Test Table",
  "name": "test_table",
  "columns": [
    {
      "name": "text_column",
      "label": "Text Column",
      "archived": false,
      "type": "TEXT"
    },
    {
      "name": "number_column",
      "label": "Number Column",
      "archived": false,
      "type": "NUMBER"
    },
    {
      "name": "multiselect",
      "label": "Multi Select Column",
      "archived": false,
      "type": "multiselect",
      "options": [
        {
          "name": "Option 1",
          "type": "option"
        },
        {
          "name": "Option 2",
          "type": "option"
        }
      ]
    }
  ],
  "useForPages": true,
  "allowChildTables": true,
  "enableChildTablePages": false,
  "allowPublicApiAccess": false
}
```

Nach dem Erstellen einer Tabelle werden den Spalten die IDs in aufsteigender Reihenfolge zugewiesen. Nehmen Sie beim Aktualisieren vorhandener Spalten das `id`-Feld der Spalte in das Eingabeobjekt auf.

### Tabellenzeilen hinzufügen

Sie können Zeilen entweder manuell über die API hinzufügen oder [Zeilen aus einer CSV-Datei importieren](#import-rows-from-csv).

Um einer HubDB-Tabelle Zeilen hinzuzufügen, führen Sie eine `POST`-Anfrage an `/cms/v3/hubdb/tables/{tableIdOrName}/rows` durch.

Für jede Tabellenzeile können Sie die folgenden Felder berücksichtigen:

| Feld           | Typ          | Beschreibung                                                                                                                                                                                                                                                              | Beispiel                                                         |
| -------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `values`       | Objekt       | Eine Liste von Schlüssel-Wert-Paaren mit dem Spaltennamen und dem Wert, den Sie der Spalte hinzufügen möchten.<br /><br />Wenn Sie keinen bestimmten Wert für eine Spalte festlegen möchten, können Sie den Spaltennamen in der Liste der Schlüssel-Wert-Paare weglassen. | `"values": { "text_column": "sample text", "number_column": 76}` |
| `path`         | Zeichenfolge | Für Tabellen, die [für dynamische Seiten aktiviert](/cms/start-building/features/data-driven-content/hubdb/overview) sind, ist `path` das Pfadsuffix, das für die für diese Zeile erstellte Seite verwendet wird.                                                         | `"path": "example_url_path"`                                     |
| `name`         | Zeichenfolge | Bei Tabellen, die [für dynamische Seiten aktiviert](/cms/start-building/features/data-driven-content/hubdb/overview) sind, ist `name` der HTML-Titel, der für die für diese Zeile erstellte Seite verwendet wird.                                                         | `"name": "Example Title"`                                        |
| `childTableId` | Zahl         | Beim Erstellen [von dynamischen Seiten mit mehreren Ebenen](/cms/start-building/features/data-driven-content/hubdb/multilevel) gibt `childTableId` die ID der untergeordneten Tabelle an.                                                                                 | `"childTableId": 123456`                                         |

Unter Verwendung der oben aufgeführten Felder kann Ihre Anfrage beispielsweise wie folgt aussehen:

```json theme={null}
// Example request
{
  "values": {
    "text_column": "sample text value",
    "number_column": 76,
    "rich_text_column": "<strong>This is a styled paragraph.</strong>",
    "date_column": 1591228800000,
    "date_time_column": 1604450520000,
    "boolean_column": 1,
    "select_column": {
      "name": "option 1",
      "type": "option"
    },
    "multiselect_column": [
      {
        "name": "Option 1",
        "type": "option"
      },
      {
        "name": "Option 2",
        "type": "option"
      }
    ],
    "url_column": "https://www.hubspot.com/marketing",
    "video_column": 3392210008,
    "image_column": {
      "url": "https://f.hubspotusercontentqa00.net/hubfs/99992002/image3%20(1).jpg",
      "width": 1600,
      "height": 900,
      "type": "image"
    },
    "foreign_id_column": [
      {
        "id": "4364402239",
        "type": "foreignid"
      },
      {
        "id": "4364402240",
        "type": "foreignid"
      }
    ]
  },
  "path": "test_path",
  "name": "test_title",
  "childTableId": "1902373"
}
```

### Zeilen aus CSV importieren

Um Daten aus einer CSV-Datei in eine HubDB-Tabelle zu importieren, führen Sie eine `POST`-Anfrage an `/cms/v3/hubdb/tables/{tableIdOrName}/draft/import` durch.

Der Import-Endpunkt nimmt eine `multipart/form-data`-`POST`-Anfrage entgegen:

* `config`**:** eine Reihe von JSON-formatierten Optionen für den Import.
* `file`**:** die CSV-Datei, die Sie importieren möchten.

Nehmen Sie in `config` die folgenden Felder als JSON-Zeichenfolge auf:

| Feld                     | Typ          | Beschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Beispiel                                                                                |
| ------------------------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| `skipRows`               | Zahl         | Die Anzahl der Kopfzeilen, die übersprungen werden sollen. Dieses Feld hat standardmäßig den Wert `1`, wobei die erste Zeile übersprungen und als Kopfzeile behandelt wird. Legen Sie dies auf `0` fest, wenn alle Zeilen gültige Daten sind.                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `"skipRows": 0`                                                                         |
| `separator`              | Zeichenfolge | Das Spaltentrennzeichen in der CSV-Datei. Standardmäßig auf `","` festgelegt.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `"separator": ","`                                                                      |
| `idSourceColumn`         | Zahl         | Der Index der Spalte in der Quelledatei, die die ID (`hs_id`) der Zeile enthält. Wenn diese Spalte angegeben wird, aktualisiert der Import die vorhandenen Zeilen in der Tabelle für die übereinstimmenden Zeilen-IDs aus der CSV-Datei. Dies ist optional und Sie können dies beim ersten Importieren von Daten in eine Tabelle ignorieren. Weitere Informationen finden Sie im Abschnitt [Optionen zum Zurücksetzen](#reset-options) weiter unten.                                                                                                                                                                                                                                                             | `"idSourceColumn": 1`                                                                   |
| `resetTable`             | Boolesch     | Der Standardwert ist `false`, was bedeutet, dass die Zeilen der Tabelle aktualisiert werden, ohne vorhandene Zeilen zu entfernen. Bei Festlegung auf `true` überschreiben die Kalkulationstabellenzeilen die Tabellendaten, d. h., alle Zeilen in der Tabelle, die nicht in der Tabelle enthalten sind, werden gelöscht. Weitere Informationen finden Sie im Abschnitt [Optionen zum Zurücksetzen](#reset-options) weiter unten.                                                                                                                                                                                                                                                                                 | `"resetTable": true`                                                                    |
| `nameSourceColumn`       | Zahl         | Für Tabellen, die [für dynamische Seiten aktiviert sind](/cms/start-building/features/data-driven-content/hubdb/overview), gibt `nameSourceColumn` die Spalte in der CSV-Datei an, die den `name` der Zeile enthält. Die Spaltennummern sind in aufsteigender Reihenfolge, wobei `1` die erste Spalte ist.                                                                                                                                                                                                                                                                                                                                                                                                       | `"nameSourcecolumn": 5`                                                                 |
| `pathSourceColumn`       | Zahl         | Für Tabellen, die [für dynamische Seiten aktiviert sind](/cms/start-building/features/data-driven-content/hubdb/overview), gibt `pathSourceColumn` die Spalte in der CSV-Datei an, die den `path` der Zeile enthält. Die Spaltennummern sind in aufsteigender Reihenfolge, wobei `1` die erste Spalte ist.                                                                                                                                                                                                                                                                                                                                                                                                       | `"pathSourcecolumn": 6`                                                                 |
| `childTableSourceColumn` | Zahl         | Gibt die Spalte in der CSV-Datei an, die die `childTableId` der Zeile enthält. Die Spaltennummern sind in aufsteigender Reihenfolge, wobei `1` die erste Spalte ist.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | `"childTableSourcecolumn": 3`                                                           |
| `columnMappings`         | Array        | Eine Liste der Zuordnungen der Spalten in der Quelle-Datei zu den Spalten in der HubDB-Zieltabelle. Jede Zuordnung muss das folgende Format habent: `{"source":1,"target”:"columnIdOrName"}` <ul><li>**Quelle:** der Spaltenindex in der Quelldatei. Zum Beispiel `2` für die zweite Spalte.</li><li>**Ziel:** die ID oder der Name der Spalte der HubDB-Tabelle. Sie können die ID oder den Namen einer Spalte abrufen, indem Sie [die Details für die Tabelle abrufen](#retrieve-hubdb-data).</li></ul>Wenn Ihre Datei eine `hs_id`-Spalte enthält, sollte diese nicht in `columnMappings`enthalten sein. Berücksichtigen Sie sie stattdessen als die `idSourceColumn`, um vorhandene Zeilen zu aktualisieren. | `"columnMappings": [{"source":1, "target": 2}, {"source": 2, "target": "column_name"}]` |
| `primaryKeyColumn`       | Zeichenfolge | Der Name einer Spalte in der HubDB-Zieltabelle, die für die Deduplizierung verwendet wird. Die ID der Spalte kann nicht für dieses Feld verwendet werden.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | `"primaryKeyColumn": "column_name"`                                                     |
| `encoding`               | Zeichenfolge | Der Codierungstyp der Datei. Zum Beispiel `utf-8`, `ascii`, `iso-8859-2`, `iso-8859-5`, `iso-2022-jp`, `windows-1252`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `"encoding": "utf-8"`                                                                   |
| `format`                 | Zeichenfolge | Nur CSV wird unterstützt.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | `"format": "csv"`                                                                       |

In der obigen Tabelle könnte Ihr `config`-JSON wie folgt aussehen:

```json theme={null}
// Example config JSON
{
  "skipRows": 1,
  "separator": ",",
  "idSourceColumn": 1,
  "resetTable": false,
  "columnMappings": [
    {
      "target": 1,
      "source": 2
    },
    {
      "target": 2,
      "source": "zip_code"
    }
  ],
  "primaryKeyColumn": "name",
  "encoding": "utf-8",
  "format": "csv"
}
```

Wenn Sie cURL verwenden, könnte Ihr Befehl wie folgt aussehen:

```shell theme={null}
curl -L -X POST 'https://api.hubspotqa.com/hubdb/api/v2/tables/xxxxxx/import?portalId=xxxxxxx' \
-H 'Content-Type: multipart/form-data' \
-F 'config="{\"skipRows\":1,\"format\":\"csv\",\"separator\":\",\",\"encoding\":\"iso-8859-1\",\"columnMappings\":[{\"target\":1,\"source\":7},{\"target\":3,\"source\":8}],\"idSourceColumn\":1,\"pathSourceColumn\":null,\"nameSourceColumn\":null,\"childTableSourceColumn\":null,\"resetTable\":true}"' \
-F 'file=@"/Users/xxxxxxxxxxxxx/Downloads/filename.csv"'
```

### Datumsformatierung

Es gibt mehrere Formate, die Sie verwenden können, wenn Sie Daten in eine Spalte vom Typ „Datum“ importieren.

**Ganzzahlen**

* `yyyy/mm/dd`
* `yyyy/mm/dd`
* `mm/dd/yyyy`
* `mm/dd/yy`

Bei diesen Formaten muss der Monat vor dem Tag liegen (d. h., `dd/mm/yy` wird nicht akzeptiert). Ganzzahlen können durch Bindestriche (`-`) oder Schrägstriche (`/`) getrennt werden.

**Datumsangaben ohne festes Format**

Sie können auch Datumsformate importieren, die weniger standardisiert sind als ganzzahlige Datumsangaben. Zum Beispiel:\*\*

* `The 1st of March in the year 2022`
* `Fri Mar 4 2022`
* `March 4th '22`

**Relative Daten**

HubSpot analysiert die folgenden Datumsformate relativ zum aktuellen Tag:\*\*

* `next Thursday`
* `Today`
* `tomorrow`
* `3 days from now`

### Optionen zum Zurücksetzen

Wenn Sie Daten aus einer CSV-Datei in eine HubDB-Tabelle importieren, können Sie das `resetTable`-Feld auf `true` oder `false` (Standard) setzen, um zu verwalten, ob HubDB-Zeilendaten überschrieben werden.

* Wenn `resetTable` auf `true` festgelegt ist:

  * Wenn die Zeilen in der CSV-Datei keine Zeilen-ID-Spalte (`hs_id`) haben oder die Zeilen-ID als `0` angegeben ist, werden diese Zeilen mit den neu generierten Zeilen-IDs eingefügt.
  * Wenn die Zeilen-IDs in der CSV-Datei bereits in der Zieltabelle vorhanden sind, werden die vorhandenen Zeilen in der Tabelle mit den neuen Werten aus der Eingabedatei aktualisiert.
  * Wenn die Tabelle Zeilen enthält, die Eingabe-CSV-Datei jedoch nicht über diese Zeilen-IDs verfügt, werden diese Zeilen aus der Zieltabelle gelöscht.
  * Wenn die Zeilen-IDs in der Eingabe-CSV-Datei nicht in der Zieltabelle vorhanden sind, werden diese Zeilen mit den neu generierten Zeilen-IDs eingefügt, und die in der Eingabedatei angegebenen Zeilen-IDs werden ignoriert.
  * Wenn die Eingabe-CSV-Datei die Zeilen-ID-Spalte überhaupt nicht enthält, werden alle Zeilen aus der Zieltabelle gelöscht, und die Zeilen aus der Eingabedatei werden mit den neu generierten Zeilen-IDs eingefügt.

* Wenn `resetTable` auf `false` festgelegt ist (Standard):

  * Wenn die Zeilen-IDs in der CSV-Datei bereits in der Zieltabelle vorhanden sind, werden die vorhandenen Zeilen in der Tabelle mit den neuen Werten aus der Eingabedatei aktualisiert.
  * Wenn die Tabelle Zeilen enthält, die Eingabe-CSV-Datei jedoch nicht über diese Zeilen-IDs verfügt, werden diese Zeilen *nicht* aus der Zieltabelle gelöscht, und diese Zeilen bleiben unverändert.
  * Wenn die Zeilen-IDs in der Eingabe-CSV-Datei nicht in der Zieltabelle vorhanden sind, werden diese Zeilen mit den neu generierten Zeilen-IDs eingefügt, und die in der Eingabedatei angegebenen Zeilen-IDs werden ignoriert.
  * Wenn die Zeilen in der CSV-Datei keine Spalte mit Zeilen-ID aufweisen oder die Zeilen-ID als `0` angegeben ist, werden diese Zeilen mit den neu generierten Zeilen-IDs eingefügt.

## HubDB-Daten abrufen

Es gibt mehrere Möglichkeiten, HubDB-Daten abzurufen, je nachdem, ob Sie nach Tabellendetails oder nach den Zeilen einer Tabelle suchen:

* Um Tabellendetails von allen veröffentlichten Tabellen abzurufen, führen Sie eine `GET`-Anfrage an `/cms/v3/hubdb/tables` durch.
* Um Tabellendetails aus einer bestimmten veröffentlichten Tabelle abzurufen, führen Sie eine `GET`-Anfrage an `/cms/v3/hubdb/tables{tableIdOrName}` durch.
* Um alle Zeilen aus einer bestimmten Tabelle abzurufen, führen Sie eine `GET`-Anfrage an `/cms/v3/hubdb/tables{tableIdOrName}/rows` durch.
* Um eine bestimmte Zeile aus einer Tabelle abzurufen, führen Sie eine `GET`-Anfrage an `/cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}` durch.

Beim Abrufen von Zeilendaten können Sie die Ergebnisse weiter filtern und sortieren.

Wenn für eine Tabelle der [öffentliche Zugriff zugelassen](https://knowledge.hubspot.com/website-and-landing-pages/create-and-hubdb-tables#manage-table-settings-cms-hub-professional-and-enterprise-only) werden soll, können Sie ohne Authentifizierung auf die veröffentlichten Version der Tabelle und der Zeilen zugreifen, indem Sie Ihre HubSpot-Account-ID über den Abfrageparameter `portalId` angeben.

### Zurückgegebene Zeilen filtern

Beim Abrufen von HubDB-Tabellendaten können Sie Filter als Abfrageparameter anwenden, um bestimmte Daten zu erhalten. Die Filterabfrageparameter sind wie folgt aufgebaut: `columnName__operator`.

Wenn Sie z. B. eine Zahlenspalte mit dem Namen *bar* haben, können Sie die Ergebnisse so filtern, dass nur Zeilen enthalten sind, bei denen *bar* größer als 10 ist: `&bar__gt=10`.

Alle Filter werden mit UND verknüpft (ODER-Filter werden derzeit nicht unterstützt).

Beachten Sie beim Filtern Folgendes:

* Bei der Übergabe von Werten für `multiselect`-Spalten sollten die Werte durch Komma getrennt werden (z. B. `multiselect_column__contains=1,2`).

* Bei `datetime`-Filtern können Sie relative Datumsangaben anstelle von Zeitstempeln verwenden, um einen Wert relativ zur aktuellen Zeit anzugeben. Beispielsweise entspricht `-3h` dem Zeitstempel 3 Stunden vor jetzt, während `10s` 10 Sekunden in der Zukunft entspricht. Unterstützte Zeiteinheiten sind ms (Millisekunden), s (Sekunden), m (Minuten), h (Stunden), d (Tage). Die aktuelle Uhrzeit kann durch Angabe eines Nullwerts verwendet werden: 0s

* Für die Zwecke dieser Filter ist die integrierte Spalte `hs_id` eine `number`-Spalte, die `hs_created_at`-Spalte eine `datetime` und die Spalten `hs_path` und `hs_name` sind `text`-Spalten.

Im Folgenden erfahren Sie, welche Operatoren auf welche Spaltentypen angewendet werden können:

| Operator       | Name                    | Beschreibung                                                                                                                                                                                                                                                                                        |
| -------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `eq (or none)` | Ist gleich              | Alle Spaltentypen. Dieser Filter wird angewendet, wenn kein Operator verwendet wird. Bei Verwendung mit Mehrfachauswahlspalten werden Zeilen zurückgegeben, die genau mit den angegebenen Werten übereinstimmen.                                                                                    |
| `ne`           | Ungleich                | Alle Spaltentypen.                                                                                                                                                                                                                                                                                  |
| `contains`     | Enthält                 | Text, Rich-Text und Mehrfachauswahl. Bei Verwendung mit Mehrfachauswahlspalten werden Zeilen zurückgegeben, die alle angegebenen Werte enthalten. Bei diesem Filter wird <u>zwischen Groß- und Kleinschreibung unterschieden</u>.                                                                   |
| `lt`           | Kleiner als             | Anzahl, Datum und Datetime.                                                                                                                                                                                                                                                                         |
| `lte`          | Kleiner als oder gleich | Anzahl, Datum und Datetime.                                                                                                                                                                                                                                                                         |
| `gt`           | Größer als              | Anzahl, Datum und Datetime.                                                                                                                                                                                                                                                                         |
| `gte`          | Größer als oder gleich  | Anzahl, Datum und Datetime.                                                                                                                                                                                                                                                                         |
| `is_null`      | Null                    | Alle Spaltentypen außer boolesch. Für diesen Filter ist kein Wert erforderlich (z. B. `&exampleColumn__is_null=`).                                                                                                                                                                                  |
| `not_null`     | Nicht null              | Alle Spaltentypen außer boolesch. Für diesen Filter ist kein Wert erforderlich (z. B. `&exampleColumn__not_null=`).                                                                                                                                                                                 |
| `like`         | Wie                     | Text und Rich-Text.                                                                                                                                                                                                                                                                                 |
| `not_like`     | Nicht wie               | Text und Rich-Text.                                                                                                                                                                                                                                                                                 |
| `icontains`    | Enthält                 | Text und Rich-Text. Bei diesem Filter wird <u>nicht</u> zwischen Groß- und Kleinschreibung unterschieden.                                                                                                                                                                                           |
| `startswith`   | Beginnt mit             | Text und Rich-Text.                                                                                                                                                                                                                                                                                 |
| `in`           | In                      | Anzahl, Auswahl und Mehrfachauswahl. Gibt Zeilen zurück, in denen die Spalte mindestens eine der übergebenen Optionen enthält. Wenn der Abfrageparameter keinen anderen `sort`-Wert enthält, werden die Ergebnisse in der Reihenfolge sortiert, in der die Werte im `in`-Operator angegeben werden. |

### Zurückgegebene Zeilen sortieren

Beim Abrufen von HubDB-Daten können Sie Sortierung als Abfrageparameter anwenden, um die Reihenfolge der zurückgegebenen Daten zu bestimmen. Um Daten zu sortieren, fügen Sie einen `sort`-Abfrageparameter hinzu und geben Sie den Spaltennamen an:

`&sort=columnName`

Standardmäßig werden die Daten in der natürlichen Reihenfolge der angegebenen Spalte zurückgegeben. Sie können die Sortierung umkehren, indem Sie ein `-` an den Spaltennamen anhängen:

`&sort=-columnName`

Sie können diesen Parameter mehrfach angeben, um nach mehreren Spalten zu sortieren.

Neben der Sortierung nach einer Spalte gibt es drei weitere Funktionen, die verwendet werden können:

* **geo\_distance(location\_column\_name, latitude, longitude):** nimmt den Namen einer Standortspalte und Koordinaten an und gibt die Zeilen danach geordnet zurück, wie weit der Wert der angegebenen Standortspalte von den angegebenen Koordinaten entfernt ist.

* \*\*length(column\_name):\*\*nimmt den Namen einer Spalte an und gibt die Zeilen geordnet nach der Länge des Spaltenwerts (berechnet als Zeichenfolge) zurück

* **random():** gibt die Zeilen in zufälliger Reihenfolge zurück.

Diese Funktionen unterstützen auch das Anordnen in umgekehrter Reihenfolge. Die folgende `geo_distance`-Sortierung gibt z. B. die am weitesten entfernten Elemente zuerst zurück:

`sort=-geo_distance(location_column,42.37,-71.07)`

## Konfigurieren von HubDB-Tabellen für dynamische Seiten

Mit dem CMS von HubSpot können Sie eine HubDB-Tabelle als Quelle verwenden, um [dynamische Seiten zu erstellen](/cms/start-building/features/data-driven-content/hubdb/overview). Sie können z. B. eine Tabelle erstellen, die eine Zeile für jedes Mitglied Ihres Führungsteams enthält, mit Spalten, die Informationen enthalten, die Sie auf einer Seite anzeigen möchten. Nachdem Sie diese Tabelle als dynamische Datenquelle für eine Seite ausgewählt haben, generiert diese Seite eine Listing-Seite, die alle Zeilen als Zusammenfassungselemente zusammen mit separaten Seiten für jede Zeile anzeigt, ähnlich wie bei einer Blog-Listing-Seite und Blogbeitragsseiten.

Um die Auswahl einer Tabelle als Quelle im Content-Editor zu aktivieren, müssen Sie `useForPage` auf `true` festlegen. Sie können optional `dynamicMetaTags` berücksichtigen, um anzugeben, welche Spalten für die Metadaten der einzelnen Seiten verwendet werden sollen.

<Warning>
  ### Bitte beachten:

  Wenn Sie `dynamicMetaTags` angeben, müssen Sie sicherstellen, dass die Seite `page_meta`-HubL-Tags anstelle von `content` verwendet. Weitere Informationen finden Sie im [Leitfaden für dynamische Seiten](/cms/start-building/features/data-driven-content/hubdb/overview).
</Warning>

Beispielsweise würde der folgende Code eine Tabelle erstellen, die für dynamische Seiten verwendet werden kann, und gibt die drei Spalten an, die für Seitenmetadaten verwendet werden sollen.

```json theme={null}
// Example POST request to create table
{
  "name": "dynamic_page_table",
  "label": "Dynamic page table",
  "useForPages": true,
  "columns": [
    {
      "name": "meta_description",
      "label": "Meta description",
      "archived": false,
      "type": "TEXT"
    },
    {
      "name": "featured_image",
      "label": "Featured image",
      "archived": false,
      "type": "IMAGE"
    },
    {
      "name": "canonical_url",
      "label": "Canonical URL",
      "archived": false,
      "type": "URL"
    }
  ],
  "dynamicMetaTags": {
    "DESCRIPTION": 1,
    "FEATURED_IMAGE_URL": 2,
    "LINK_REL_CANONICAL_URL": 3
  }
}
```

| Parameter                | Typ      | Beschreibung                                                                                                                                                                                                                                                                                                                                  |
| ------------------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useForPages`            | Boolesch | Auf `true` festlegen, damit die Tabelle als Quelle für dynamische Seiten verwendet werden kann.                                                                                                                                                                                                                                               |
| `dynamicMetaTags`        | Objekt   | Gibt die Spalten nach ID an, die für Metadaten auf jeder dynamischen Seite verwendet werden sollen. Kann enthalten:<ul><li>`DESCRIPTION`</li><li>`FEATURED_IMAGE_URL`</li><li>`LINK_REL_CANONICAL_URL`</li></ul>Für alle Metadatenfelder, die nicht angegeben sind, erben die Seiten die entsprechenden Werte von ihrer übergeordneten Seite. |
| `DESCRIPTION`            | Zahl     | Die numerische ID der Spalte, die für die Metabeschreibung der einzelnen Seiten verwendet werden soll.                                                                                                                                                                                                                                        |
| `FEATURED_IMAGE_URL`     | Zahl     | Die numerische ID der Spalte, die für die Feature-Bild-URL der einzelnen Seiten verwendet werden soll.                                                                                                                                                                                                                                        |
| `LINK_REL_CANONICAL_URL` | Zahl     | Die numerische ID der Spalte, die für die kanonische URL der einzelnen Seiten verwendet werden soll.                                                                                                                                                                                                                                          |

## Änderungen in v3

* Tabellen sollten sowohl `name` als auch `label` enthalten. Dieser Name kann nicht mehr geändert werden, nachdem die Tabelle erstellt wurde. Namen dürfen nur Kleinbuchstaben, Ziffern und Unterstriche enthalten und dürfen nicht mit einer Zahl beginnen. Sowohl `name` als auch `label` sollten im Account eindeutig sein.
* API unterstützt sowohl die `id` als auch `name` von Tabellen in URL-Pfaden.
* `GET`-Zeilenendpunkte geben den `name` der Spalte statt die `id` im `values`-Feld zurück. Außerdem erfordern `POST`/`PUT`/`PATCH`-Zeilenendpunkte den `name` einer Spalte statt die `id` im `values`-Feld.
* `PATCH`-Endpunkte für Zeilenaktualisierungen akzeptieren jetzt lückenhafte Aktualisierungen, d. h., Sie können nur die Spaltenwerte angeben, die Sie aktualisieren müssen (während Sie in früheren Versionen alle Spaltenwerte angeben mussten). Wenn Sie eine Spalte mit einer Liste von Werten aktualisieren, z. B. Mehrfachauswahl, müssen Sie die Liste aller Werte angeben. Um den Wert für eine Spalte zu löschen, müssen Sie die Spalte mit dem Wert wie `null` in der Anfrage angeben.
* Es wurden die Endpunkte zum `get`/`update`/`delete` eine Zeilenzelle zugunsten der `PATCH`-Endpunkte für Zeilenaktualisierungen entfernt.
* Der Import-Endpunkt unterstützt jetzt das optionales Feld `idSourceColumn` zusammen mit vorhandenen Feldern in den JSON-formatierten Optionen. Sie können dieses Feld verwenden, um die Spalte in der CSV-Datei anzugeben, die Zeilen-IDs enthält. Um neue Zeilen zusammen mit den neuen Werten für vorhandene Zeilen zu importieren, können Sie einfach `0` als Zeilen-ID für die neuen Zeilen und die gültigen Zeilen-IDs für die vorhandenen Spalten angeben. Weitere Informationen finden Sie im Abschnitt zum Importieren. Außerdem können Sie Spaltennamen oder -IDs im Zielfeld der Spaltenzuordnungen in den JSON-formatierten Optionen verwenden.
* Der Klonen-Endpunkt erfordert einen neuen Namen und ein neues Label.
