SEARCH (POST)
curl --request POST \
--url https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key} \
--header 'Content-Type: application/json' \
--data '
{
"sn_ud": "<string>",
"sy_nr": "<string>",
"rt_cy_ce": "<string>",
"rt_sr_pd": "<string>",
"pm_sr_id": "<string>",
"sy_gp_nr": "<string>",
"set_window": "<string>",
"coordinates": "<string>",
"wd": "<string>",
"mm": "<string>",
"df_details": "<string>",
"sip": "<string>",
"vpt": "<string>",
"usage_type": "<string>",
"validation": "<string>",
"destination_platform_id": "<string>",
"destination_platform_survey_number": "<string>",
"rt_hd_el": "<string>",
"csedp3": "<string>",
"sisp": "<string>",
"dupe_details": "<string>",
"mfr": "<string>",
"tbc": "<string>"
}
'import requests
url = "https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}"
payload = {
"sn_ud": "<string>",
"sy_nr": "<string>",
"rt_cy_ce": "<string>",
"rt_sr_pd": "<string>",
"pm_sr_id": "<string>",
"sy_gp_nr": "<string>",
"set_window": "<string>",
"coordinates": "<string>",
"wd": "<string>",
"mm": "<string>",
"df_details": "<string>",
"sip": "<string>",
"vpt": "<string>",
"usage_type": "<string>",
"validation": "<string>",
"destination_platform_id": "<string>",
"destination_platform_survey_number": "<string>",
"rt_hd_el": "<string>",
"csedp3": "<string>",
"sisp": "<string>",
"dupe_details": "<string>",
"mfr": "<string>",
"tbc": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
sn_ud: '<string>',
sy_nr: '<string>',
rt_cy_ce: '<string>',
rt_sr_pd: '<string>',
pm_sr_id: '<string>',
sy_gp_nr: '<string>',
set_window: '<string>',
coordinates: '<string>',
wd: '<string>',
mm: '<string>',
df_details: '<string>',
sip: '<string>',
vpt: '<string>',
usage_type: '<string>',
validation: '<string>',
destination_platform_id: '<string>',
destination_platform_survey_number: '<string>',
rt_hd_el: '<string>',
csedp3: '<string>',
sisp: '<string>',
dupe_details: '<string>',
mfr: '<string>',
tbc: '<string>'
})
};
fetch('https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}', 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://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}",
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([
'sn_ud' => '<string>',
'sy_nr' => '<string>',
'rt_cy_ce' => '<string>',
'rt_sr_pd' => '<string>',
'pm_sr_id' => '<string>',
'sy_gp_nr' => '<string>',
'set_window' => '<string>',
'coordinates' => '<string>',
'wd' => '<string>',
'mm' => '<string>',
'df_details' => '<string>',
'sip' => '<string>',
'vpt' => '<string>',
'usage_type' => '<string>',
'validation' => '<string>',
'destination_platform_id' => '<string>',
'destination_platform_survey_number' => '<string>',
'rt_hd_el' => '<string>',
'csedp3' => '<string>',
'sisp' => '<string>',
'dupe_details' => '<string>',
'mfr' => '<string>',
'tbc' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}"
payload := strings.NewReader("{\n \"sn_ud\": \"<string>\",\n \"sy_nr\": \"<string>\",\n \"rt_cy_ce\": \"<string>\",\n \"rt_sr_pd\": \"<string>\",\n \"pm_sr_id\": \"<string>\",\n \"sy_gp_nr\": \"<string>\",\n \"set_window\": \"<string>\",\n \"coordinates\": \"<string>\",\n \"wd\": \"<string>\",\n \"mm\": \"<string>\",\n \"df_details\": \"<string>\",\n \"sip\": \"<string>\",\n \"vpt\": \"<string>\",\n \"usage_type\": \"<string>\",\n \"validation\": \"<string>\",\n \"destination_platform_id\": \"<string>\",\n \"destination_platform_survey_number\": \"<string>\",\n \"rt_hd_el\": \"<string>\",\n \"csedp3\": \"<string>\",\n \"sisp\": \"<string>\",\n \"dupe_details\": \"<string>\",\n \"mfr\": \"<string>\",\n \"tbc\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}")
.header("Content-Type", "application/json")
.body("{\n \"sn_ud\": \"<string>\",\n \"sy_nr\": \"<string>\",\n \"rt_cy_ce\": \"<string>\",\n \"rt_sr_pd\": \"<string>\",\n \"pm_sr_id\": \"<string>\",\n \"sy_gp_nr\": \"<string>\",\n \"set_window\": \"<string>\",\n \"coordinates\": \"<string>\",\n \"wd\": \"<string>\",\n \"mm\": \"<string>\",\n \"df_details\": \"<string>\",\n \"sip\": \"<string>\",\n \"vpt\": \"<string>\",\n \"usage_type\": \"<string>\",\n \"validation\": \"<string>\",\n \"destination_platform_id\": \"<string>\",\n \"destination_platform_survey_number\": \"<string>\",\n \"rt_hd_el\": \"<string>\",\n \"csedp3\": \"<string>\",\n \"sisp\": \"<string>\",\n \"dupe_details\": \"<string>\",\n \"mfr\": \"<string>\",\n \"tbc\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sn_ud\": \"<string>\",\n \"sy_nr\": \"<string>\",\n \"rt_cy_ce\": \"<string>\",\n \"rt_sr_pd\": \"<string>\",\n \"pm_sr_id\": \"<string>\",\n \"sy_gp_nr\": \"<string>\",\n \"set_window\": \"<string>\",\n \"coordinates\": \"<string>\",\n \"wd\": \"<string>\",\n \"mm\": \"<string>\",\n \"df_details\": \"<string>\",\n \"sip\": \"<string>\",\n \"vpt\": \"<string>\",\n \"usage_type\": \"<string>\",\n \"validation\": \"<string>\",\n \"destination_platform_id\": \"<string>\",\n \"destination_platform_survey_number\": \"<string>\",\n \"rt_hd_el\": \"<string>\",\n \"csedp3\": \"<string>\",\n \"sisp\": \"<string>\",\n \"dupe_details\": \"<string>\",\n \"mfr\": \"<string>\",\n \"tbc\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Respondent": {
"threat_potential_score": "23",
"country": "United States",
"country_code": "US",
"respondent_risk": 0,
"respondent_ud": "4489560a-507f-468a-ae4b-d81ea80fab5d",
"time_zone": "America/Chicago"
},
"Surveys": [
{
"flag": 1,
"duplicate_initial_ud": "481cd5cf-88f1-44c2-8292-6b779b8a3a8e",
"duplicate_potential": "high",
"duplicate_score": "100",
"country_mismatch": 0,
"failure_reason": "02",
"days_flag": 1,
"days_difference": 0
}
]
}Content-Type: application/json).
sn_ud and sy_nr are required; rt_cy_ce (country code) is strongly recommended. See the SEARCH guide for parameter definitions and failure-reason codes.Path Parameters
Your Research Defender publishable key (client-side).
Body
Unique identifier for each API call (do not reuse across surveys/respondents). GUID recommended.
Unique identifier for the client survey, consistent for each survey.
Survey country code (ISO 3166-1 alpha-2) so SEARCH can detect country mismatches. Recommended.
Persistent respondent identifier for deduplication. Only use if you have independently verified respondent identity.
Supplier ID (name, abbreviation, or numeric) for backend reporting.
Survey group identifier to deduplicate respondents across surveys.
Lockout period in days for a survey. Returns days_flag=1 if the respondent attempted the survey within fewer days than this window.
Set to 1 to include geolocation, time zone, and weather attributes (latitude, longitude, time_zone, weather_code, state_name).
Set to 1 to include the last transaction date (d_date).
Set to 1 to disable MaxMind termed-failure detection (failure_reason=18).
Set to 1 to include an additional dataset with respondent information.
Set to 1 to show the IP address on the API response.
Pass 'check' to check VPN status (returns 1/0).
Set to 1 to return usage type: consumer, corporate, or hosting.
V4 only: SHA-256 of the request URL signed with your private key (Hashed Validation).
PREDUPE: unique identifier for the destination platform/buyer. Retrieve via the destination_platforms endpoint.
PREDUPE: the destination platform's internal survey number (for Research Desk, use the ProjectUd).
Hashed email, if any.
Set to 1 to provide a result from the EDP score (EDP3 node).
Set to 1 to provide the ISP (Internet Service Provider).
Set to 1 to show the corresponding details for the duplicate (dupes_details).
Set to 1 to provide every triggered failure reason (multiple_failure_reason), not just one.
Set to 1 to allow testers to bypass checks. For testing only.
Was this page helpful?
curl --request POST \
--url https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key} \
--header 'Content-Type: application/json' \
--data '
{
"sn_ud": "<string>",
"sy_nr": "<string>",
"rt_cy_ce": "<string>",
"rt_sr_pd": "<string>",
"pm_sr_id": "<string>",
"sy_gp_nr": "<string>",
"set_window": "<string>",
"coordinates": "<string>",
"wd": "<string>",
"mm": "<string>",
"df_details": "<string>",
"sip": "<string>",
"vpt": "<string>",
"usage_type": "<string>",
"validation": "<string>",
"destination_platform_id": "<string>",
"destination_platform_survey_number": "<string>",
"rt_hd_el": "<string>",
"csedp3": "<string>",
"sisp": "<string>",
"dupe_details": "<string>",
"mfr": "<string>",
"tbc": "<string>"
}
'import requests
url = "https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}"
payload = {
"sn_ud": "<string>",
"sy_nr": "<string>",
"rt_cy_ce": "<string>",
"rt_sr_pd": "<string>",
"pm_sr_id": "<string>",
"sy_gp_nr": "<string>",
"set_window": "<string>",
"coordinates": "<string>",
"wd": "<string>",
"mm": "<string>",
"df_details": "<string>",
"sip": "<string>",
"vpt": "<string>",
"usage_type": "<string>",
"validation": "<string>",
"destination_platform_id": "<string>",
"destination_platform_survey_number": "<string>",
"rt_hd_el": "<string>",
"csedp3": "<string>",
"sisp": "<string>",
"dupe_details": "<string>",
"mfr": "<string>",
"tbc": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
sn_ud: '<string>',
sy_nr: '<string>',
rt_cy_ce: '<string>',
rt_sr_pd: '<string>',
pm_sr_id: '<string>',
sy_gp_nr: '<string>',
set_window: '<string>',
coordinates: '<string>',
wd: '<string>',
mm: '<string>',
df_details: '<string>',
sip: '<string>',
vpt: '<string>',
usage_type: '<string>',
validation: '<string>',
destination_platform_id: '<string>',
destination_platform_survey_number: '<string>',
rt_hd_el: '<string>',
csedp3: '<string>',
sisp: '<string>',
dupe_details: '<string>',
mfr: '<string>',
tbc: '<string>'
})
};
fetch('https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}', 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://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}",
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([
'sn_ud' => '<string>',
'sy_nr' => '<string>',
'rt_cy_ce' => '<string>',
'rt_sr_pd' => '<string>',
'pm_sr_id' => '<string>',
'sy_gp_nr' => '<string>',
'set_window' => '<string>',
'coordinates' => '<string>',
'wd' => '<string>',
'mm' => '<string>',
'df_details' => '<string>',
'sip' => '<string>',
'vpt' => '<string>',
'usage_type' => '<string>',
'validation' => '<string>',
'destination_platform_id' => '<string>',
'destination_platform_survey_number' => '<string>',
'rt_hd_el' => '<string>',
'csedp3' => '<string>',
'sisp' => '<string>',
'dupe_details' => '<string>',
'mfr' => '<string>',
'tbc' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}"
payload := strings.NewReader("{\n \"sn_ud\": \"<string>\",\n \"sy_nr\": \"<string>\",\n \"rt_cy_ce\": \"<string>\",\n \"rt_sr_pd\": \"<string>\",\n \"pm_sr_id\": \"<string>\",\n \"sy_gp_nr\": \"<string>\",\n \"set_window\": \"<string>\",\n \"coordinates\": \"<string>\",\n \"wd\": \"<string>\",\n \"mm\": \"<string>\",\n \"df_details\": \"<string>\",\n \"sip\": \"<string>\",\n \"vpt\": \"<string>\",\n \"usage_type\": \"<string>\",\n \"validation\": \"<string>\",\n \"destination_platform_id\": \"<string>\",\n \"destination_platform_survey_number\": \"<string>\",\n \"rt_hd_el\": \"<string>\",\n \"csedp3\": \"<string>\",\n \"sisp\": \"<string>\",\n \"dupe_details\": \"<string>\",\n \"mfr\": \"<string>\",\n \"tbc\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}")
.header("Content-Type", "application/json")
.body("{\n \"sn_ud\": \"<string>\",\n \"sy_nr\": \"<string>\",\n \"rt_cy_ce\": \"<string>\",\n \"rt_sr_pd\": \"<string>\",\n \"pm_sr_id\": \"<string>\",\n \"sy_gp_nr\": \"<string>\",\n \"set_window\": \"<string>\",\n \"coordinates\": \"<string>\",\n \"wd\": \"<string>\",\n \"mm\": \"<string>\",\n \"df_details\": \"<string>\",\n \"sip\": \"<string>\",\n \"vpt\": \"<string>\",\n \"usage_type\": \"<string>\",\n \"validation\": \"<string>\",\n \"destination_platform_id\": \"<string>\",\n \"destination_platform_survey_number\": \"<string>\",\n \"rt_hd_el\": \"<string>\",\n \"csedp3\": \"<string>\",\n \"sisp\": \"<string>\",\n \"dupe_details\": \"<string>\",\n \"mfr\": \"<string>\",\n \"tbc\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.rtymgt.com/api/v4/respondents/search/{publishable_key}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sn_ud\": \"<string>\",\n \"sy_nr\": \"<string>\",\n \"rt_cy_ce\": \"<string>\",\n \"rt_sr_pd\": \"<string>\",\n \"pm_sr_id\": \"<string>\",\n \"sy_gp_nr\": \"<string>\",\n \"set_window\": \"<string>\",\n \"coordinates\": \"<string>\",\n \"wd\": \"<string>\",\n \"mm\": \"<string>\",\n \"df_details\": \"<string>\",\n \"sip\": \"<string>\",\n \"vpt\": \"<string>\",\n \"usage_type\": \"<string>\",\n \"validation\": \"<string>\",\n \"destination_platform_id\": \"<string>\",\n \"destination_platform_survey_number\": \"<string>\",\n \"rt_hd_el\": \"<string>\",\n \"csedp3\": \"<string>\",\n \"sisp\": \"<string>\",\n \"dupe_details\": \"<string>\",\n \"mfr\": \"<string>\",\n \"tbc\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Respondent": {
"threat_potential_score": "23",
"country": "United States",
"country_code": "US",
"respondent_risk": 0,
"respondent_ud": "4489560a-507f-468a-ae4b-d81ea80fab5d",
"time_zone": "America/Chicago"
},
"Surveys": [
{
"flag": 1,
"duplicate_initial_ud": "481cd5cf-88f1-44c2-8292-6b779b8a3a8e",
"duplicate_potential": "high",
"duplicate_score": "100",
"country_mismatch": 0,
"failure_reason": "02",
"days_flag": 1,
"days_difference": 0
}
]
}