Die HubDB-Endpunkte werden verwendet, um Daten in Ihren HubDB-Datentabellen abzurufen und zu verwalten.
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.
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.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.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.
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" |
Feld | Typ | Beschreibung | Beispiel |
---|---|---|---|
useForPages | Boolesch | Gibt an, ob die Tabelle zum Erstellen von dynamischen Seiten 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 mithilfe von untergeordneten Tabellen erstellt werden sollen. | "enableChildTablePages": false |
columns | Objekt | Die Spalten der Tabelle. Erfahren Sie im Abschnitt Tabellenspalten hinzufügen mehr über die Eigenschaften von Spalten. | See "Add table columns" section below |
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:
| "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"}] |
id
-Feld der Spalte in das Eingabeobjekt auf.
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. 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 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 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 gibt childTableId die ID der untergeordneten Tabelle an. | "childTableId": 123456 |
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.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 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 weiter unten. | "resetTable": true |
nameSourceColumn | Zahl | Für Tabellen, die für dynamische Seiten aktiviert sind, 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, 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"}
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" |
config
-JSON wie folgt aussehen:
yyyy/mm/dd
yyyy/mm/dd
mm/dd/yyyy
mm/dd/yy
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
next Thursday
Today
tomorrow
3 days from now
resetTable
-Feld auf true
oder false
(Standard) setzen, um zu verwalten, ob HubDB-Zeilendaten überschrieben werden.
resetTable
auf true
festgelegt ist:
hs_id
) haben oder die Zeilen-ID als 0
angegeben ist, werden diese Zeilen mit den neu generierten Zeilen-IDs eingefügt.resetTable
auf false
festgelegt ist (Standard):
0
angegeben ist, werden diese Zeilen mit den neu generierten Zeilen-IDs eingefügt.GET
-Anfrage an /cms/v3/hubdb/tables
durch.GET
-Anfrage an /cms/v3/hubdb/tables{tableIdOrName}
durch.GET
-Anfrage an /cms/v3/hubdb/tables{tableIdOrName}/rows
durch.GET
-Anfrage an /cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}
durch.portalId
angeben.
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:
multiselect
-Spalten sollten die Werte durch Komma getrennt werden (z. B. multiselect_column__contains=1,2
).
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
hs_id
eine number
-Spalte, die hs_created_at
-Spalte eine datetime
und die Spalten hs_path
und hs_name
sind text
-Spalten.
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 zwischen Groß- und Kleinschreibung unterschieden. |
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 nicht 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. |
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
-Sortierung gibt z. B. die am weitesten entfernten Elemente zuerst zurück:
sort=-geo_distance(location_column,42.37,-71.07)
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.
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.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:
|
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. |
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.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.get
/update
/delete
eine Zeilenzelle zugunsten der PATCH
-Endpunkte für Zeilenaktualisierungen entfernt.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.