Crear un lote de propiedades
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"
}
}Lote
Create a batch of properties
Crea un lote de propiedades utilizando las mismas reglas que cuando se crea una propiedad individual.
POST
/
crm
/
v3
/
properties
/
{objectType}
/
batch
/
create
Crear un lote de propiedades
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
Autorizaciones
oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2oauth2
The access token received from the authorization server in the OAuth 2.0 flow.
Parámetros de ruta
Cuerpo
application/json
Show child attributes
Show child attributes
Respuesta
successful operation
La marca de tiempo que indica cuándo se completó la operación por lotes.
Show child attributes
Show child attributes
La marca de tiempo que indica cuándo comenzó a procesarse la operación por lotes.
El estado actual de la operación por lotes, con los siguientes valores posibles: CANCELED, COMPLETE, PENDING o PROCESSING.
Opciones disponibles:
CANCELED, COMPLETE, PENDING, PROCESSING Una colección de URL que se enlazan con documentación o recursos relacionados con la operación por lotes.
Show child attributes
Show child attributes
La marca de tiempo que indica cuándo se solicitó la operación por lotes.
Última modificación el 3 de abril de 2026
⌘I