Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

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


descstringA description of the question that is asked of the respondent
catstringCategory 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)



classinteger

1 = Core profiling question

2 = Extended profiling question

3 = Custom profiling question


condition_codesarray

contains the condition codes and condition code texts


crtd_onUTC Timestamp in milliseconds since Unix EpochTimestamp of when this attribute was created
mod_onUTC Timestamp in milliseconds since Unix EpochTimestamp 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


400Bad RequestSee Error Messages
404Not FoundQualification 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 codeInvalid PSID Format

9999

Unknown Error - Please Report to support@purespectrum.com

...