Skip to main content
POST
/
properties
/
import
Create multiple new person properties
curl --request POST \
  --url https://api.rallyuxr.com/api/public/v1/properties/import \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
[
  {
    "name": "Company Size",
    "propertyType": "SINGLE_SELECT",
    "propertyOptions": [
      {
        "name": "SMB (1 - 100 employees)",
        "color": "GREEN"
      },
      {
        "name": "Mid Market (101 - 2000 employees)",
        "color": "YELLOW"
      },
      {
        "name": "Enterprise (2000+ employees)",
        "color": "BLUE"
      }
    ],
    "isUnique": false,
    "isPHI": false,
    "isPII": false,
    "description": "A description of the property"
  }
]
'
import requests

url = "https://api.rallyuxr.com/api/public/v1/properties/import"

payload = [
{
"name": "Company Size",
"propertyType": "SINGLE_SELECT",
"propertyOptions": [
{
"name": "SMB (1 - 100 employees)",
"color": "GREEN"
},
{
"name": "Mid Market (101 - 2000 employees)",
"color": "YELLOW"
},
{
"name": "Enterprise (2000+ employees)",
"color": "BLUE"
}
],
"isUnique": False,
"isPHI": False,
"isPII": False,
"description": "A description of the property"
}
]
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([
{
name: 'Company Size',
propertyType: 'SINGLE_SELECT',
propertyOptions: [
{name: 'SMB (1 - 100 employees)', color: 'GREEN'},
{name: 'Mid Market (101 - 2000 employees)', color: 'YELLOW'},
{name: 'Enterprise (2000+ employees)', color: 'BLUE'}
],
isUnique: false,
isPHI: false,
isPII: false,
description: 'A description of the property'
}
])
};

fetch('https://api.rallyuxr.com/api/public/v1/properties/import', 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.rallyuxr.com/api/public/v1/properties/import",
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([
[
'name' => 'Company Size',
'propertyType' => 'SINGLE_SELECT',
'propertyOptions' => [
[
'name' => 'SMB (1 - 100 employees)',
'color' => 'GREEN'
],
[
'name' => 'Mid Market (101 - 2000 employees)',
'color' => 'YELLOW'
],
[
'name' => 'Enterprise (2000+ employees)',
'color' => 'BLUE'
]
],
'isUnique' => false,
'isPHI' => false,
'isPII' => false,
'description' => 'A description of the property'
]
]),
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.rallyuxr.com/api/public/v1/properties/import"

payload := strings.NewReader("[\n {\n \"name\": \"Company Size\",\n \"propertyType\": \"SINGLE_SELECT\",\n \"propertyOptions\": [\n {\n \"name\": \"SMB (1 - 100 employees)\",\n \"color\": \"GREEN\"\n },\n {\n \"name\": \"Mid Market (101 - 2000 employees)\",\n \"color\": \"YELLOW\"\n },\n {\n \"name\": \"Enterprise (2000+ employees)\",\n \"color\": \"BLUE\"\n }\n ],\n \"isUnique\": false,\n \"isPHI\": false,\n \"isPII\": false,\n \"description\": \"A description of the property\"\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.rallyuxr.com/api/public/v1/properties/import")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("[\n {\n \"name\": \"Company Size\",\n \"propertyType\": \"SINGLE_SELECT\",\n \"propertyOptions\": [\n {\n \"name\": \"SMB (1 - 100 employees)\",\n \"color\": \"GREEN\"\n },\n {\n \"name\": \"Mid Market (101 - 2000 employees)\",\n \"color\": \"YELLOW\"\n },\n {\n \"name\": \"Enterprise (2000+ employees)\",\n \"color\": \"BLUE\"\n }\n ],\n \"isUnique\": false,\n \"isPHI\": false,\n \"isPII\": false,\n \"description\": \"A description of the property\"\n }\n]")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.rallyuxr.com/api/public/v1/properties/import")

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 {\n \"name\": \"Company Size\",\n \"propertyType\": \"SINGLE_SELECT\",\n \"propertyOptions\": [\n {\n \"name\": \"SMB (1 - 100 employees)\",\n \"color\": \"GREEN\"\n },\n {\n \"name\": \"Mid Market (101 - 2000 employees)\",\n \"color\": \"YELLOW\"\n },\n {\n \"name\": \"Enterprise (2000+ employees)\",\n \"color\": \"BLUE\"\n }\n ],\n \"isUnique\": false,\n \"isPHI\": false,\n \"isPII\": false,\n \"description\": \"A description of the property\"\n }\n]"

response = http.request(request)
puts response.read_body
{
  "results": [
    {
      "personProperty": {
        "propertyId": "<string>",
        "name": "<string>",
        "propertyType": "SINGLE_SELECT",
        "propertyOptions": [
          {
            "propertyOptionId": "<string>",
            "name": "<string>",
            "order": "1"
          }
        ],
        "isUnique": true,
        "isPHI": true,
        "isPII": true,
        "description": "<string>",
        "propertyGroupId": "<string>"
      },
      "isAsync": true,
      "bulkActionUserRequestId": "<string>"
    }
  ],
  "errors": [
    {
      "message": "<string>",
      "path": [
        "<string>"
      ],
      "name": "<string>"
    }
  ]
}
{
"errors": [
{
"message": "<string>",
"path": [
"<string>"
]
}
]
}
"Unauthorized"
"Forbidden"
"{Resource} not found"
"Too Many Requests"
"Internal Server Error"

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
Maximum array length: 10
name
string
required

The name of the property

Example:

"Company Size"

propertyType
enum<string>
required

The type of the property

Available options:
STRING,
NUMBER,
DATETIME,
BOOLEAN,
SINGLE_SELECT,
MULTI_SELECT,
LOCATION
Example:

"SINGLE_SELECT"

propertyOptions
object[]

Options for a SINGLE_SELECT or MULTI_SELECT property. Errors if passed for other property types

Maximum array length: 100
Example:
[
{
"name": "SMB (1 - 100 employees)",
"color": "GREEN"
},
{
"name": "Mid Market (101 - 2000 employees)",
"color": "YELLOW"
},
{
"name": "Enterprise (2000+ employees)",
"color": "BLUE"
}
]
isUnique
boolean

Whether the property is unique across all people. Maximum of 10 across a workspace

Example:

false

isPHI
boolean

Whether the property is PHI (Protected health information)

Example:

false

isPII
boolean

Whether the property is PII (Personally Identifiable Information)

Example:

false

description
string

The description of the property

Example:

"A description of the property"

Response

The created person properties

results
object[]
required

The person properties that were created

errors
object[]
required

The properties that failed to create