curl --request POST \
--url https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"Label": "T-shirt size",
"ControlType": "Select",
"ControlParams": "{\"Options\":[\"Small\",\"Medium\",\"Large\"]}"
}
'import requests
url = "https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions"
payload = {
"Label": "T-shirt size",
"ControlType": "Select",
"ControlParams": "{\"Options\":[\"Small\",\"Medium\",\"Large\"]}"
}
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: 'T-shirt size',
ControlType: 'Select',
ControlParams: '{"Options":["Small","Medium","Large"]}'
})
};
fetch('https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions', 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://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions",
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' => 'T-shirt size',
'ControlType' => 'Select',
'ControlParams' => '{"Options":["Small","Medium","Large"]}'
]),
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://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions"
payload := strings.NewReader("{\n \"Label\": \"T-shirt size\",\n \"ControlType\": \"Select\",\n \"ControlParams\": \"{\\\"Options\\\":[\\\"Small\\\",\\\"Medium\\\",\\\"Large\\\"]}\"\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://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"Label\": \"T-shirt size\",\n \"ControlType\": \"Select\",\n \"ControlParams\": \"{\\\"Options\\\":[\\\"Small\\\",\\\"Medium\\\",\\\"Large\\\"]}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions")
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\": \"T-shirt size\",\n \"ControlType\": \"Select\",\n \"ControlParams\": \"{\\\"Options\\\":[\\\"Small\\\",\\\"Medium\\\",\\\"Large\\\"]}\"\n}"
response = http.request(request)
puts response.read_body{
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"ControlType": "string",
"ControlParams": "string",
"Label": "string",
"SystemName": "string",
"EntityType": 0,
"Position": 0,
"Hidden": false
}{
"ErrorMessage": "string",
"EntityValidationErrors": [
{
"Entity": {},
"TypeName": "string",
"ValidationErrors": []
}
]
}Add a custom property to accounts, people or deals.
curl --request POST \
--url https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"Label": "T-shirt size",
"ControlType": "Select",
"ControlParams": "{\"Options\":[\"Small\",\"Medium\",\"Large\"]}"
}
'import requests
url = "https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions"
payload = {
"Label": "T-shirt size",
"ControlType": "Select",
"ControlParams": "{\"Options\":[\"Small\",\"Medium\",\"Large\"]}"
}
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: 'T-shirt size',
ControlType: 'Select',
ControlParams: '{"Options":["Small","Medium","Large"]}'
})
};
fetch('https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions', 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://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions",
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' => 'T-shirt size',
'ControlType' => 'Select',
'ControlParams' => '{"Options":["Small","Medium","Large"]}'
]),
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://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions"
payload := strings.NewReader("{\n \"Label\": \"T-shirt size\",\n \"ControlType\": \"Select\",\n \"ControlParams\": \"{\\\"Options\\\":[\\\"Small\\\",\\\"Medium\\\",\\\"Large\\\"]}\"\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://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"Label\": \"T-shirt size\",\n \"ControlType\": \"Select\",\n \"ControlParams\": \"{\\\"Options\\\":[\\\"Small\\\",\\\"Medium\\\",\\\"Large\\\"]}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.outseta.com/api/v1/attributes/{entityType}/definitions")
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\": \"T-shirt size\",\n \"ControlType\": \"Select\",\n \"ControlParams\": \"{\\\"Options\\\":[\\\"Small\\\",\\\"Medium\\\",\\\"Large\\\"]}\"\n}"
response = http.request(request)
puts response.read_body{
"Uid": "string",
"_objectType": "string",
"Created": "string",
"Updated": "string",
"ActivityEventData": {},
"ControlType": "string",
"ControlParams": "string",
"Label": "string",
"SystemName": "string",
"EntityType": 0,
"Position": 0,
"Hidden": false
}{
"ErrorMessage": "string",
"EntityValidationErrors": [
{
"Entity": {},
"TypeName": "string",
"ValidationErrors": []
}
]
}Authorizations
Enter your access token (OAuth / JWT).
Path Parameters
The entity type to add the property to: Account, Person or Deal
Body
The custom property to add
A custom property to add to accounts, people or deals. Only Label is required.
The name of the property shown in Outseta, for example "T-shirt size". Unique among the entity type's custom properties, and not the label of a standard property.
1The name of the property in the API, webhooks and forms, for example TShirtSize. Starts with a letter and holds only letters, numbers and _. Unique for the entity type, and not the name of a standard property. Derived from Label when left out.
^[A-Za-z][A-Za-z0-9_]*$The control used to fill in the property: Text (the default), TextArea, Number, Date, Checkbox (True or False), Select (a dropdown with one choice), RadioList (one choice) or CheckboxList (several choices).
The control's settings: a JSON object serialized into a string, not a nested object. Select, RadioList and CheckboxList need their options, for example "{"Options":["Small","Medium","Large"]}". Number may set a Step, for example "{"Step":0.01}"; Text may set HintText and Pattern (a regular expression).
Response
11102500 - None, 1 - Account, 2 - Person, 3 - Deal, 4 - Case, 5 - Invoice, 6 - EmailLog, 7 - Plan, 8 - DiscountCoupon, 9 - AddOn, 10 - Task, 11 - Segment, 12 - Broadcast, 13 - Article
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13