Skip to main content

Response formatting

When collecting screener responses there may be one or multiple responses but generally the content of each response has a predictable set of information returned

Basic Screener response

GET: /v1/projects/{projectId}/screener-responses The example below shows a screener-questions POST and subsequent screener-responses GET. The response itself has information relating to the answered questions themselves as well as the participant. Most of the participant information can be found via a second call using the profile ID. Note you will see an additional question in screener-responses with a null order and text: “End Of Survey”; this is an auto generated question to signal to participants when they have reached the end of a screener. When displaying the responses section of the screener-response it is recommended to share:
  • Time the participant took to complete the screener
  • "totalTime":
  • The incentive the participant took the screener at
    • "project.incentive":
  • Time screener was completed
    • "createdAt":
  • Question, response, and qualify status
    • "questionText":
    • "text":
    • "qualify":

"projectID": "PROJECT_ID"
{
  "questionType": "radio",
  "text": "What is your favorite coastline in the United States?",
  "answers": [
    {
      "text": "East Coast",
      "answerValue": 2
    },
    {
      "text": "West Coast",
      "answerValue": 1
    },
    {
      "isOther": true,
      "text": "Other",
      "answerValue": 2
    }
  ],
  "skipLogic": false,
  "includeOtherOption": true,
  "isRequired": true
},
{
  "questionType": "checkbox",
  "text": "What animals would you like to spend time with?",
  "answers": [
    {
      "text": "Cat",
      "answerValue": 1
    },
    {
      "text": "Dog",
      "answerValue": 1
    },
    {
      "text": "Giraffe",
      "answerValue": 1
    },
    {
      "text": "Pineapple",
      "answerValue": 3
    }
  ],
  "isRequired": true,
  "skipLogic": false,
  "includeOtherOption": false
},
{
  "questionType": "multiLineTextbox",
  "text": "In your own words, tell us what your favorite hobby is.",
  "skipLogic": false,
  "isRequired": true
},
{
  "questionType": "singleLineTextbox",
  "text": "What is your favorite color?",
  "skipLogic": false,
  "isRequired": true
},
{
  "questionType": "numericBox",
  "text": "How old are you?",
  "skipLogic": false,
  "isRequired": true
},
{
  "questionType": "sliderScale",
  "text": "On a scale from 1 to 10 how confident are you building an API?",
  "isRequired": true,
  "skipLogic": false,
  "minValue": 1,
  "maxValue": 10,
  "step": 1
}

Viewing the profile

/v1/profiles/{profileId}
{
  "userId": "string",
  "companySize": "selfemployed",
  "gender": "male",
  "educationLevel": "somehighschool",
  "ethnicity": "americanindianalaskannative",
  "householdIncome": "<30000",
  "firstName": "Bob",
  "lastInitial": "H",
  "jobTitle": "PM",
  "jobFunctions": [
        "informationTechnology"
  ],
  "linkedinUrl": "URL",
  "skills": [
    {
    
        "createdAt": "2023-10-11T18:27:24.260Z",
        "validated": true,
        "type": "certification",
        "count": 0,
        "slug": "typescript",
        "id": "SKILL_ID",
        "name": "TypeScript"
    }
  ],
  "isEmailVerified": true,
  "location": {
  "country": "US",
        "location": {
          "longitude": 42.22788,
          "latitude": -71.191113
        },
        "city": "Boston",
        "state": "MA",
  },
  "age": "string",
  "socialLinks": {},
  "industry": [
    "string"
  ],
  "seniorityLevel": "senior",
  "id": "string",
  "createdAt": "2023-10-11T18:27:24.260Z",
  "updatedAt": "2023-10-15T13:24:35.260Z"
}

Understanding qualified responses

"qualified": true, implies:
  • NDA is agree to if present
  • 100% percentage on screener questions
  • Matched on location, age, gender, education, and ethnicity

Skipped questions in responses[]

By default, questions that a participant did not answer (because they were skipped over by skip logic, or because the participant chose to skip an optional question) are omitted from the responses[] array. Organizations that opt in to including skipped questions in screener responses (contact Respondent to enable) receive an entry for every screener question, with skipped questions marked explicitly. Each item in responses[] then includes:
FieldTypeDescription
skippedbooleantrue if the participant did not provide an answer to this question. Absent or false for answered questions.
skippedBy'user' | 'skipLogic'Why the question was skipped. 'user' means the participant chose to skip an optional question; 'skipLogic' means skip logic on a previous answer jumped over this question. Present only when skipped is true.
shownbooleantrue if the question was displayed to the participant. Equivalent to !skipped || skippedBy === 'user' — i.e. answered questions and user-skipped optional questions were shown; skip-logic-skipped questions were not.
Example skipped entries:
{
  "questionId": "6526e85f08fa017ec030ec9b",
  "questionText": "What is your favorite color?",
  "order": 3,
  "type": "screener",
  "questionType": "singleLineTextbox",
  "qualify": true,
  "skipped": true,
  "skippedBy": "user",
  "shown": true
},
{
  "questionId": "6526e85f08fa017ec030ec9c",
  "questionText": "How old are you?",
  "order": 4,
  "type": "screener",
  "questionType": "numericBox",
  "qualify": true,
  "skipped": true,
  "skippedBy": "skipLogic",
  "shown": false
}