...
...
GET /Surveys- http://api.spectrumsurveys.com/suppliers/v2/Surveys
GET
...
/Surveys/:Survey_id - http://api.spectrumsurveys.com/suppliers/v2/Surveys/:Survey_id
GET /Surveys/:Survey_id/PSIDRef - http://api.spectrumsurveys.com/suppliers/v2/Surveys/:Survey_id/PSIDRef
GET /Surveys/:Survey_id/PSIDEligible - http://api.spectrumsurveys.com/suppliers/v2/
...
Surveys/:
...
Survey_
...
id/PSIDEligible?
...
PSID=
...
Call this API to view the respondent's question text, condition codes, and condition code texts for unfamiliar qualification codes/condition codes. Survey_localization is a required Query String parameter.
Warning |
---|
Now available on Production - known issues: mod_on & crtd_on return `null` |
Implementation
As the PureSpectrum platform continues to expand its Respondent targeting library, it is important that you are able to import foreign targeting attributes & profile your respondents before sending them into a survey. Your ability to do so will greatly improve conversion, reduce time to termination, and provide you with better population data about your supply.
If your system supports the ability to route or screen respondents on the fly on qualifications for which you are missing for this respondent, this API endpoint is for you. The goal of this endpoint is not for mapping, but rather for direct creation of question/answers within your profiling mechanism.
When importing a new survey, qualification, or quota into your survey inventory via API - take into consideration if any of the qualifications or the qualification's condition codes are unknown within your system. If so, fail the survey import and call the GET /attributes endpoint with the qualification and survey localization. Parse the response and create this new qualification within your system.
Considerations
...
%PSID%
...
PureSpectrum offers its buyers the ability to recontact respondents using their persistent PureSpectrum Id (PSID). The same mechanism is also used by suppliers to understand which respondents to exclude due to deduplication.
Warning |
---|
Not yet available on Staging or Production |
Implementation
Every survey on PureSpectrum will have a "PSIDRef" List. Whether this list is used for Include or Exclude is determined by the response parameter "Incl_excl" present in the GET /Surveys
or GET /Surveys/:Survey_id call. The value of Include Exclude will not change for a survey which goes live.
Info |
---|
"incl_excl":0 indicates PSIDRef is an exclude list "incl_excl":1 indicates PSIDRef is an include list |
API Response for GET /surveys/:survey_id/PSIDref
Code Block |
---|
{
"PSIDRef":[
"75xxee23-370b-a8ye-e601-e1fzz59284c8"
"94xx7b3b-4608-01y4-b908-8aezzab971e1"
"24xx7db6-8507-47y9-9c67-0c6zz6244d98"
]
} |
Include
Include Survey's are sometimes referred to as recontact surveys. Effectively a buyer will define the list of respondents which they are attempting to reach. When a respondent that is on this list completes the survey, their id will automatically be removed from the PSIDRef list. As long as the PSID is present on the reflist, the respondent may take the survey. PSID's are consistent across suppliers, so it is possible that the respondent may take a survey from one supplier, and be recontacted via a different supplier.
As a supplier, you should be storing the PSID of each respondent you send into PureSpectrum. We always append the PSID of the respondent on redirect back to you.
Warning |
---|
PSID is loosely based on device id. While unlikely, it is possible that the PSID of a respondent may change. You should always overwrite the PSID of your respondents in case the PSID changes. |
If you see that a survey has "incl_excl":1, your system should call the api endpoint GET /surveys/:survey_id/PSIDRef. If any of the PSID's match within your system, you may then target these respondents for this survey.
Exclude
If a survey is not defined as an include survey, the PSIDref list will always contain the EXCLUDE list. This is the default for surveys created on PureSpectrum. Leveraging the exclude list will allow you the ability to avoid termination due to deduplication. You may either call the survey's PSIDRef list, and store it, or you may use the optional query string parameter /PSIDref?PSID=%respondent'sPSID%, which will return back a response of
API Response for GET /surveys/:survey_id/PSIDEligible?PSID=75xxee23-370b-a8ye-e601-e1fzz59284c8
Code Block |
---|
{
"eligible":1 //1 is eligible, 0 is ineligible
} |
HEADER Parameters
Parameter | Type | Required | Description |
---|---|---|---|
access-token | string | Yes | Token used to identify the authenticity of the user. |
...
Parameter | Type | Required | Description |
---|---|---|---|
localizationPSID | string | Yes | Define the Country & Language combination for which you need the attribute's question/answer text returnedThe respondent's persistent PSID |
Response Parameters
Parameter | Type | Description | Nullable |
---|---|---|---|
text | string | The text of the question asked to the respondent | |
desc | string | A description of the question that is asked of the respondent | |
cat | string | Category name of the question that is asked of the respondent | |
type | integer | 1=singlepunch (only one selection is allowed, presented in dropdown form) 2=singlepunch-alt (only one selection is allowed - presented in push button form) 3=multipunch (multiple selections are allowed, presented in push button form) 4=range (not currently supported) | |
class | integer | 1 = Core profiling question 2 = Extended profiling question 3 = Custom profiling question | |
condition_codes | array | contains the condition codes and condition code texts | |
crtd_on | UTC Timestamp in milliseconds since Unix Epoch | Timestamp of when this attribute was created | |
mod_on | UTC Timestamp in milliseconds since Unix Epoch | Timestamp of when this attribute was modified. This may include a change in text, addition or modification of condition codes. In case the mod_on has changed since your last sync, delete the qualification in your system and recreate it to prevent inconsistencies. |
condition_codes Array
...
the condition code of the corresponding text. This will match the requisite condition codes in a survey's qualifications/quotas
...
Sample API Request
Code Block |
---|
GET /suppliers/v2/attributes/1031?survey_localization=en_US
Host: api.spectrumsurveys.com
access-token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Sample API Response
Example 1: Simple MultiPunch
Code Block |
---|
GET /suppliers/v2/attributes/1031?survey_localization=en_US
{
"text":"Which of the following pets do you own?",
"cat":"Pets",
"desc":"Pet Ownership",
"type":3,
"class":2,
"condition_codes":[
{"id":"111","text":"Dog"},
{"id":"112","text":"Cat"},
{"id":"113","text":"Rabbit"},
{"id":"114","text":"Snake/Lizard"},
{"id":"115","text":"Fish"},
{"id":"116","text":"Small Birds"},
{"id":"117","text":"Large Birds"},
{"id":"118","text":"Horse/Equine"},
{"id":"119","text":"Ferrets"},
{"id":"120","text":"Hamster or other Rodent"},
{"id":"121","text":"Turtle"},
{"id":"122","text":"Exotic Pets"},
{"id":"999","text":"None of the Above"}
],
"crtd_on": 1487871678958,
"mod_on": 1487871678958
} |
...
. |
...
...
GET /suppliers/v2/attributes/1034?survey_localization=en_US
{
"text":"The company I work for employs approximately %1034% people",
"cat":"B2B",
"desc":"Company Size (Employees)",
"type":1,
"class":2,
"condition_codes":[
{"id":"111","text":"1 to 5"},
{"id":"112","text":"6 to 9"},
{"id":"113","text":"10 to 19"},
{"id":"114","text":"20 to 24"},
...
{"id":"125","text":"50,000+"},
{"id":"999","text":"Don't know"}
],
"crtd_on": 1487871678958,
"mod_on": 1487871678958
}
Example 3: Singlepunch - alt
Code Block |
---|
GET /suppliers/v2/attributes/1040?survey_localization=en_US
{
"text":"Are you registered in any of the following US political parties?",
"cat":"Politics",
"desc":"Political Party Affiliation",
"type":1,
"class":2,
"condition_codes":[
{"id":"111","text":"Democratic Party"},
{"id":"112","text":"Republican Party"},
{"id":"113","text":"Independent"},
{"id":"114","text":"Constitution Party"},
...
{"id":"117","text":"Other"},
{"id":"118","text":"I am not registered with a political party"}
],
"crtd_on": 1487871678958,
"mod_on": 1487871678958
} |
HTTP Response Codes
Response | Status | Description |
---|---|---|
200 | OK | |
400 | Bad Request | See Error Messages |
404 | Not Found | Qualification code doesn't exist in database |
5xx | Internal Server Error | Please Report to support@purespectrum.com |
Error Messages
Response | Description |
---|---|
1001Missing localization parameter | Invalid Survey ID |
1002Qualification doesn't exist in localization code | Invalid PSID Format |
9999 | Unknown Error - Please Report to support@purespectrum.com |
...