curl --request POST \
--url https://api.vendaze.com/v1/custom-fields \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Tax ID",
"key": "tax_id",
"value": {
"select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
]
},
"required": false,
"show_people": true,
"show_companies": true,
"show_deals": false
}
'import requests
url = "https://api.vendaze.com/v1/custom-fields"
payload = {
"label": "Tax ID",
"key": "tax_id",
"value": { "select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
] },
"required": False,
"show_people": True,
"show_companies": True,
"show_deals": False
}
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({
label: 'Tax ID',
key: 'tax_id',
value: {
select_list: [
{key: 'sl_option_a', option: 'Option A'},
{key: 'sl_option_b', option: 'Option B'}
]
},
required: false,
show_people: true,
show_companies: true,
show_deals: false
})
};
fetch('https://api.vendaze.com/v1/custom-fields', 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.vendaze.com/v1/custom-fields",
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([
'label' => 'Tax ID',
'key' => 'tax_id',
'value' => [
'select_list' => [
[
'key' => 'sl_option_a',
'option' => 'Option A'
],
[
'key' => 'sl_option_b',
'option' => 'Option B'
]
]
],
'required' => false,
'show_people' => true,
'show_companies' => true,
'show_deals' => false
]),
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.vendaze.com/v1/custom-fields"
payload := strings.NewReader("{\n \"label\": \"Tax ID\",\n \"key\": \"tax_id\",\n \"value\": {\n \"select_list\": [\n {\n \"key\": \"sl_option_a\",\n \"option\": \"Option A\"\n },\n {\n \"key\": \"sl_option_b\",\n \"option\": \"Option B\"\n }\n ]\n },\n \"required\": false,\n \"show_people\": true,\n \"show_companies\": true,\n \"show_deals\": false\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.vendaze.com/v1/custom-fields")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Tax ID\",\n \"key\": \"tax_id\",\n \"value\": {\n \"select_list\": [\n {\n \"key\": \"sl_option_a\",\n \"option\": \"Option A\"\n },\n {\n \"key\": \"sl_option_b\",\n \"option\": \"Option B\"\n }\n ]\n },\n \"required\": false,\n \"show_people\": true,\n \"show_companies\": true,\n \"show_deals\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vendaze.com/v1/custom-fields")
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 \"label\": \"Tax ID\",\n \"key\": \"tax_id\",\n \"value\": {\n \"select_list\": [\n {\n \"key\": \"sl_option_a\",\n \"option\": \"Option A\"\n },\n {\n \"key\": \"sl_option_b\",\n \"option\": \"Option B\"\n }\n ]\n },\n \"required\": false,\n \"show_people\": true,\n \"show_companies\": true,\n \"show_deals\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "Tax ID",
"key": "tax_id",
"value": {
"select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
]
},
"required": true,
"show_people": true,
"show_companies": true,
"show_deals": true,
"created_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "bad_request",
"message": "Request body must be valid JSON.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing or invalid Authorization header.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "insufficient_scope",
"message": "This endpoint requires the 'webhooks:read' scope.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "conflict",
"message": "A record with this value already exists.",
"fields": {
"key": "Value already in use."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "validation_error",
"message": "Validation failed.",
"fields": {
"url": "url must use HTTPS.",
"events": "At least one event is required."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 60 seconds.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}Create a custom field
Creates a new custom field in the workspace.
For select and multi_select types, pass the available options in value as an array of strings.
Required scope
Required scope
custom_fields:write
curl --request POST \
--url https://api.vendaze.com/v1/custom-fields \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "Tax ID",
"key": "tax_id",
"value": {
"select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
]
},
"required": false,
"show_people": true,
"show_companies": true,
"show_deals": false
}
'import requests
url = "https://api.vendaze.com/v1/custom-fields"
payload = {
"label": "Tax ID",
"key": "tax_id",
"value": { "select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
] },
"required": False,
"show_people": True,
"show_companies": True,
"show_deals": False
}
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({
label: 'Tax ID',
key: 'tax_id',
value: {
select_list: [
{key: 'sl_option_a', option: 'Option A'},
{key: 'sl_option_b', option: 'Option B'}
]
},
required: false,
show_people: true,
show_companies: true,
show_deals: false
})
};
fetch('https://api.vendaze.com/v1/custom-fields', 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.vendaze.com/v1/custom-fields",
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([
'label' => 'Tax ID',
'key' => 'tax_id',
'value' => [
'select_list' => [
[
'key' => 'sl_option_a',
'option' => 'Option A'
],
[
'key' => 'sl_option_b',
'option' => 'Option B'
]
]
],
'required' => false,
'show_people' => true,
'show_companies' => true,
'show_deals' => false
]),
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.vendaze.com/v1/custom-fields"
payload := strings.NewReader("{\n \"label\": \"Tax ID\",\n \"key\": \"tax_id\",\n \"value\": {\n \"select_list\": [\n {\n \"key\": \"sl_option_a\",\n \"option\": \"Option A\"\n },\n {\n \"key\": \"sl_option_b\",\n \"option\": \"Option B\"\n }\n ]\n },\n \"required\": false,\n \"show_people\": true,\n \"show_companies\": true,\n \"show_deals\": false\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.vendaze.com/v1/custom-fields")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Tax ID\",\n \"key\": \"tax_id\",\n \"value\": {\n \"select_list\": [\n {\n \"key\": \"sl_option_a\",\n \"option\": \"Option A\"\n },\n {\n \"key\": \"sl_option_b\",\n \"option\": \"Option B\"\n }\n ]\n },\n \"required\": false,\n \"show_people\": true,\n \"show_companies\": true,\n \"show_deals\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vendaze.com/v1/custom-fields")
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 \"label\": \"Tax ID\",\n \"key\": \"tax_id\",\n \"value\": {\n \"select_list\": [\n {\n \"key\": \"sl_option_a\",\n \"option\": \"Option A\"\n },\n {\n \"key\": \"sl_option_b\",\n \"option\": \"Option B\"\n }\n ]\n },\n \"required\": false,\n \"show_people\": true,\n \"show_companies\": true,\n \"show_deals\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "Tax ID",
"key": "tax_id",
"value": {
"select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
]
},
"required": true,
"show_people": true,
"show_companies": true,
"show_deals": true,
"created_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "bad_request",
"message": "Request body must be valid JSON.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "unauthorized",
"message": "Missing or invalid Authorization header.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "insufficient_scope",
"message": "This endpoint requires the 'webhooks:read' scope.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "conflict",
"message": "A record with this value already exists.",
"fields": {
"key": "Value already in use."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "validation_error",
"message": "Validation failed.",
"fields": {
"url": "url must use HTTPS.",
"events": "At least one event is required."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 60 seconds.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred.",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}Authorizations
OAuth 2.1 access token.
Body
Display label.
1 - 40"Tax ID"
Unique key within the workspace. Lowercase letters, digits, and underscores between words only.
1 - 35^[a-z0-9]+(_[a-z0-9]+)*$"tax_id"
Field type. Cannot be changed after the field is created via this parameter, use PATCH to update it.
text, long_text, select, multi_select, cpf, cnpj, date, number, link, address Options for select and multi_select types. Required when type is select or multi_select. Must be omitted for all other field types.
Show child attributes
Show child attributes
{
"select_list": [
{
"key": "sl_option_a",
"option": "Option A"
},
{
"key": "sl_option_b",
"option": "Option B"
}
]
}Whether the field is required. Defaults to false.
false
Show on people records. Defaults to true.
true
Show on company records. Defaults to true.
true
Show on deal records. Defaults to false.
false
Response
Custom field created successfully.
Show child attributes
Show child attributes
Was this page helpful?