Zum Hauptinhalt springen
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 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 finden Sie in der CMS-Entwicklerdokumentation von HubSpot. Ä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. Wenn für eine Tabelle der öffentliche Zugriff zugelassen 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.

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, gelten die Standardbeschränkungen.

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: Darüber hinaus können Sie die folgenden optionalen Felder angeben: Ohne dass noch Spalten hinzugefügt wurden, könnte Ihre Erstellungsanfrage wie folgt aussehen:

Tabellenzeilen hinzufügen

Jede Spalte in einer HubDB-Tabelle kann mit den folgenden Eigenschaften definiert werden: Mit den obigen Feldern könnte Ihre Anfrage zum Erstellen einer neuen HubDB-Tabelle wie folgt aussehen:
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. 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: Unter Verwendung der oben aufgeführten Felder kann Ihre Anfrage beispielsweise wie folgt aussehen:

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: In der obigen Tabelle könnte Ihr config-JSON wie folgt aussehen:
Wenn Sie cURL verwenden, könnte Ihr Befehl wie folgt aussehen:

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 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:

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

Ä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.
Zuletzt geändert am 10. Februar 2026