Créer un lot de propriétés
curl --request POST \
--url https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": true,
"groupName": "contactinformation",
"hasUniqueValue": false,
"hidden": false,
"label": "My Contact Property",
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": false,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": false,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
]
}
'import requests
url = "https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create"
payload = { "inputs": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": True,
"groupName": "contactinformation",
"hasUniqueValue": False,
"hidden": False,
"label": "My Contact Property",
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": False,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": False,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
] }
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: [
{
displayOrder: 2,
fieldType: 'select',
formField: true,
groupName: 'contactinformation',
hasUniqueValue: false,
hidden: false,
label: 'My Contact Property',
name: 'my_contact_property',
options: [
{
description: 'Choice number one',
displayOrder: 1,
hidden: false,
label: 'Option A',
value: 'A'
},
{
description: 'Choice number two',
displayOrder: 2,
hidden: false,
label: 'Option B',
value: 'B'
}
],
type: 'enumeration'
}
]
})
};
fetch('https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create', 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/crm/v3/properties/{objectType}/batch/create",
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' => [
[
'displayOrder' => 2,
'fieldType' => 'select',
'formField' => true,
'groupName' => 'contactinformation',
'hasUniqueValue' => false,
'hidden' => false,
'label' => 'My Contact Property',
'name' => 'my_contact_property',
'options' => [
[
'description' => 'Choice number one',
'displayOrder' => 1,
'hidden' => false,
'label' => 'Option A',
'value' => 'A'
],
[
'description' => 'Choice number two',
'displayOrder' => 2,
'hidden' => false,
'label' => 'Option B',
'value' => 'B'
]
],
'type' => 'enumeration'
]
]
]),
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/crm/v3/properties/{objectType}/batch/create"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\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/crm/v3/properties/{objectType}/batch/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create")
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 \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": true,
"groupName": "contactinformation",
"hasUniqueValue": false,
"hidden": false,
"label": "My Contact Property",
"modificationMetadata": {
"archivable": true,
"readOnlyDefinition": false,
"readOnlyOptions": false,
"readOnlyValue": false
},
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": false,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": false,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": true,
"groupName": "contactinformation",
"hasUniqueValue": false,
"hidden": false,
"label": "My Contact Property",
"modificationMetadata": {
"archivable": true,
"readOnlyDefinition": false,
"readOnlyOptions": false,
"readOnlyValue": false
},
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": false,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": false,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{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"
}
}Lot
Create a batch of properties
Créez un lot de propriétés en utilisant les mêmes règles que lors de la création d’une propriété individuelle.
POST
/
crm
/
v3
/
properties
/
{objectType}
/
batch
/
create
Créer un lot de propriétés
curl --request POST \
--url https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": true,
"groupName": "contactinformation",
"hasUniqueValue": false,
"hidden": false,
"label": "My Contact Property",
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": false,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": false,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
]
}
'import requests
url = "https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create"
payload = { "inputs": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": True,
"groupName": "contactinformation",
"hasUniqueValue": False,
"hidden": False,
"label": "My Contact Property",
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": False,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": False,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
] }
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: [
{
displayOrder: 2,
fieldType: 'select',
formField: true,
groupName: 'contactinformation',
hasUniqueValue: false,
hidden: false,
label: 'My Contact Property',
name: 'my_contact_property',
options: [
{
description: 'Choice number one',
displayOrder: 1,
hidden: false,
label: 'Option A',
value: 'A'
},
{
description: 'Choice number two',
displayOrder: 2,
hidden: false,
label: 'Option B',
value: 'B'
}
],
type: 'enumeration'
}
]
})
};
fetch('https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create', 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/crm/v3/properties/{objectType}/batch/create",
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' => [
[
'displayOrder' => 2,
'fieldType' => 'select',
'formField' => true,
'groupName' => 'contactinformation',
'hasUniqueValue' => false,
'hidden' => false,
'label' => 'My Contact Property',
'name' => 'my_contact_property',
'options' => [
[
'description' => 'Choice number one',
'displayOrder' => 1,
'hidden' => false,
'label' => 'Option A',
'value' => 'A'
],
[
'description' => 'Choice number two',
'displayOrder' => 2,
'hidden' => false,
'label' => 'Option B',
'value' => 'B'
]
],
'type' => 'enumeration'
]
]
]),
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/crm/v3/properties/{objectType}/batch/create"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\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/crm/v3/properties/{objectType}/batch/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/v3/properties/{objectType}/batch/create")
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 \"displayOrder\": 2,\n \"fieldType\": \"select\",\n \"formField\": true,\n \"groupName\": \"contactinformation\",\n \"hasUniqueValue\": false,\n \"hidden\": false,\n \"label\": \"My Contact Property\",\n \"name\": \"my_contact_property\",\n \"options\": [\n {\n \"description\": \"Choice number one\",\n \"displayOrder\": 1,\n \"hidden\": false,\n \"label\": \"Option A\",\n \"value\": \"A\"\n },\n {\n \"description\": \"Choice number two\",\n \"displayOrder\": 2,\n \"hidden\": false,\n \"label\": \"Option B\",\n \"value\": \"B\"\n }\n ],\n \"type\": \"enumeration\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": true,
"groupName": "contactinformation",
"hasUniqueValue": false,
"hidden": false,
"label": "My Contact Property",
"modificationMetadata": {
"archivable": true,
"readOnlyDefinition": false,
"readOnlyOptions": false,
"readOnlyValue": false
},
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": false,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": false,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"displayOrder": 2,
"fieldType": "select",
"formField": true,
"groupName": "contactinformation",
"hasUniqueValue": false,
"hidden": false,
"label": "My Contact Property",
"modificationMetadata": {
"archivable": true,
"readOnlyDefinition": false,
"readOnlyOptions": false,
"readOnlyValue": false
},
"name": "my_contact_property",
"options": [
{
"description": "Choice number one",
"displayOrder": 1,
"hidden": false,
"label": "Option A",
"value": "A"
},
{
"description": "Choice number two",
"displayOrder": 2,
"hidden": false,
"label": "Option B",
"value": "B"
}
],
"type": "enumeration"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{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
oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2
The access token received from the authorization server in the OAuth 2.0 flow.
Paramètres de chemin
Corps
application/json
Show child attributes
Show child attributes
Réponse
successful operation
L'horodatage indiquant le moment où l'opération par lots a été terminée.
Show child attributes
Show child attributes
L'horodatage indiquant le début du traitement de l'opération de lot.
Le statut actuel de l'opération par lots, avec les valeurs possibles étant CANCELED, COMPLETE, PENDING ou PROCESSING.
Options disponibles:
CANCELED, COMPLETE, PENDING, PROCESSING Une collection d'URL renvoyant à de la documentation ou des ressources liées à l'opération de lot.
Show child attributes
Show child attributes
L'horodatage indiquant le moment où l'opération par lots a été demandée.
Dernière modification le 31 mars 2026
⌘I