Mark as favorite
Toggle a participant’s favorite status. Favorited participants can be easily filtered when reviewing responses.
curl --request PATCH \
--url https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--header 'x-api-secret: <x-api-secret>' \
--data '
{
"favorite": true
}
'import requests
url = "https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite"
payload = { "favorite": True }
headers = {
"x-api-key": "<x-api-key>",
"x-api-secret": "<x-api-secret>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-api-key': '<x-api-key>',
'x-api-secret': '<x-api-secret>',
'Content-Type': 'application/json'
},
body: JSON.stringify({favorite: true})
};
fetch('https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite', 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-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'favorite' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>",
"x-api-secret: <x-api-secret>"
],
]);
$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-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite"
payload := strings.NewReader("{\n \"favorite\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("x-api-secret", "<x-api-secret>")
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.patch("https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite")
.header("x-api-key", "<x-api-key>")
.header("x-api-secret", "<x-api-secret>")
.header("Content-Type", "application/json")
.body("{\n \"favorite\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<x-api-key>'
request["x-api-secret"] = '<x-api-secret>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"favorite\": true\n}"
response = http.request(request)
puts response.read_body{
"qualified": true,
"percentage": 123,
"responses": [
{
"questionId": "<string>",
"questionText": "<string>",
"type": "<string>",
"answers": [
{
"id": "<string>",
"uid": "<string>",
"text": "<string>",
"answerValue": 123,
"goToQuestionUid": "<string>",
"isOther": true,
"other": "<string>"
}
],
"qualify": true,
"order": 123,
"selections": [
{
"rowUid": "<string>",
"rowText": "<string>",
"answerUid": "<string>",
"answerText": "<string>"
}
],
"ranking": [
{
"uid": "<string>",
"text": "<string>"
}
],
"skipped": true,
"shown": true
}
],
"totalTime": 123,
"matching": {
"isGenderMatch": true,
"isAgeMatch": true,
"isEthnicityMatch": true,
"isEducationMatch": true,
"questionsQualified": true,
"isLocationMatch": true,
"isIndustryMatch": true,
"isJobTitleMatch": true,
"isHouseholdIncomeMatch": true,
"isCompanySizeMatch": true,
"isTopicsMatch": true
},
"visibility": {
"status": "VISIBLE"
},
"id": "<string>",
"projectId": "<string>",
"userId": "<string>",
"qualifiedPendingIdVerification": true,
"favorite": true,
"hidden": true,
"isNew": true,
"inviteSentAt": "2023-11-07T05:31:56Z",
"invited": true,
"scheduledAt": "2023-11-07T05:31:56Z",
"statusUpdatedAt": "2023-11-07T05:31:56Z",
"ndaUrl": "<string>",
"ndaAgree": true,
"project": {
"name": "<string>",
"incentive": 123,
"id": "<string>",
"organizationId": "<string>",
"teamId": "<string>"
},
"profile": {
"id": "<string>",
"userId": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"skills": [
{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"validated": false,
"type": "skill"
}
],
"picture": "<string>"
},
"externalProject": {
"researcherId": "<string>",
"bookingUrl": "<string>",
"meetingCancelLink": "<string>",
"bookedDate": "2023-11-07T05:31:56Z",
"timezone": "<string>"
},
"invitation": {
"id": "<string>",
"remoteCommunicationDetails": "<string>",
"event": {
"uid": "<string>"
},
"message": null,
"videoProvider": {
"loginProviderId": "<string>",
"providerKey": "zoom",
"userId": "<string>"
}
},
"shortNoticeCancel": true,
"message": "<string>",
"rejection": {
"message": "<string>",
"rejectedAt": "2023-11-07T05:31:56Z"
},
"createdAt": "2023-11-07T05:31:56Z",
"task": {
"completedAt": "<string>"
}
}Body
Response
PENDING, INVITED, SCHEDULED, ATTENDED, NOSHOW, INVALIDRESPONSE, REJECTEDQUALITY, PAID, CANCELLED Hide child attributes
Hide child attributes
radio, multiLineTextbox, checkbox, singleLineTextbox, numericBox, sliderScale, fileUpload, rank, matrix Only present when the screener-responses-include-skipped-questions feature flag is enabled for the calling organization (default OFF). true when the participant did not answer this question — either because they chose to skip an optional question (skippedBy: user) or because skip-logic on a previous question routed them past it (skippedBy: skipLogic).
Only present when the screener-responses-include-skipped-questions feature flag is enabled for the calling organization (default OFF). user means the participant saw the question and chose to skip it; skipLogic means the participant never saw it because skip-logic on a previous question routed past it. Absent on items where skipped is not true.
user, skipLogic Only present when the screener-responses-include-skipped-questions feature flag is enabled for the calling organization (default OFF). true for answered questions and user-skipped questions (i.e. the participant saw the question); false for skip-logic-skipped questions (the participant never saw it).
Hide child attributes
Hide child attributes
The visibility status of the screener response. If a screener response is visible, it can be interacted with (invited etc). If a screener response is not visible, it cannot be interacted with. A screener may be hidden for various reasons, and a screener can change from visible to not visible at any time if a participant or screener is found to be untrustworthy. There is a webhook that will notify the client when a screener response changes visibility.
Hide child attributes
Hide child attributes
DISMISSED, VISIBLE, ONHOLD - This property is set to
true(withqualifiedset tofalse) if the participant has qualified based on their responses to the screener, but is in the process of verifying their identity. - Once the participant has completed ID verification,
qualifiedPendingIdVerificationwill be set to false.- If the verification was successful,
qualifiedwill be set totrue. - If the verification failed,
qualifiedwill remain set tofalseunless they were manually qualified through the qualification endpoint (PATCH /projects/{projectId}/screener-responses/{screenerResponseId}/qualify).
- If the verification was successful,
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
This will override the special instructions from the project.
researcher, respondent, admin time, final Was this page helpful?
curl --request PATCH \
--url https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--header 'x-api-secret: <x-api-secret>' \
--data '
{
"favorite": true
}
'import requests
url = "https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite"
payload = { "favorite": True }
headers = {
"x-api-key": "<x-api-key>",
"x-api-secret": "<x-api-secret>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-api-key': '<x-api-key>',
'x-api-secret': '<x-api-secret>',
'Content-Type': 'application/json'
},
body: JSON.stringify({favorite: true})
};
fetch('https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite', 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-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'favorite' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>",
"x-api-secret: <x-api-secret>"
],
]);
$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-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite"
payload := strings.NewReader("{\n \"favorite\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
req.Header.Add("x-api-secret", "<x-api-secret>")
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.patch("https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite")
.header("x-api-key", "<x-api-key>")
.header("x-api-secret", "<x-api-secret>")
.header("Content-Type", "application/json")
.body("{\n \"favorite\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.respondent.io/v1/projects/{projectId}/screener-responses/{screenerResponseId}/favorite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<x-api-key>'
request["x-api-secret"] = '<x-api-secret>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"favorite\": true\n}"
response = http.request(request)
puts response.read_body{
"qualified": true,
"percentage": 123,
"responses": [
{
"questionId": "<string>",
"questionText": "<string>",
"type": "<string>",
"answers": [
{
"id": "<string>",
"uid": "<string>",
"text": "<string>",
"answerValue": 123,
"goToQuestionUid": "<string>",
"isOther": true,
"other": "<string>"
}
],
"qualify": true,
"order": 123,
"selections": [
{
"rowUid": "<string>",
"rowText": "<string>",
"answerUid": "<string>",
"answerText": "<string>"
}
],
"ranking": [
{
"uid": "<string>",
"text": "<string>"
}
],
"skipped": true,
"shown": true
}
],
"totalTime": 123,
"matching": {
"isGenderMatch": true,
"isAgeMatch": true,
"isEthnicityMatch": true,
"isEducationMatch": true,
"questionsQualified": true,
"isLocationMatch": true,
"isIndustryMatch": true,
"isJobTitleMatch": true,
"isHouseholdIncomeMatch": true,
"isCompanySizeMatch": true,
"isTopicsMatch": true
},
"visibility": {
"status": "VISIBLE"
},
"id": "<string>",
"projectId": "<string>",
"userId": "<string>",
"qualifiedPendingIdVerification": true,
"favorite": true,
"hidden": true,
"isNew": true,
"inviteSentAt": "2023-11-07T05:31:56Z",
"invited": true,
"scheduledAt": "2023-11-07T05:31:56Z",
"statusUpdatedAt": "2023-11-07T05:31:56Z",
"ndaUrl": "<string>",
"ndaAgree": true,
"project": {
"name": "<string>",
"incentive": 123,
"id": "<string>",
"organizationId": "<string>",
"teamId": "<string>"
},
"profile": {
"id": "<string>",
"userId": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"skills": [
{
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"validated": false,
"type": "skill"
}
],
"picture": "<string>"
},
"externalProject": {
"researcherId": "<string>",
"bookingUrl": "<string>",
"meetingCancelLink": "<string>",
"bookedDate": "2023-11-07T05:31:56Z",
"timezone": "<string>"
},
"invitation": {
"id": "<string>",
"remoteCommunicationDetails": "<string>",
"event": {
"uid": "<string>"
},
"message": null,
"videoProvider": {
"loginProviderId": "<string>",
"providerKey": "zoom",
"userId": "<string>"
}
},
"shortNoticeCancel": true,
"message": "<string>",
"rejection": {
"message": "<string>",
"rejectedAt": "2023-11-07T05:31:56Z"
},
"createdAt": "2023-11-07T05:31:56Z",
"task": {
"completedAt": "<string>"
}
}