curl --request POST \
--url https://api.rallyuxr.com/api/public/v1/ai/people/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "People in California who have done at least 3 studies",
"attachProperties": [
"EMAIL",
"FIRST_NAME",
"LAST_NAME"
],
"allowlistInternalProperties": [
"NAME",
"CONTACT_STATUS",
"OPTED_OUT"
],
"blocklistInternalProperties": [],
"studyId": "<string>",
"pageInfo": {
"size": 10
}
}
'import requests
url = "https://api.rallyuxr.com/api/public/v1/ai/people/search"
payload = {
"prompt": "People in California who have done at least 3 studies",
"attachProperties": ["EMAIL", "FIRST_NAME", "LAST_NAME"],
"allowlistInternalProperties": ["NAME", "CONTACT_STATUS", "OPTED_OUT"],
"blocklistInternalProperties": [],
"studyId": "<string>",
"pageInfo": { "size": 10 }
}
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({
prompt: 'People in California who have done at least 3 studies',
attachProperties: ['EMAIL', 'FIRST_NAME', 'LAST_NAME'],
allowlistInternalProperties: ['NAME', 'CONTACT_STATUS', 'OPTED_OUT'],
blocklistInternalProperties: [],
studyId: '<string>',
pageInfo: {size: 10}
})
};
fetch('https://api.rallyuxr.com/api/public/v1/ai/people/search', 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/ai/people/search",
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([
'prompt' => 'People in California who have done at least 3 studies',
'attachProperties' => [
'EMAIL',
'FIRST_NAME',
'LAST_NAME'
],
'allowlistInternalProperties' => [
'NAME',
'CONTACT_STATUS',
'OPTED_OUT'
],
'blocklistInternalProperties' => [
],
'studyId' => '<string>',
'pageInfo' => [
'size' => 10
]
]),
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/ai/people/search"
payload := strings.NewReader("{\n \"prompt\": \"People in California who have done at least 3 studies\",\n \"attachProperties\": [\n \"EMAIL\",\n \"FIRST_NAME\",\n \"LAST_NAME\"\n ],\n \"allowlistInternalProperties\": [\n \"NAME\",\n \"CONTACT_STATUS\",\n \"OPTED_OUT\"\n ],\n \"blocklistInternalProperties\": [],\n \"studyId\": \"<string>\",\n \"pageInfo\": {\n \"size\": 10\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/ai/people/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"People in California who have done at least 3 studies\",\n \"attachProperties\": [\n \"EMAIL\",\n \"FIRST_NAME\",\n \"LAST_NAME\"\n ],\n \"allowlistInternalProperties\": [\n \"NAME\",\n \"CONTACT_STATUS\",\n \"OPTED_OUT\"\n ],\n \"blocklistInternalProperties\": [],\n \"studyId\": \"<string>\",\n \"pageInfo\": {\n \"size\": 10\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rallyuxr.com/api/public/v1/ai/people/search")
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 \"prompt\": \"People in California who have done at least 3 studies\",\n \"attachProperties\": [\n \"EMAIL\",\n \"FIRST_NAME\",\n \"LAST_NAME\"\n ],\n \"allowlistInternalProperties\": [\n \"NAME\",\n \"CONTACT_STATUS\",\n \"OPTED_OUT\"\n ],\n \"blocklistInternalProperties\": [],\n \"studyId\": \"<string>\",\n \"pageInfo\": {\n \"size\": 10\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"personId": "<string>",
"email": "<string>",
"properties": [
{
"propertyType": "STRING",
"propertyId": "cm0b4eokq000vbbsimwelll3u",
"value": "Blue"
}
],
"populationIds": [
"<string>"
]
}
],
"total": 123,
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": true,
"startCursor": "<string>",
"endCursor": "<string>"
},
"errors": [
{
"errorCode": "UNAUTHORIZED",
"propertyId": "<string>"
}
],
"success": true,
"suggestions": [
"<string>"
],
"filterGroup": {
"filters": [
{
"customProperty": {
"propertyType": "MULTI_SELECT",
"propertyGroup": "CUSTOM_PROPERTY",
"propertyName": "CUSTOM_PROPERTY",
"propertyId": "custom_property_1",
"operator": "CONTAINS"
}
}
],
"operator": "AND",
"sort": {
"operator": "ASC",
"propertyGroup": "PERSON",
"propertyName": "PERSON_ID"
}
}
}{
"errors": [
{
"message": "<string>",
"path": [
"<string>"
]
}
]
}"Unauthorized""Forbidden""Too Many Requests""Internal Server Error"AI search for people
Search for people using a natural language prompt. Returns results and optional filter suggestions.
curl --request POST \
--url https://api.rallyuxr.com/api/public/v1/ai/people/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "People in California who have done at least 3 studies",
"attachProperties": [
"EMAIL",
"FIRST_NAME",
"LAST_NAME"
],
"allowlistInternalProperties": [
"NAME",
"CONTACT_STATUS",
"OPTED_OUT"
],
"blocklistInternalProperties": [],
"studyId": "<string>",
"pageInfo": {
"size": 10
}
}
'import requests
url = "https://api.rallyuxr.com/api/public/v1/ai/people/search"
payload = {
"prompt": "People in California who have done at least 3 studies",
"attachProperties": ["EMAIL", "FIRST_NAME", "LAST_NAME"],
"allowlistInternalProperties": ["NAME", "CONTACT_STATUS", "OPTED_OUT"],
"blocklistInternalProperties": [],
"studyId": "<string>",
"pageInfo": { "size": 10 }
}
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({
prompt: 'People in California who have done at least 3 studies',
attachProperties: ['EMAIL', 'FIRST_NAME', 'LAST_NAME'],
allowlistInternalProperties: ['NAME', 'CONTACT_STATUS', 'OPTED_OUT'],
blocklistInternalProperties: [],
studyId: '<string>',
pageInfo: {size: 10}
})
};
fetch('https://api.rallyuxr.com/api/public/v1/ai/people/search', 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/ai/people/search",
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([
'prompt' => 'People in California who have done at least 3 studies',
'attachProperties' => [
'EMAIL',
'FIRST_NAME',
'LAST_NAME'
],
'allowlistInternalProperties' => [
'NAME',
'CONTACT_STATUS',
'OPTED_OUT'
],
'blocklistInternalProperties' => [
],
'studyId' => '<string>',
'pageInfo' => [
'size' => 10
]
]),
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/ai/people/search"
payload := strings.NewReader("{\n \"prompt\": \"People in California who have done at least 3 studies\",\n \"attachProperties\": [\n \"EMAIL\",\n \"FIRST_NAME\",\n \"LAST_NAME\"\n ],\n \"allowlistInternalProperties\": [\n \"NAME\",\n \"CONTACT_STATUS\",\n \"OPTED_OUT\"\n ],\n \"blocklistInternalProperties\": [],\n \"studyId\": \"<string>\",\n \"pageInfo\": {\n \"size\": 10\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/ai/people/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"People in California who have done at least 3 studies\",\n \"attachProperties\": [\n \"EMAIL\",\n \"FIRST_NAME\",\n \"LAST_NAME\"\n ],\n \"allowlistInternalProperties\": [\n \"NAME\",\n \"CONTACT_STATUS\",\n \"OPTED_OUT\"\n ],\n \"blocklistInternalProperties\": [],\n \"studyId\": \"<string>\",\n \"pageInfo\": {\n \"size\": 10\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rallyuxr.com/api/public/v1/ai/people/search")
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 \"prompt\": \"People in California who have done at least 3 studies\",\n \"attachProperties\": [\n \"EMAIL\",\n \"FIRST_NAME\",\n \"LAST_NAME\"\n ],\n \"allowlistInternalProperties\": [\n \"NAME\",\n \"CONTACT_STATUS\",\n \"OPTED_OUT\"\n ],\n \"blocklistInternalProperties\": [],\n \"studyId\": \"<string>\",\n \"pageInfo\": {\n \"size\": 10\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"personId": "<string>",
"email": "<string>",
"properties": [
{
"propertyType": "STRING",
"propertyId": "cm0b4eokq000vbbsimwelll3u",
"value": "Blue"
}
],
"populationIds": [
"<string>"
]
}
],
"total": 123,
"pageInfo": {
"hasNextPage": true,
"hasPreviousPage": true,
"startCursor": "<string>",
"endCursor": "<string>"
},
"errors": [
{
"errorCode": "UNAUTHORIZED",
"propertyId": "<string>"
}
],
"success": true,
"suggestions": [
"<string>"
],
"filterGroup": {
"filters": [
{
"customProperty": {
"propertyType": "MULTI_SELECT",
"propertyGroup": "CUSTOM_PROPERTY",
"propertyName": "CUSTOM_PROPERTY",
"propertyId": "custom_property_1",
"operator": "CONTAINS"
}
}
],
"operator": "AND",
"sort": {
"operator": "ASC",
"propertyGroup": "PERSON",
"propertyName": "PERSON_ID"
}
}
}{
"errors": [
{
"message": "<string>",
"path": [
"<string>"
]
}
]
}"Unauthorized""Forbidden""Too Many Requests""Internal Server Error"Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
AI search for people
Natural language prompt to search for people
1"People in California who have done at least 3 studies"
List of the propertyIds of custom properties to attach to the response for each person
25["EMAIL", "FIRST_NAME", "LAST_NAME"]
List of rally properties to include in the response. If this or blocklistInternalProperties is not included we will return all internal properties
NAME, FIRST_NAME, LAST_NAME, EMAIL, PHONE, IMPORT_SOURCE, IMPORT_DATE, OPTED_OUT, LAST_CONTACT_DATE, TOTAL_SENT_LAST_YEAR, TOTAL_SENT_LAST_CALENDAR_YEAR, TOTAL_SENT_ALL_TIME, INVITED_TO_STUDY, INVITED_TO_STUDY_L30, INVITED_TO_STUDY_L90, INVITED_TO_STUDY_L365, TOTAL_NUMBER_OF_CONTACT, TOTAL_NUMBER_OF_CONTACT_L30, TOTAL_NUMBER_OF_CONTACT_L90, TOTAL_NUMBER_OF_CONTACT_L365, LAST_INTERVIEW_DATE, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365, LAST_UNMOD_TEST_DATE, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365, LAST_SURVEY_DATE, TOTAL_NUMBER_OF_SURVEYS_COMPLETED, TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30, TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90, TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365, CONTACT_STATUS, POPULATION_MEMBERSHIP, POPULATION_LIST_MEMBERSHIP, SIGNUP_REFERRAL_CODES, LAST_CHANGED_AT ["NAME", "CONTACT_STATUS", "OPTED_OUT"]
List of rally properties to exclude from the response
NAME, FIRST_NAME, LAST_NAME, EMAIL, PHONE, IMPORT_SOURCE, IMPORT_DATE, OPTED_OUT, LAST_CONTACT_DATE, TOTAL_SENT_LAST_YEAR, TOTAL_SENT_LAST_CALENDAR_YEAR, TOTAL_SENT_ALL_TIME, INVITED_TO_STUDY, INVITED_TO_STUDY_L30, INVITED_TO_STUDY_L90, INVITED_TO_STUDY_L365, TOTAL_NUMBER_OF_CONTACT, TOTAL_NUMBER_OF_CONTACT_L30, TOTAL_NUMBER_OF_CONTACT_L90, TOTAL_NUMBER_OF_CONTACT_L365, LAST_INTERVIEW_DATE, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90, TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365, LAST_UNMOD_TEST_DATE, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90, TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365, LAST_SURVEY_DATE, TOTAL_NUMBER_OF_SURVEYS_COMPLETED, TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30, TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90, TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365, CONTACT_STATUS, POPULATION_MEMBERSHIP, POPULATION_LIST_MEMBERSHIP, SIGNUP_REFERRAL_CODES, LAST_CHANGED_AT The ID of the study to filter people by
Pagination arguments. Use startCursor from the result of the endCursor of the response to get the next page. Pagination in reverse is not currently supported
Show child attributes
Show child attributes
{ "size": 10 }
Response
Successfully retrieved people
- Option 1
- Option 2
Response for AI search of people
Show child attributes
Show child attributes
The total number of items in your workspaces based on your search parameters
Information about the current page
Show child attributes
Show child attributes
Show child attributes
Show child attributes
true Filter option to search for people
Show child attributes
Show child attributes