curl --request POST \
--url https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"childTableId": 123,
"displayIndex": 123,
"values": {},
"id": "<string>",
"name": "<string>",
"path": "<string>"
}
]
}
'import requests
url = "https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update"
payload = { "inputs": [
{
"childTableId": 123,
"displayIndex": 123,
"values": {},
"id": "<string>",
"name": "<string>",
"path": "<string>"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inputs: [
{
childTableId: 123,
displayIndex: 123,
values: {},
id: '<string>',
name: '<string>',
path: '<string>'
}
]
})
};
fetch('https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'childTableId' => 123,
'displayIndex' => 123,
'values' => [
],
'id' => '<string>',
'name' => '<string>',
'path' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"childTableId\": 123,\n \"displayIndex\": 123,\n \"values\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"path\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"childTableId\": 123,\n \"displayIndex\": 123,\n \"values\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"path\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"childTableId\": 123,\n \"displayIndex\": 123,\n \"values\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"path\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"childTableId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"path": "<string>",
"publishedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"values": {}
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"childTableId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"path": "<string>",
"publishedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"values": {}
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"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"
}
}Update rows in batch in draft table
Met à jour plusieurs lignes en lot dans la version brouillon du tableau, avec un maximum de 100 lignes par appel. Consultez le point de terminaison « PATCH /tables//rows//draft » pour plus de détails sur la mise à jour d’une seule ligne.
curl --request POST \
--url https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"childTableId": 123,
"displayIndex": 123,
"values": {},
"id": "<string>",
"name": "<string>",
"path": "<string>"
}
]
}
'import requests
url = "https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update"
payload = { "inputs": [
{
"childTableId": 123,
"displayIndex": 123,
"values": {},
"id": "<string>",
"name": "<string>",
"path": "<string>"
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
inputs: [
{
childTableId: 123,
displayIndex: 123,
values: {},
id: '<string>',
name: '<string>',
path: '<string>'
}
]
})
};
fetch('https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'childTableId' => 123,
'displayIndex' => 123,
'values' => [
],
'id' => '<string>',
'name' => '<string>',
'path' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"childTableId\": 123,\n \"displayIndex\": 123,\n \"values\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"path\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"childTableId\": 123,\n \"displayIndex\": 123,\n \"values\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"path\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/cms/hubdb/2026-03/tables/{tableIdOrName}/rows/draft/batch/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"childTableId\": 123,\n \"displayIndex\": 123,\n \"values\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"path\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"childTableId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"path": "<string>",
"publishedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"values": {}
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"childTableId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"path": "<string>",
"publishedAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"values": {}
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"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"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Autorisations
The access token received from the authorization server in the OAuth 2.0 flow.
Paramètres de chemin
L'identifiant unique ou le nom du tableau HubDB contenant les lignes de brouillons à mettre à jour.
Corps
Un tableau d'objets HubDbTableRowV3BatchUpdateRequest, chacun contenant les détails d'une mise à jour de ligne. Cette propriété est obligatoire.
Show child attributes
Show child attributes
Réponse
successful operation
L'horodatage indiquant quand le traitement par lots a été terminé.
Un tableau d'objets HubDbTableRowV3 représentant les résultats de l'opération par lots.
Show child attributes
Show child attributes
L'horodatage indiquant quand le traitement par lots a commencé.
Statut actuel de l'opération par lots, avec les valeurs possibles suivantes : ANNULÉ, TERMINÉ, EN ATTENTE, EN COURS DE TRAITEMENT.
CANCELED, COMPLETE, PENDING, PROCESSING Une collection de liens associés à la réponse par lot.
Show child attributes
Show child attributes
L'horodatage indiquant quand la demande par lots a été effectuée.