openapi: 3.2.0
info:
title: Forsta Panelist API
version: ''
description: 'Operations tagged Panelist across 2 of this provider''s published API definitions: forsta-panel-management-community-openapi.yml, forsta-panel-management-integration-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
tags:
- name: Panelist
paths:
/api.pro#method=portal.panelist.create:
post:
operationId: portal.panelist.create
summary: Create a new panelist
description: 'NOTE:
In most cases, portal.email.sendOptInConfirmation will need to be called after panelist is created successfully.'
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.create
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
panelid:
type: integer
description: The panelid in which the new panelist should be assigned.
datapoints:
type: array
description: Array of data points and values to assign to the new panelist.
items:
required:
- label
- answer
properties:
label:
type: string
description: The datapoint label, may also be one of the reserved labels (email, password, identifier, sourceid, etc.). Email is the only required field.
Please note, that data point labels are case sensitive!
answer:
oneOf:
- type:
- string
- 'null'
- type:
- number
- 'null'
description: The panelist's data point or system field value. Checkboxes should be passed-in as a comma-separated list. Password can be plain text or a bcrypt hash.
referral:
type:
- string
- 'null'
description: A referral hash, as returned by portal.panelist.referralHash, or NULL if this isn't a referral.
points:
type: string
description: Initial number of points awarded for joining
required:
- panelid
- datapoints
example:
panelid: 1
datapoints:
- label: email
answer: demo@example.com
- label: password
answer: demopassword
- label: QGENDER
answer: Female
referral: 4a2642645e73235ee9daafb0b2df287b
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: The panelist creation was successful.
panelistid:
type: integer
description: The panelistid of the newly created panelist.
verification:
type: string
description: The confirmation hash - needed for portal.panelist.confirm.
examples:
success:
summary: Success
value:
success: true
panelistid: 2
verification: c50dea019651460501d2b9dcc0a8aafa
error-0:
description: Panel with supplied panel ID is not found.
summary: Panel not found
value:
success: false
error: Panel ID does not exist, or is currently inaccessible.
errno: '10000'
error-1:
description: At least one of the supplied datapoints does not contain a label.
summary: Datapoints invalid
value:
success: false
error: Answer data did not contain dataid or label!
errno: '20000'
error-2:
description: The supplied datapoints do not contain a answer.
summary: Datapoints invalid
value:
success: false
error: No answer data supplied!
errno: '20000'
error-3:
description: At least one of the supplied datapoints is not defined in this panel.
summary: Datapoint unknown
value:
success: false
error: The following labels for which you tried to store data are not defined for this panel…
errno: '20000'
error-4:
description: The supplied panel ID is not numeric.
summary: Panel ID invalid
value:
success: false
error: Panel ID is invalid
errno: '20101'
error-5:
description: The supplied referral hash was not valid.
summary: Referral hash invalid
value:
success: false
error: The supplied referral hash is invalid
errno: '20103'
error-6:
description: The supplied points is not numeric.
summary: Points invalid
value:
success: false
error: The supplied initial points value is invalid
errno: '20104'
error-7:
description: The supplied email is not a valid email address.
summary: Email invalid
value:
success: false
error: The supplied email address is invalid
errno: '40006'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.update:
post:
operationId: portal.panelist.update
summary: Update the current panelist's information
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.update
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
datapoints:
type: array
description: Array of data points and values to assign to the panelist.
items:
required:
- label
- answer
properties:
label:
type: string
description: The datapoint label, may also be one of the reserved labels (email, password, identifier, sourceid, etc.). Email is the only required field.
Please note, that data point labels are case sensitive!
answer:
oneOf:
- type:
- string
- 'null'
- type:
- number
- 'null'
description: The panelist's data point or system field value. Checkboxes should be passed-in as a comma-separated list. Password can be plain text or a bcrypt hash.
seskey:
type: string
description: A valid login hash.
required:
- seskey
- datapoints
example:
seskey: ce512c91
datapoints:
- label: QGENDER
answer: Female
- label: QCHECKBOX
answer: 2,4,5,8
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: The update was successful.
examples:
success:
summary: Success
value:
success: true
error-0:
description: At least one of the supplied datapoints does not contain a label.
summary: Datapoints invalid
value:
success: false
error: Answer data did not contain dataid or label!
errno: '20000'
error-1:
description: The subscribed is invalid. Subscribed can only be set to "yes" or "no".
summary: Subscribed invalid
value:
success: false
error: The supplied value for label 'subscribed' is invalid
errno: '20000'
error-2:
description: At least one of the supplied datapoints is not defined in this panel.
summary: Datapoint unknown
value:
success: false
error: The following labels for which you tried to store data are not defined for this panel…
errno: '20000'
error-3:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: Session string is invalid
errno: '20101'
error-4:
description: Session is not valid or is not found for supplied session key.
summary: Session invalid
value:
success: false
error: Session invalid
errno: '30100'
error-5:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session expired
errno: '30100'
error-6:
description: The supplied email is not a valid email address.
summary: Email invalid
value:
success: false
error: The supplied email address is invalid
errno: '40003'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.optOut:
post:
operationId: portal.panelist.optOut
summary: Unsubscribes a panelist
description: This method unsubscribes a panelist. The panelist is not deleted, only marked as unsubscribed.
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.optOut
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
seskey:
type: string
description: A valid login hash.
required:
- seskey
example:
seskey: ce512c91
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: The opt out was successful.
examples:
success:
summary: Success
value:
success: true
error-0:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: Session string is invalid
errno: '20101'
error-1:
description: Session is not valid or is not found for supplied session key.
summary: Session invalid
value:
success: false
error: Session invalid
errno: '30100'
error-2:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session expired
errno: '30100'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.read:
post:
operationId: portal.panelist.read
summary: Panelist information
description: This method returns a panelist information for a specific datapoint.
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.read
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
datapoints:
type: array
description: An array of datapoint Labels
items:
type: string
seskey:
type: string
description: A valid login hash.
required:
- seskey
- datapoints
example:
seskey: ce512c91
datapoints:
- QGENDER
- IDENTIFIER
- QCHECKBOX
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: Retrieving panelist information was successful.
values:
type: array
description: Array of datapoint values requested.
items:
properties:
label:
type: string
description: The datapoint label, may also be one of the reserved labels (email, password, identifier, sourceid, etc.).
answer:
oneOf:
- type:
- string
- 'null'
- type:
- number
- 'null'
description: The panelist's data point value. Checkboxes are a comma-separated list.
examples:
success:
summary: Success
value:
success: true
values:
- label: QGENDER
answer: Female
- label: IDENTIFIER
answer: Demo1
- label: QCHECKBOX
answer: 2,4,5
error-0:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: Session string is invalid
errno: '20101'
error-1:
description: Session is not valid or is not found for supplied session key.
summary: Session invalid
value:
success: false
error: Session invalid
errno: '30100'
error-2:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session expired
errno: '30100'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.confirm:
post:
operationId: portal.panelist.confirm
summary: Confirms panelist join to the panel
description: Confirms that a panelist wished to join the panel, and that the email address used to sign-up is valid.
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.confirm
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
panelid:
type: integer
description: The panelid of the panel the panelist wishes to join.
panelistid:
type: integer
description: The id of the panelist that wishes to join.
verification:
type: string
description: The verification hash returned by the portal.panelist.create function.
required:
- panelid
- panelistid
- verification
example:
panelid: 1
panelistid: 15
verification: c50dea019651460501d2b9dcc0a8aafa
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: Confirming the panelist was successful.
panelistid:
type: integer
description: The panelistid of the confirmed panelist.
seskey:
type: string
description: The sessionKey of the confirmed panelist.
fullname:
type: string
description: The full name of the confirmed panelist.
email:
type: string
description: The email address of the confirmed panelist.
firstname:
type: string
description: The first name of the panelist who has logged in.
lastname:
type: string
description: The last name of the panelist who has logged in.
examples:
success:
summary: Success
value:
success: true
panelistid: 15
seskey: ce512c91
fullname: Demo Panelist
email: demo@example.com
firstname: Demo
lastname: Panelist
error-0:
description: Panel with supplied panel ID is not found.
summary: Panel not found
value:
success: false
error: Panel ID does not exist, or is currently inaccessible.
errno: '10000'
error-1:
description: The supplied panel ID is not numeric.
summary: Panel ID invalid
value:
success: false
error: Panel ID is invalid
errno: '20101'
error-2:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: The supplied panelist ID is invalid
errno: '20102'
error-3:
description: The supplied verification is not valid.
summary: Verification invalid
value:
success: false
error: The registration confirmation code is invalid
errno: '20103'
error-4:
description: Panelist with supplied panelist ID is not found.
summary: Panelist not found
value:
success: false
error: The supplied panelist ID could not be found
errno: '20302'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.referralHash:
post:
operationId: portal.panelist.referralHash
summary: Returns the referral hash
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.referralHash
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: The email address of the referrer.
points:
type: integer
description: The number of points awarded.
seskey:
type: string
description: A valid login hash.
required:
- seskey
- email
- points
example:
seskey: ce512c91
email: person@example.com
points: 25
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: Retrieving the referral hash was unsuccessful.
referralHash:
type: string
description: A hash used in portal.panelist.create in order for a referrer to get their points.
examples:
success:
summary: Success
value:
success: true
referralHash: 4a2642645e73235ee9daafb0b2df287b
error-0:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: Session string is invalid
errno: '20101'
error-1:
description: The supplied email is not a valid email address.
summary: Email invalid
value:
success: false
error: The supplied email address is invalid
errno: '20102'
error-2:
description: The supplied points value is not numeric.
summary: Points invalid
value:
success: false
error: The supplied points value is invalid
errno: '20103'
error-3:
description: The supplied email address is a member or has been sent a referral by the current panelist. Additional referrals cannot be sent to this email address.
summary: Email member already referred
value:
success: false
error: The person you were trying to refer is already a member or has already been referred by you
errno: '20202'
error-4:
description: The supplied email address is opted-out of referrals and cannot be sent additional referrals.
summary: Email referral opt-out
value:
success: false
error: The person you were trying to refer does not wish to be referred again
errno: '20302'
error-5:
description: Session is not valid or is not found for supplied session key.
summary: Session invalid
value:
success: false
error: Session invalid
errno: '30100'
error-6:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session expired
errno: '30100'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.contactFrequenciesGet:
post:
operationId: portal.panelist.contactFrequenciesGet
summary: Gets the currently set panelist contact frequencies
description: 'Notice:
Panelists don''t have a contact frequencies record by default.'
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.contactFrequenciesGet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
seskey:
type: string
description: A valid login hash.
required:
- seskey
example:
seskey: ce512c91
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: Retrieving the contact frequencies was successful.
maxMessages:
type: integer
description: The number of messages the panelist wants to receive in the specified time frame.
nextMessage:
type: string
description: Date string of the projected time, when panelist is ready to receive the next email invitation (YYYY-MM-DD HH:MM:SS).
timeFrame:
type: string
description: The time frame (week or day).
SMSFrom:
type: string
description: The time when it is acceptable to start sending SMS to the panelist.
SMSTo:
type: string
description: The time after which the panelist does not wish to receive SMS.
examples:
success-1:
summary: Success
value:
success: true
maxMessages: 5
nextMessage: '2014-12-08 11:34:00'
timeFrame: week
SMSFrom: 09:00:00
SMSTo: '21:00:00'
success-2:
summary: Success - no record
value:
success: true
error-0:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: Session string is invalid
errno: '20101'
error-1:
description: Session is not valid or is not found for supplied session key.
summary: Session invalid
value:
success: false
error: Session invalid
errno: '30100'
error-2:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session expired
errno: '30100'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=portal.panelist.contactFrequenciesSet:
post:
operationId: portal.panelist.contactFrequenciesSet
summary: Set the contact frequencies for the current panelist
description: 'Notice:
TheSMSFrom and SMSTo settings are only of importance, if you''re sending SMS invitations from your panel.'
tags:
- Panelist
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- portal.panelist.contactFrequenciesSet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
maxMessages:
type:
- integer
- 'null'
description: Set the number of messages a panelist wants to receive per time frame. A value of NULL means unlimited.
timeFrame:
type: string
enum:
- week
- day
description: The time frame (week or day) in which we apply the maxMessages limit.
SMSFrom:
type: string
description: The time when it is acceptable to start sending SMS to the panelist. The time format is expected in 24 hour HH:MM:SS. If omitted, it will default to 09:00:00.
SMSTo:
type: string
description: The time after which the panelist does not wish to receive SMS. The time format is expected in 24 hour HH:MM:SS. If omitted, it will default to 21:00:00.
seskey:
type: string
description: A valid login hash.
required:
- seskey
- maxMessages
- timeFrame
examples:
Example 1:
description: Set limit of 5 invitations by email/sms per week.
value:
seskey: ce512c91
maxMessages: 5
timeFrame: week
Example 2:
description: Set limit of 1 invitations by email/sms per day. No SMS between 8pm and 5pm.
value:
seskey: ce512c91
maxMessages: 1
timeFrame: day
SMSFrom: '17:00:00'
SMSTo: '20:00:00'
Example 3:
description: Set unlimited number of invitations by email/sms per day.
value:
seskey: ce512c91
maxMessages: null
timeFrame: day
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: Setting the contact frequencies was successful.
examples:
success:
summary: Success
value:
success: true
error-0:
description: 'Missing a time constraint: SMSFrom or SMSTo.'
summary: SMSFrom and SMSTo invalid
value:
success: false
error: Both time constraints must be supplied or none.
errno: '0'
error-1:
description: The supplied SMSFrom needs to be a valid time.
summary: SMSFrom invalid
value:
success: false
error: Invalid time stamp received
errno: '0'
error-2:
description: The supplied SMSTo needs to be a valid time.
summary: SMSTo invalid
value:
success: false
error: Invalid time stamp received
errno: '0'
error-3:
description: The time frame is invalid. The time frame can only be set to "day" or "week".
summary: Time frame invalid
value:
success: false
error: Time frame out of range, allowed values are 'day' and 'week'
errno: '0'
error-4:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: Session string is invalid
errno: '20101'
error-5:
description: Session is not valid or is not found for supplied session key.
summary: Session invalid
value:
success: false
error: Session invalid
errno: '30100'
error-6:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session expired
errno: '30100'
security:
- ApiKey: []
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.create:
post:
operationId: panelistCreate
summary: Create a panelist
description: 'Create a panelist with accompanying data.
## NOTE:
In most cases, `portal.email.sendOptInConfirmation` will need to be called after panelist is created
successfully.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.create
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- settings
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
settings:
description: Which type of statistics to pull..
type: array
items:
type: object
required:
- label
- answer
properties:
label:
description: A valid datapoint label or panelist field.
type: string
example: 5a15852c564933807bbd36da58071063
answer:
description: The answer to set for the label.
type: string
example: 5a15852c564933807bbd36da58071063
example:
- name: email
url: test@kinesissurvey.com
- name: sourceid
answer: 335
- name: identifier
answer: KS_234234
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
data:
type: object
properties:
pid:
type: number
sourceid:
type:
- string
- 'null'
localid:
type: string
portalid:
type: string
subscribed:
type: string
identifier:
type: string
description: Unique panelist identifier created by Panel Management
email:
type: string
password:
type: string
emailok:
type: string
phoneok:
type: string
blacklisted:
type: string
timezone:
type: string
dateformat:
type: string
timeformat:
type: string
modified:
type: string
created:
type: string
joined:
type: string
first_participation:
type:
- string
- 'null'
last_participation:
type:
- string
- 'null'
first_invitation:
type:
- string
- 'null'
last_invitation:
type:
- string
- 'null'
unsubscribed:
type:
- string
- 'null'
timeblacklisted:
type:
- string
- 'null'
timeunblacklisted:
type:
- string
- 'null'
timereferred:
type:
- string
- 'null'
first_completed:
type:
- string
- 'null'
last_completed:
type:
- string
- 'null'
last_pointsearned:
type:
- string
- 'null'
last_surveyscreened:
type:
- string
- 'null'
responserate:
type:
- string
- 'null'
completionrate:
type:
- string
- 'null'
invited:
type: string
responded:
type: string
completed:
type: string
md_invited:
type: string
md_started:
type: string
md_completed:
type: string
md_screened:
type: string
md_finished:
type: string
md_referredpanelists:
type: string
points_earned:
type: string
points_available:
type: string
points_redeemed:
type: string
points_survey:
type: string
points_referral:
type: string
points_other:
type: string
examples:
success:
summary: Success
value:
success: true
data:
pid: 1
sourceid: null
localid: '1'
portalid: '1'
subscribed: 'yes'
identifier: test
email: test@kinesissurvey.com
password: c393160294275737d9c5cb047242342b
emailok: 'yes'
phoneok: 'no'
blacklisted: 'no'
modified: '2011-12-01 14:02:15'
created: '2011-10-14 11:09:56'
joined: '2011-01-01'
first_participation: null
last_participation: null
first_invitation: null
last_invitation: null
unsubscribed: null
timeblacklisted: null
timeunblacklisted: null
timereferred: null
first_completed: null
last_completed: null
last_pointsearned: null
last_surveyscreened: null
responserate: null
completionrate: null
invited: '0'
responded: '0'
completed: '0'
md_invited: '0'
md_started: '0'
md_completed: '0'
md_screened: '0'
md_finished: '0'
md_referredpanelists: '1'
points_earned: '0'
points_available: '0'
points_redeemed: '0'
points_survey: '0'
points_referral: '0'
points_other: '0'
error-0:
description: The supplied checkbox answer is not a numeric or string integers separated by commas ("1,2,3").
summary: Settings checkbox answer invalid
value:
success: false
error: Supplied choice is invalid
errno: '0'
error-1:
description: The supplied settings radio answer is not numeric.
summary: Settings radio answer invalid
value:
success: false
error: Supplied choice(answer) is invalid for data point (datapoint label). The value must be an unsigned integer or NULL.
errno: '0'
error-2:
description: The supplied radio or checkbox answer is not in choice range.
summary: Settings radio/checkbox answer invalid
value:
success: false
error: Invalid choice(answer) for data point (datapoint label). The value must be either NULL or an unsigned integer between (datapoint choice min) and (datapoint choice max).
errno: '0'
error-3:
description: One of the supplied settings labels is not found for any datapoints.
summary: Settings label not found
value:
success: false
error: Unknown datapoint label (label).
errno: '20000'
error-4:
description: The supplied email address is used by another panelist in the panel.
summary: Settings email duplicate
value:
success: false
error: The email address you supplied is already in use. You may be registered for this panel under a different login name.
errno: '20000'
error-5:
description: The supplied identifier is used by another panelist in the panel.
summary: Settings identifier duplicate
value:
success: false
error: The identifier you supplied is already in use.
errno: '20000'
error-6:
description: The supplied settings is empty.
summary: Settings invalid
value:
success: false
error: No answer data supplied!
errno: '20000'
error-7:
description: The subscribed is invalid. Subscribed can only be set to "yes" or "no".
summary: Settings subscribed invalid
value:
success: false
error: The supplied value for label 'subscribed' is invalid
errno: '20000'
error-8:
description: The supplied date answer was not in valid date format (YYYY-MM-DD).
summary: Settings date answer invalid
value:
success: false
error: The supplied date (answer) was invalid for (datapoint label) (date)
errno: '20000'
error-9:
description: The supplied openend answer is not a string.
summary: Settings openend answer invalid
value:
success: false
error: The data type (answer type) is not valid for (datapoint label) (openend)
errno: '20000'
error-10:
description: The supplied timezone is not valid timezone.
summary: Settings timezone invalid
value:
success: false
error: Unknown or bad timezone
errno: '20000'
error-11:
description: The supplied settings is not in valid format. Each datapiont within settings needs to contain a "label" and an "answer".
summary: Settings invalid
value:
success: false
error: Malformed answer data received
errno: '20102'
error-12:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-13:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-14:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-15:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-16:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
error-17:
description: The supplied email is not a valid email address.
summary: Settings email invalid
value:
success: false
error: The supplied email address is invalid
errno: '40006'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.read:
post:
operationId: panelistRead
summary: Read data
deprecated: true
description: 'Read panelist data from the Panel Management database. By default, this call will return all panelist system
fields (see example below), unless the optional datapoints parameter is supplied. If the optional datapoints
parameter is supplied, the call will return only the requested values (if found). Please note that question labels
and system field names are case-sensitive.
# NOTE:
It is ALWAYS recommended to specify "indexType" when making this call. If "IndexType" is not specified and
the panel allows numeric identifiers for panelists, this call could not find the panelist or find an incorrect
panelist.'
tags:
- Panelist
security:
- ApiKey: []
requestBody:
content:
application/json:
schema:
type: object
properties:
sesKey:
type: string
description: A valid login hash.
index:
type: string
description: The pid or identifier to lookup the panelist by
datapoints:
type: array
description: Array of datapoint labels or panelist fields to return
items:
type: string
indexType:
type: string
enum:
- identifier
- pid
description: The type of index being used
required:
- sesKey
- index
examples:
With datapoint labels:
value:
sesKey: 5a15852c564933807bbd36da58071063
index: '34359'
datapoints:
- Q1
- Q2
- Q3
indexType: identifier
Without datapoint labels:
value:
sesKey: 5a15852c564933807bbd36da58071063
index: '34359'
indexType: identifier
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
properties:
pid:
type: integer
description: The id of the panelist.
sourceid:
type: integer
description: The id of the source.
localid:
type: integer
description: The localizationid, or language code of the panelist.
subscribed:
type: string
description: Whether the panelist is subscribed or not.
identifier:
type: string
description: The panelist identifier.
email:
type: string
description: The email address of the panelist.
password:
type: string
description: The password of the panelist.
emailok:
type: string
description: Whether the email is valid.
phoneok:
type: string
description: Whether the phone is valid.
blacklisted:
type: string
description: Whether the panelist is blacklisted or not.
timezone:
type: string
description: The timezone of the panelist.
dateformat:
type: string
description: The format of the date.
timeformat:
type: string
description: The format of the time.
modified:
type: string
description: The most recent date/time the panelist was updated.
created:
type: string
description: The date/time the panelist was created.
joined:
type: string
description: The date/time the panelist joined.
first_participation:
type: string
description: The date/time of the panelist's first participation.
last_participation:
type: string
description: The date/time of the panelist's last participation.
first_invitation:
type: string
description: The date/time of the panelist's first invitation.
last_invitation:
type: string
description: The date/time of the panelist's last invitation.
unsubscribed:
type: string
description: The date/time that the panelist was unsubscribed.
timeblacklisted:
type: string
description: The date/time that the panelist was blacklisted.
timeunblacklisted:
type: string
description: The date/time that the panelist was unblacklisteed.
timereferred:
type: string
description: The date/time that the panelist was referred.
first_completed:
type: string
description: The date/time that the panelist first completed a survey.
last_completed:
type: string
description: The date/time that the panelist last completed a survey.
last_pointsearned:
type: string
description: The date/time that the panelist last earned points.
last_surveyscreened:
type: string
description: last date/time that the panelist profiled or quota termed
responserate:
type: integer
description: The number of responses out of the number of invites in a certain period of time (usually 90 days).
completionrate:
type: integer
description: The number of completes out of the number of invites in a certain period of time (usually 90 days).
invited:
type: integer
description: The number of surveys the panelist has been invited to in a certain period of time (usually 90 days).
responded:
type: integer
description: The number of surveys the panelist has responded to in a certain period of time (usually 90 days).
completed:
type: integer
description: The number of surveys the panelist has completed in a certain period of time (usually 90 days).
md_invited:
type: integer
description: The number of surveys the panelist has been invited to.
md_started:
type: integer
description: The number of surveys the panelist has responded to.
md_completed:
type: integer
description: The number of surveys the panelist has completed.
md_screened:
type: integer
description: The number of surveys the panelist has profiled or quota termed.
md_finished:
type: integer
description: The number of surveys the panelist has finished.
md_referredpanelists:
type: integer
description: The number of panelists this panelist has referred.
points_earned:
type: integer
description: The number of points the panelist has earned.
points_available:
type: integer
description: The number of points the panelist has available for redemption.
points_redeemed:
type: integer
description: The number of points the panelist has redeemed.
points_survey:
type: integer
description: The number of points the panelist has earned from completing surveys.
points_referral:
type: integer
description: The number of points the panelist has received from referrals.
points_other:
type: integer
description: The number of points the panelist has received from an administrator.
examples:
success:
summary: Success
value:
success: true
data:
pid: '1'
sourceid: '1'
localid: '1'
portalid: '1'
subscribed: 'yes'
identifier: 1_SVFMJV
email: test@example.com
password: null
emailok: 'yes'
phoneok: 'no'
blacklisted: 'no'
modified: '2011-11-08 16:39:02'
created: '2011-10-04 12:50:32'
joined: '2011-10-04'
first_participation: null
last_participation: null
first_invitation: null
last_invitation: null
unsubscribed: null
timeblacklisted: null
timeunblacklisted: null
timereferred: null
first_completed: null
last_completed: null
last_pointsearned: '2011-11-08 16:39:02'
last_surveyscreened: null
responserate: null
completionrate: null
invited: '0'
responded: '0'
completed: '0'
md_invited: '0'
md_started: '0'
md_completed: '0'
md_screened: '0'
md_finished: '0'
md_referredpanelists: '0'
points_earned: '5000'
points_available: '5000'
points_redeemed: '0'
points_survey: '0'
points_referral: '0'
points_other: '5000'
error-0:
description: The supplied datapoints are not valid datapoint labels or panelist fields.
summary: Datapoints invalid
value:
success: false
error: 'Invalid datapoint value(s): (datapoints)'
errno: '20303'
error-1:
description: The supplied index type is invalid. Index type can only be set to "pid" or "identifier".
summary: Index type invalid
value:
success: false
error: Invalid index type
errno: '20100'
error-2:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: Panelist Id is invalid
errno: '20102'
error-3:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-4:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-5:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-6:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-7:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-8:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.update:
post:
operationId: panelistUpdate
summary: Update a panelist
description: Update a panelist data
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.update
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- settings
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
settings:
type: array
description: A zero based array of associative arrays, with a size equal to the number of settings the user wishes to initialize. Settings are listed below. Email or Identifier required.
items:
required:
- label
- name
type: object
properties:
label:
type: string
description: A valid datapoint label or panelist field.
name:
type: string
description: The answer to set for the label.
example:
- label: email
answer: test@kinesissurvey.com
- label: sourceid
answer: 335
- label: identifier
answer: KS_234234
- label: Qopenend
answer: Test
- label: Qradio
answer: '2'
- label: Qcheckbox
answer: 3,4,5
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
examples:
success:
summary: Success
value:
success: true
error-0:
description: An identifier or email address needs to be supplied to find the panelist.
summary: Identifier/Email missing
value:
success: false
error: An identifier or email must be provided in order to update a panelist.
errno: '0'
error-1:
description: The supplied checkbox answer is not a numeric or string integers separated by commas ("1,2,3").
summary: Settings checkbox answer invalid
value:
success: false
error: Supplied choice is invalid
errno: '0'
error-2:
description: The supplied settings radio answer is not numeric.
summary: Settings radio answer invalid
value:
success: false
error: Supplied choice(answer) is invalid for data point (datapoint label). The value must be an unsigned integer or NULL.
errno: '0'
error-3:
description: The supplied radio or checkbox answer is not in choice range.
summary: Settings radio/checkbox answer invalid
value:
success: false
error: Invalid choice(answer) for data point (datapoint label). The value must be either NULL or an unsigned integer between (datapoint choice min) and (datapoint choice max).
errno: '0'
error-4:
description: One of the supplied settings labels is not found for any datapoints.
summary: Settings label not found
value:
success: false
error: Unknown datapoint label (label).
errno: '20000'
error-5:
description: The subscribed is invalid. Subscribed can only be set to "yes" or "no".
summary: Settings subscribed invalid
value:
success: false
error: The supplied value for label 'subscribed' is invalid
errno: '20000'
error-6:
description: The supplied date answer was not in valid date format (YYYY-MM-DD).
summary: Settings date answer invalid
value:
success: false
error: The supplied date (answer) was invalid for (datapoint label) (date)
errno: '20000'
error-7:
description: The supplied openend answer is not a string.
summary: Settings openend answer invalid
value:
success: false
error: The data type (answer type) is not valid for (datapoint label) (openend)
errno: '20000'
error-8:
description: The supplied timezone is not valid timezone.
summary: Settings timezone invalid
value:
success: false
error: Unknown or bad timezone
errno: '20000'
error-9:
description: The supplied settings array does not contain datapoint array(s) with "label" and/or "answer".
summary: Settings invalid
value:
success: false
error: Panelist datapoint data is malformed!
errno: '20102'
error-10:
description: The supplied settings array contains datapoint array(s) with arrays or objects for "answer".
summary: Settings invalid
value:
success: false
error: Answer data is in invalid format!
errno: '20102'
error-11:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-12:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-13:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-14:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-15:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
error-16:
description: Panelist with supplied email address is not found.
summary: Panelist not found
value:
success: false
error: Invalid email! User not found.
errno: '40010'
error-17:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Invalid identifier! User not found.
errno: '40010'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.bulkupdate:
post:
operationId: panelistBulkUpdate
summary: Update datapoints for multiple panelists
description: 'Update datapoints for multiple panelists.
Depending on the amount of panelist records that are being changed,
this call can take a few minutes to complete. It will, however, immediately return a token
that can be used to check the status of the process and verify whether there were any issues.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.bulkupdate
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- settings
properties:
sesKey:
description: A valid login hash.
type: string
example: '[your sesKey]'
settings:
type: array
description: An array of panelist records you wish to update.
Each "row" represents a single panelist and must contain label/answer objects.
The included labels must match for all panelists in the list.
The panelist’s identifier or email address must always be included.
items:
type: array
items:
required:
- label
- answer
type: object
properties:
label:
type: string
description: A valid datapoint label or panelist field.
answer:
type: string
description: The answer to set for the label.
example:
- - label: identifier
answer: identifier_1
- label: Qfirstname
answer: Alida
- label: Qlastname
answer: Beaver
- label: Qhouseholdappliances
answer: 1,2,5
- label: Qgender
answer: 2
- - label: identifier
answer: identifier_2
- label: Qfirstname
answer: Neil
- label: Qlastname
answer: Toth
- label: Qhouseholdappliances
answer: 2,5,6
- label: Qgender
answer: 1
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: ' '
token:
type: string
description: A token which can be used with integration.token.get to check the status of the operation.
examples:
success-0:
summary: Success
value:
success: true
token: 5ix2h091vv8ckg4044sg00c0g
error-0:
description: ''
summary: Label invalid, must be a string.
value:
success: false
error: Invalid label
errno: '0'
error-1:
description: ''
summary: Label invalid, must exist.
value:
success: false
error: 'Unknown datapoint label: <label>'
errno: '0'
error-2:
description: ''
summary: Data invalid, consult the manual.
value:
success: false
error: 'Invalid data structure (line: nnn)'
errno: '0'
error-3:
description: ''
summary: Data invalid. "label" missing in the answer / label object.
value:
success: false
error: 'Invalid data structure: label not found (line: nnn)'
errno: '0'
error-4:
description: ''
summary: Data invalid. "answer" missing in the answer / label object.
value:
success: false
error: 'Invalid data structure: answer not found (line: nnn)'
errno: '0'
error-5:
description: ''
summary: Data invalid. Label / answer not there.
value:
success: false
error: 'Label / answer array expected (line: %u)'
errno: '0'
error-6:
description: ''
summary: All panelist records must include the same "labels".
value:
success: false
error: 'Unexpected label found (line: nnn)'
errno: '0'
error-7:
description: ''
summary: One or more choices for a checkbox datapoint are invalid.
value:
success: false
error: 'Invalid choice found (line: nnn)'
errno: '0'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.rewardPointsAdd:
post:
operationId: panelistRewardPointsAdd
summary: Add points
description: 'Add points to the panelist''s account.
# Note
It is ALWAYS recommended to specify "indexType" when making this call. If "IndexType" is
not specified and the panel allows numeric identifiers for panelists, this call could not
find the panelist or award points to an incorrect panelist.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.rewardPointsAdd
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- index
- points
- note
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
index:
description: Panelist identifier or PID.
type: string
example: '34359'
points:
description: Points to add
type: integer
example: 50
note:
description: Note that will be visible to the panelists and show in the reward history.
type: string
example: Participation bonus
indexType:
description: The type of index being used
enum:
- identifier
- pid
example: identifier
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
examples:
success:
summary: Success
value:
success: true
error-0:
description: The supplied index type is invalid. Index type can only be set to "pid" or "identifier".
summary: Index type invalid
value:
success: false
error: Invalid index type
errno: '20100'
error-1:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: Panelist Id is invalid
errno: '20102'
error-2:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-3:
description: The supplied points value is not greater than 0.
summary: Points invalid
value:
success: false
error: Number of points to add must be positive
errno: '20203'
error-4:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-5:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-6:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-7:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-8:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
error-9:
description: Panelist with supplied panelist ID is not found.
summary: Panelist not found
value:
success: false
error: 'No data found for Panelist ID: (panelist ID)'
errno: '40010'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.rewardPointsDeduct:
post:
operationId: panelistRewardPointsDeduct
summary: Deduct points
description: 'Deduct points from the panelist''s account.
# Note
It is ALWAYS recommended to specify "indexType" when making this call. If "IndexType" is not specified
and the panel allows numeric identifiers for panelists, this call could not find the panelist
or deduct points from an incorrect panelist.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.rewardPointsDeduct
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- index
- points
- note
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
index:
description: Panelist identifier or PID.
type: string
example: '34359'
points:
description: Points to deduct (must be negative)
type: integer
example: -50
note:
description: Note that will be visible to the panelists and show in the reward history.
type: string
example: Gift card redemption
indexType:
description: The type of index being used
enum:
- identifier
- pid
example: identifier
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
examples:
success:
summary: Success
value:
success: true
error-0:
description: The supplied index type is invalid. Index type can only be set to "pid" or "identifier".
summary: Index type invalid
value:
success: false
error: Invalid index type
errno: '20100'
error-1:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: Panelist Id is invalid
errno: '20102'
error-2:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-3:
description: The supplied points value is not less than 0.
summary: Points invalid
value:
success: false
error: Number of points to deduct must be negative
errno: '20203'
error-4:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-5:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-6:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-7:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-8:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
error-9:
description: Panelist with supplied panelist ID is not found.
summary: Panelist not found
value:
success: false
error: 'No data found for Panelist ID: (panelist ID)'
errno: '40010'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.rewardPointsBalance:
post:
operationId: panelistRewardPointsBalance
summary: Get reward point balance
description: 'Get a panelist''s current reward point balance
# Note
It is ALWAYS recommended to specify "indexType" when making this call. If "IndexType" is not specified and the
panel allows numeric identifiers for panelists, this call could not find the panelist or
return points from an incorrect panelist.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.rewardPointsBalance
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- index
- points
- note
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
index:
description: Panelist identifier or PID.
type: string
example: '34359'
indexType:
description: The type of index being used
enum:
- identifier
- pid
example: identifier
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
data:
type: object
properties:
balance:
type: number
examples:
success:
summary: Success
value:
success: true
data:
balance: 9001
error-0:
description: The supplied index type is invalid. Index type can only be set to "pid" or "identifier".
summary: Index type invalid
value:
success: false
error: Invalid index type
errno: '20100'
error-1:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: Panelist Id is invalid
errno: '20102'
error-2:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-3:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-4:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-5:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-6:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-7:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.contactFrequenciesGet:
post:
operationId: panelistContactFrequenciesGet
summary: Get panelist contact frequencies
description: 'Gets the currently set panelist contact frequencies.
# Note
It is ALWAYS recommended to specify "indexType" when making this call. If "IndexType" is not
specified and the panel allows numeric identifiers for panelists, this call could not find the
panelist or return points from an incorrect panelist.
**Notice:** Panelists don''t have a contact frequencies record by default.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.contactFrequenciesGet
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- index
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
index:
description: Panelist identifier or PID.
type: string
example: '34359'
indexType:
description: The type of index being used
enum:
- identifier
- pid
example: identifier
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
description: Retrieving the contact frequencies was successful.
maxMessages:
type: integer
description: The number of messages the panelist wants to receive in the specified time frame.
nextMessage:
type: string
description: Date string of the projected time, when panelist is ready to receive the next email invitation.
pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
timeFrame:
type: string
enum:
- week
- day
description: The time frame.
SMSFrom:
type: string
pattern: ^\d{2}:\d{2}:\d{2}$
description: The time when it is acceptable to start sending SMS to the panelist.
SMSTo:
type: string
pattern: ^\d{2}:\d{2}:\d{2}$
description: The time after which the panelist does not wish to receive SMS.
examples:
success:
summary: Success
value:
success: true
maxMessages: 5
nextMessage: '2014-12-08 11:34:00'
timeFrame: week
SMSFrom: 09:00:00
SMSTo: '21:00:00'
error-0:
description: The supplied index type is invalid. Index type can only be set to "pid" or "identifier".
summary: Index type invalid
value:
success: false
error: Invalid index type
errno: '20100'
error-1:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: Panelist Id is invalid
errno: '20102'
error-2:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-3:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-4:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-5:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-6:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-7:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.contactFrequenciesSet:
post:
operationId: panelistContactFrequenciesSet
summary: Set the contact frequencies
description: 'Set the contact frequencies for a specified panelist
# Note
It is ALWAYS recommended to specify "indexType" when making this call. If "IndexType"
is not specified and the panel allows numeric identifiers for panelists, this call could not find the panelist or
sets information for an incorrect panelist.
**Notice:** The `SMSFrom` and `SMSTo` settings are only of importance, if you''re sending SMS invitations
from your panel.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.contactFrequenciesSet
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- index
- maxMessages
- timeFrame
properties:
sesKey:
description: A valid login hash.
type: string
example: ce512c91
index:
description: Panelist identifier or PID.
type: string
example: '34359'
maxMessages:
example: 5
type: integer
description: The number of messages the panelist wants to receive in the specified time frame.
timeFrame:
example: week
type: string
description: The time frame.
SMSFrom:
description: The time when it is acceptable to start sending SMS to the panelist.
type: string
pattern: ^\d{2}:\d{2}:\d{2}$
example: 09:00:00
SMSTo:
description: The time after which the panelist does not wish to receive SMS.
type: string
pattern: ^\d{2}:\d{2}:\d{2}$
example: '21:00:00'
indexType:
description: The type of index being used
enum:
- identifier
- pid
example: identifier
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
examples:
success:
summary: Success
value:
success: true
error-0:
description: The time frame is invalid. The time frame can only be set to "day" or "week".
summary: Time frame invalid
value:
success: false
error: Time frame out of range, allowed values are 'day' and 'week'
errno: '0'
error-1:
description: 'Missing a time constraint: SMSFrom or SMSTo.'
summary: SMSFrom and SMSTo invalid
value:
success: false
error: Both time constraints must be supplied or none.
errno: '0'
error-2:
description: The supplied SMSFrom needs to be a valid time (HH:MM:SS).
summary: SMSFrom invalid
value:
success: false
error: Invalid time stamp received
errno: '0'
error-3:
description: The supplied SMSTo needs to be a valid time (HH:MM:SS).
summary: SMSTo invalid
value:
success: false
error: Invalid time stamp received
errno: '0'
error-4:
description: The supplied index type is invalid. Index type can only be set to "pid" or "identifier".
summary: Index type invalid
value:
success: false
error: Invalid index type
errno: '20100'
error-5:
description: The supplied panelist ID is not numeric.
summary: Panelist ID invalid
value:
success: false
error: Panelist Id is invalid
errno: '20102'
error-6:
description: Panelist with supplied identifier is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-7:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-8:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-9:
description: User ID not found for supplied session key.
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-10:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-11:
description: A panel needs to be selected before calling this method.
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api.pro#method=integration.panelist.findByDataPoint:
post:
operationId: panelistIntegrationFindByDataPoint
summary: Find Panelists by datapoint value
description: 'Finds and returns a list of panelist identifiers based on a datapoint value.
# Note
Providing checkbox answers will find all panelists who selected the requested choices.'
tags:
- Panelist
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.panelist.findByDataPoint
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
sesKey:
type: string
description: A valid login hash
label:
type: string
description: Datapoint label to filter by.
answer:
oneOf:
- type: string
- type: integer
- type: array
description: The answer (answer type depends on the requested datapoint type).
required:
- sesKey
- label
- answer
examples:
Openend example:
value:
sesKey: 2565b78d2d00414fa2092ba1f89d6576
label: Qfirstname
answer: Jim
Date example:
value:
sesKey: 2565b78d2d00414fa2092ba1f89d6576
label: Qbirthday
answer: '1965-01-15'
Radio example:
value:
sesKey: 2565b78d2d00414fa2092ba1f89d6576
label: Qgender
answer: 1
Checkbox example:
value:
sesKey: 2565b78d2d00414fa2092ba1f89d6576
label: Qfood
answer:
- 1
- 2
- 3
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
identifiers:
type: array
description: Array of panelist identifiers that matched the criteria
items:
type: string
examples:
success:
summary: Success
value:
success: true
identifiers:
- K_ggwp76rx67
- K_kjns874n38
error-0:
description: The label was invalid
summary: Datapoint label invalid
value:
success: false
error: Invalid datapoint label
errno: '0'
error-1:
description: The datapoint was not found
summary: Datapoint not found
value:
success: false
error: Datapoint not found
errno: '0'
error-2:
description: The answer data type was not suitable for the datapoint
summary: Answer invalid
value:
success: false
error: Answer type mismatch
errno: '0'
error-3:
description: The date for a date datapoint is malformed
summary: Date answer invalid
value:
success: false
error: Invalid date
errno: '0'
error-4:
description: The supplied choices for a radio/checkbox datapoint were invalid
summary: Choice answer invalid
value:
success: false
error: Invalid choice
errno: '0'
error-5:
description: Session has expired
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '0'
error-6:
description: Session is not found for supplied session key
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-7:
description: User ID not found for supplied session key
summary: Session not found
value:
success: false
error: userid for sessionkey not found
errno: '30200'
error-8:
description: Session key is not in correct format
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-9:
description: A panel needs to be selected before panelists can be queried
summary: Panel not found
value:
success: false
error: You must select a panel before you can use this method.
errno: '40001'
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/panelists:
get:
operationId: panelistGetPanelistById
summary: Retrieve Panelists
description: Results are ordered by created time descending. Newest panelists are returned first. Output is limited to 100 panelists.
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
required: true
description: A Panel ID
schema:
type: integer
- in: query
name: filter[id]
description: Filter by panelist id.
schema:
type: string
examples:
one panelist by id:
value: y36uhip5r8j7
description: One panelist by identifier
multiple panelists by id:
value: y36uhip5r8j7,oa85aha25i,gjore8o7237,zx69g6ybzue
description: Multiple panelists by identifier
- in: query
name: filter[pid]
description: Filter by panelist pid.
schema:
type: string
examples:
one panelist by pid:
value: '1'
description: One panelist by pid
multiple panelists by pid:
value: 1,2,3,4
description: Multiple panelists by pid
- in: query
name: filter[email]
description: Filter by panelist email.
schema:
type: string
examples:
one panelist by email:
value: panelist1@forsta.com
description: One panelist by email
multiple panelists by email:
value: panelist2@forsta.com,panelist1@forsta.com
description: Multiple panelists by email
- $ref: '#/components/parameters/after'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
email:
type: string
phone_ok:
type: boolean
email_ok:
type: boolean
blacklisted:
type: boolean
subscribed:
type: string
enum:
- 'yes'
- 'no'
- unconfirmed
timezone:
type: string
joined_at:
type: integer
description: Unix timestamp of when the panelist opted in.
source_id:
type: string
community_id:
type: string
language:
type: string
created_at:
type: integer
description: Unix timestamp of when the panelist opted in.
first_participation_at:
type: integer
description: Unix timestamp representation of the time when the panelist first participated in a survey.
last_participation_at:
type: integer
description: Unix timestamp representation of the last time when the panelist participated in a survey.
first_invitation_at:
type: integer
description: Unix timestamp representation of the first time the panelist received a survey invitation.
last_invitation_at:
type: integer
description: Unix timestamp representation of the last time the panelist received a survey invitation.
unsubscribed_at:
type: integer
description: Unix timestamp representation of when the panelist unsubscribed.
blacklisted_at:
type: integer
description: Unix timestamp representation of when the panelist was blacklisted.
unblacklisted_at:
type: integer
description: Unix timestamp representation of when the panelist had its blacklisted status removed.
referred_at:
type: integer
description: Unix timestamp representation of when the panelist was referred.
first_completed_at:
type: integer
description: Unix timestamp representation of when the panelist completed their first survey.
last_completed_at:
type: integer
description: Unix timestamp representation of when the panelist completed their last survey.
last_points_earned_at:
type: integer
description: Unix timestamp representation of when the panelist earned their last points.
last_survey_screened_at:
type: integer
description: Unix timestamp representation of the last time the panelist was screened out from a survey.
invited:
type: integer
description: Number of surveys the panelist was invited to.
started:
type: integer
description: Number of surveys the panelist started (regardless of whether they finished).
completed:
type: integer
description: Number of surveys the panelist completed.
screened:
type: integer
description: Number of surveys the panelist was screened out from (profile/quota).
finished:
type: integer
description: Number of surveys the panelist finished (completed/quota/profile).
referred_panelists:
type: integer
description: Number of times the panelist referred somebody else (regardless of outcome).
points_earned:
type: integer
description: Number of points earned by the panelist since they've joined.
points_available:
type: integer
description: Number of points currently available to the panelist.
points_redeemed:
type: integer
description: Number of points used for redemptions.
points_survey:
type: integer
description: Number of points earned by taking surveys.
points_referral:
type: integer
description: Number of points earned by successfully referring other panelists.
points_other:
type: integer
description: Number of points obtained through other means (administrative, signup bonus).
example:
- id: string
email: string
phone_ok: true
email_ok: true
blacklisted: true
subscribed: 'yes'
timezone: string
joined_at: 0
source_id: string
community_id: string
language: string
created_at: 0
first_participation_at: 0
last_participation_at: 0
first_invitation_at: 0
last_invitation_at: 0
unsubscribed_at: 0
blacklisted_at: 0
unblacklisted_at: 0
referred_at: 0
first_completed_at: 0
last_completed_at: 0
last_points_earned_at: 0
last_survey_screened_at: 0
invited: 0
started: 0
completed: 0
screened: 0
finished: 0
referred_panelists: 0
points_earned: 0
points_available: 0
points_redeemed: 0
points_survey: 0
points_referral: 0
points_other: 0
'400':
description: Supplied property was invalid. The error message should return more information about what went wrong.
content:
application/json:
schema:
type: object
properties:
error:
example: string
type: string
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/panelists/{panelistHash}:
delete:
operationId: panelistDeletePanelistById
summary: Delete Panelists
description: 'Mark panelist to be deleted, allow 24 to 48 hours for full deletion.
Panelist will still appear in reports until they have been permanently cleared out by the application.'
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
required: true
description: A Panel ID
schema:
type: integer
- name: panelistHash
in: path
required: true
description: A Panelist Identifier
schema:
type: integer
responses:
'200':
description: OK
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/panelists/oidc/{oidcName}/{sub}:
delete:
operationId: panelistDeletePanelistByOidcSubject
summary: Delete Panelist by OIDC subject
description: 'Mark the panelist identified by the given OIDC login integration name and subject to be deleted,
allow 24 to 48 hours for full deletion.
Panelist will still appear in reports until they have been permanently cleared out by the application.
`oidcName` and `sub` are a composite key: together they identify a single panelist.'
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
required: true
description: A Panel ID
schema:
type: integer
- name: oidcName
in: path
required: true
description: The name of an OIDC login integration configured for the panel
schema:
type: string
- name: sub
in: path
required: true
description: The OIDC subject identifier of the panelist
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example:
success: true
'401':
description: Access token is missing or invalid
'404':
description: 'The panel id, OIDC login integration name or subject was not found.
The error message should provide detail about which parameter failed.
'
content:
application/json:
schema:
type: object
properties:
error:
type: string
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/panelists/{panelistId}/datapoints:
get:
operationId: panelistGetPanelistDatapoints
summary: Retrieve Datapoints
description: Output datapoints.
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
required: true
description: A Panel ID
schema:
type: integer
- name: panelistHash
in: path
required: true
description: Panelist's Hash
schema:
type: string
- in: query
name: filter[label]
required: true
description: Labels of datapoint to be retrieved
schema:
type: string
examples:
one datapoint:
value: Label1
description: One labels
multiple datapoint:
value: Label1,Label2
description: Multiple labels
- in: query
name: choice_format
required: false
description: Format of answers. Allowed values are choice_id, export_values, choice_text.
schema:
type: string
examples:
choice id:
value: choice_id
description: datapoint’s choice ID
export values:
value: export_values
description: datapoint’s export value (if it is not defined choice ID will be returned)
choice text:
value: choice_text
description: datapoint’s text
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
properties:
label:
type: string
answer:
type: string
example:
- label: string
answer: string
'400':
description: Supplied property was invalid. The error message should return more information about what went wrong.
content:
application/json:
schema:
type: object
properties:
error:
example: string
type: string
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/activities:
get:
operationId: panelistActivityByPanelId
summary: Retrieve Panelist Survey Activity
description: Results are ordered to show most recently created survey activity first.
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/panelid'
- in: query
name: filter[id]
required: false
description: Filter by activity id
schema:
type: string
- $ref: '#/components/parameters/projectidfilter'
- $ref: '#/components/parameters/panelistidfilter'
- in: query
name: filter[status]
required: false
description: 'Filter by activity status.
Valid values are:
- pending
- invited
- started
- profile
- quota
- completed
To filter by multiple statuses, provide them as a comma separated list.'
schema:
type: string
examples:
Single status:
value: filter[status]=completed
description: Get only activities which resulted in a complete.
summary: Single status
Multiple statuses:
value: filter[status]=started,profile,quota,completed
description: Get only activities where panelists clicked the invite.
summary: Multiple statuses
- in: query
name: filter[status_changed_at][gt]
required: false
description: 'Filter the `status_changed_at` timestamp by values greater than what you provided.
Expected value is a Unix Timestamp.
The `gt` filter value is not inclusive, i.e. it is not "greater than or equal".'
schema:
type: integer
examples:
Example 1:
value: filter[status_changed_at][gt]=1619560879
description: 'Get only activities which occurred after (but not including): `1619560879`.'
- in: query
name: filter[status_changed_at][lt]
required: false
description: 'Filter the `status_changed_at` timestamp by values less than what you provided.
Expected value is a Unix Timestamp.
The `lt` filter value is not inclusive, i.e. it is not "less than or equal".'
schema:
type: integer
examples:
Example 1:
value: filter[status_changed_at][lt]=1619560879
description: 'Get only activities which occurred before (but not including): `1619560879`.'
- $ref: '#/components/parameters/after'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
status:
type: string
started_at:
type: integer
status_changed_at:
type: integer
panelist_id:
type: string
project_id:
type: string
example:
- id: string
status: pending
started_at: 0
status_changed_at: 0
panelist_id: string
project_id: string
'400':
description: Supplied property was invalid. The error message should return more information about what went wrong.
content:
application/json:
schema:
type: object
properties:
error:
example: string
type: string
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/rewards:
get:
operationId: panelistGetRewards
summary: Retrieve Panelist Survey Rewards
description: Results are ordered by id descending.
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/panelid'
- $ref: '#/components/parameters/projectidfilter'
- $ref: '#/components/parameters/panelistidfilter'
- in: query
name: filter[id]
required: false
description: Filter by reward id
schema:
type: string
- $ref: '#/components/parameters/after'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
panelist_id:
type: string
project_id:
type: string
points:
type: integer
awarded_at:
type: integer
example:
- id: string
panelist_id: string
project_id: string
points: 0
awarded_at: 0
'400':
description: Supplied property was invalid. The error message should return more information about what went wrong.
content:
application/json:
schema:
type: object
properties:
error:
example: string
type: string
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/panelist_datapoint_reports:
post:
operationId: panelistDatapointReports
summary: Export datapoints/system fields for a known list of panelists by identifier
description: 'Export all answers for the list of datapoints and panelists provided. Instead of returning the results in the
response, a report is generated with a url of where to download it from.'
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
required: true
description: A Panel ID
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
panelist_ids:
type: array
description: An array of panelist identifiers to retrieve data for. Invalid / non-existent identifiers are omitted in the result.
items:
type: string
datapoint_labels:
type: array
description: An array of datapoint labels or panelist system fields to include. Invalid / non-existent datapoints or panelist fields are ignored and not included in the result.
items:
type: string
csv_labels_only:
type: boolean
default: true
description: Controls if the labels for the `checkbox/multiple options` should be displayed.
required:
- panelist_ids
- datapoint_labels
example:
panelist_ids:
- K_00000000123
- K_00000000456
- K_00000000789
datapoint_labels:
- Qfirstname
- Qgender
- email
responses:
'201':
description: "Ok. \n\nThe `id` value returned in the response can be used as the `reportId` parameter \n`GET /api/integration/panels/{panelId}/panelist_datapoint_reports/{reportId}`.\n"
content:
application/json:
schema:
type: object
properties:
id:
example: string
type: string
status:
type: string
enum:
- waiting
- running
- complete
- error
example: waiting
report_url:
type: string
example: string
description: 'URL where to download the finished report (only set when `status` is `complete`)
'
'400':
description: Supplied property was invalid. The error message should return more information about what went wrong.
content:
application/json:
schema:
type: object
properties:
error:
example: string
type: string
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
/api/integration/panels/{panelId}/panelist_datapoint_reports/{reportId}:
get:
operationId: panelistLoadReportById
summary: Load a report by its id
description: 'The result includes the status of the report and a URL where the report can be downloaded.
The generated report will be in CSV format.'
tags:
- Panelist
security:
- BearerAuth: []
parameters:
- $ref: '#/components/parameters/panelid'
- name: reportId
in: path
required: true
description: reportId
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
example: string
type: string
status:
type: string
enum:
- waiting
- running
- complete
- error
example: waiting
report_url:
type: string
example: string
description: 'URL where to download the finished report (only set when `status` is `complete`)
'
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
components:
schemas:
error:
type: object
properties:
success:
type: boolean
error:
description: The error message.
type: string
errno:
description: The error code.
type: string
parameters:
method:
name: method
in: query
required: true
description: Method
schema:
type: string
panelistidfilter:
in: query
description: Filter by panelist identifier
name: filter[panelist_id]
schema:
type: string
examples:
single:
value: y36uhip5r8j7
summary: Single panelist
multiple:
value: y36uhip5r8j7,oa85aha25i,gjore8o7237,zx69g6ybzue
summary: Multiple panelists
projectidfilter:
in: query
name: filter[project_id]
description: Filter by project id
schema:
type: string
examples:
single:
value: 1
summary: Single project
multiple:
value: 1,2,3,4
summary: Multiple projects
after:
in: query
name: after
required: false
description: Pagination parameter for cursor based pagination
schema:
type: string
examples:
example 1:
value: 123
description: Request values after id 123
panelid:
name: panelId
in: path
required: true
description: A Panel ID
schema:
type: integer
securitySchemes:
ApiKey:
type: apiKey
in: query
name: seskey
BearerAuth:
type: http
scheme: bearer
x-refined-from:
- forsta-panel-management-community-openapi.yml
- forsta-panel-management-integration-openapi.yml
x-tagGroups:
- name: Autoclose
tags:
- Autoclose
- name: Data Input and Output
tags:
- Data
- Data Feed
- Response Summary
- Modifying Data
- Datasources
- Datasources Data
- Umerge
- name: Survey Metadata
tags:
- Simulated Data
- Survey State
- Survey Evaluate
- Survey Quotas
- Survey Files
- Survey Warnings
- Survey Terms
- Survey Subscribers
- Survey Users
- Survey Tasks
- name: Panels
tags:
- Panel Data
- Panel Datapoints
- Survey Panels
- name: Research Hub
tags:
- Users
- Companies
- Categories
- Surveys
- Panels
- Crosstabs
- Archives
- Archival Reports
- API Keys
- Usage
- Warnings Summary
- name: Crosstabs
tags:
- Crosstabs Configuration
- Crosstabs Execution
- Crosstabs Nets
- Saved Crosstabs
- Crosstabs Table Settings
- Crosstabs Validation
- Crosstabs Rim Weighting
- name: Dashboards
tags:
- Dashboards
- name: DQ APIs
tags:
- DQ-Specific API Calls
- MaxDiff API Calls
- Discrete Choice Model API Calls
- Media Testimonial API Calls
- name: Response Summary
tags:
- Share Link
- name: Sample Management
tags:
- Bounced Emails
- Participant Sources
- name: Distribution
tags:
- Email Distribution
- SFTP Distribution
- Slack Distribution
- name: Campaign Manager
tags:
- Campaigns
- Campaign Email Invites
- Campaign Exports
- Campaign Lists
- Shared Campaign Lists
- Campaign Sends
- Campaign Status Lists
- Supression Lists
- name: Question Library
tags:
- Company Element
- Company Elements
- Survey Elements
- Survey Element Report Settings
- name: Language Manager
tags:
- LM Application Data
- LM Application Translations
- Translation Resources
- Translations
- Translation Deltas
- Translation Reservations
- Primary Survey Language
- Other Survey Languages
- Unused Survey Languages
- name: Project Parameters
tags:
- Available Project Parameters
- Saved Project Parameters
- Project Parameters Configuration
- name: Multi-User Editing
tags:
- Available Sections
- Check Out Section
- Check In Section
- Sync Section
- Section Editor
- Abandon Section
- Validate Section
- name: Video Management
tags:
- Videos
- Watermarked Videos
- name: Miscellaneous
tags:
- System Information
- Logic Nodes
- Logic Events
- CATI
- Global Search
- Miscellaneous