openapi: 3.1.1
info:
title: Integration API
version: ''
servers:
- url: https://{server}
description: Replace server with your instance domain.
variables:
server:
default: staging.panel.dev.focusvision.com/
description: Server domain
paths:
/api/integration/sessions:
post:
operationId: createSession
summary: Create a new session
description: |
Create a new session token that can be used to authenticate later requests.
The session remains active for 30 minutes. For existing sessions, any new request to the API resets the session timer back to 30 minutes.
In order to obtain credentials, you must create an API key in “API Key Management” under the user icon menu.
tags:
- Auth
security: []
requestBody:
content:
application/json:
schema:
type: object
required:
- username
- password
properties:
username:
description: The Client Id you get from API key manager module.
type: string
example: 3e159fcb-d2e6-4581-a1bb-c2d934c0aaaa
password:
description: The secret you get from API key manager module.
type: string
example: 677621b3-a999-4ec9-8d04-49452eb57777
responses:
'201':
description: OK
content:
application/json:
schema:
type: object
properties:
session_key:
description: |
The `session_key` value returned in the response can be used as the `sessionKey`
parameter in `DELETE /api/integration/sessions/{sessionKey}`.
example: 5a15852c564933807bbd36da58071063
type: string
examples:
success:
summary: Success
value:
session_key: 5a15852c564933807bbd36da58071063
'400':
description: |
Bad request.
Check that the "username" and "password" fields are present.
'401':
description: |
Unauthorized.
Could be one of the following:
- The supplied client id was not found.
- The supplied secret was empty or incorrect.
- There have been too many failed attempts from this IP address within a certain time frame.
'403':
description: |
Forbidden.
The IP address is not allowed access.
/api/integration/sessions/{sessionKey}:
delete:
operationId: terminateSession
summary: Terminate an existing session
description: |
Terminate an existing session by invalidating a `session_key`
tags:
- Auth
security:
- BearerAuth: []
parameters:
- name: sessionKey
in: path
required: true
description: sessionKey
schema:
type: string
responses:
'204':
description: No Content
'401':
description: Access token is missing or invalid
'404':
description: The supplied resource id was not found
/api.pro#method=integration.campaign.createWithCommunity:
post:
operationId: campaignCreateWithCommunity
summary: Create a campaign with community
description: |
Schedule campaign for the panelists. Campaigns are typically used to send email invitations to the panelists. This allows for creation of links that will
show up in the community. It is available as of version 4.6.0.1854 (released on July 26th 2016).
tags:
- Campaign
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.campaign.createWithCommunity
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- sesKey
- settings
- communityMessages
- messages
- sampleids
properties:
sesKey:
type: string
description: A valid login hash.
settings:
type: object
description: An array of settings (name => value)
properties:
name:
type: string
description: Name of the campaign.
startTime:
type: string
description: When to start sending out invitations.
pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
endTime:
type: string
description: When this campaign expires.
pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
messageTypes:
type: array
enum:
- - email
- - sms
- - email
- sms
- []
description: 'Message types used by campaign. An array consisting of email and/or (if available) sms, or an empty array for community-only campaigns. (Default: [email])'
default:
- email
items:
type: string
description:
type: string
description: The description of the campaign.
purpose:
type: string
enum:
- invitation
- profiler
default: invitation
description: The purpose of the campaign.
includePortal:
type: string
enum:
- 'yes'
- 'no'
- exclusively
default: 'yes'
description: Whether or not to display this invitation to portal members
pointsCompleted:
type: integer
description: Amount of points a panelist will receive upon completion.
pointsProfile:
type: integer
description: Amount of points a panelist will receive when profile terminating.
pointsQuota:
type: integer
description: Amount of points a panelist will receive when quota terminating.
maxParticipation:
type: integer
description: Amount of times a panelist is allowed to participate.
pointsTermination:
type: string
enum:
- every
- first
default: every
description: Reward panelist every time he participates or only the first time.
required:
- name
- startTime
communityMessages:
type: array
description: An array of community messages. These values are displayed to community users and are always required, even when the campaign is not published to any community.
items:
type: object
properties:
communitySubject:
type: string
description: Community subject text
communityContent:
type: string
description: Community message content
locale:
type: array
description: Array of locale ids
items:
type: integer
required:
- communitySubject
- communityContent
- locale
messages:
type: array
description: An array of invitation messages (email and/or SMS). Not required when publishing to the community only.
items:
type: object
properties:
subject:
type: string
description: Email subject text
content:
type: string
description: Email message content
sms:
type: string
description: SMS message content (if available)
locale:
type: array
description: Array of locale ids
items:
type: integer
required:
- locale
sampleids:
type: array
description: An array of sample IDs (obtained via integration.sample.create)
items:
type: integer
example:
sesKey: 5a15852c564933807bbd36da58071063
settings:
name: Home improvement Campaign
startTime: '2016-07-26 17:50:00'
messageTypes: []
includePortal: exclusively
pointsCompleted: 100
communityMessages:
- communitySubject: Home improvement survey
communityContent: Receive up to 100 points for taking this survey!
locale:
- 1
- communitySubject: Encuesta de mejoras para el hogar
communityContent: Recibe hasta 100 puntos por completar esta encuesta!
locale:
- 2
messages: []
sampleids:
- 42
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
data:
properties:
campaignid:
type: integer
examples:
success:
summary: Success
value:
success: true
data:
campaignid: 2
error-0:
description: The supplied settings name is not a string between 0-100 characters.
summary: Settings name invalid
value:
success: false
error: Name invalid
errno: '0'
error-1:
description: The supplied settings description is not a string between 0-65535 characters.
summary: Settings description invalid
value:
success: false
error: Description invalid
errno: '0'
error-2:
description: 'The supplied settings start time is not a string or is formatted incorrectly. Format: YYYY-MM-DD hh:mm:ss'
summary: Settings start time invalid
value:
success: false
error: Start time invalid
errno: '0'
error-3:
description: 'The supplied settings end time is not a string or is formatted incorrectly. Format: YYYY-MM-DD hh:mm:ss'
summary: Settings end time invalid
value:
success: false
error: End time invalid
errno: '0'
error-4:
description: The supplied settings purpose is not a valid string. The settings purpose parameter must be "invitation" or "profile".
summary: Settings purpose invalid
value:
success: false
error: Purpose invalid
errno: '0'
error-5:
description: The supplied include portal is not a valid string. The settings include portal parameter must be "invitation" or "profile".
summary: Settings include portal invalid
value:
success: false
error: Include portal invalid
errno: '0'
error-6:
description: The supplied settings points completed is not an integer.
summary: Settings points completed
value:
success: false
error: Points completed invalid
errno: '0'
error-7:
description: The supplied settings points profile is not an integer.
summary: Settings points profile invalid
value:
success: false
error: Points profile invalid
errno: '0'
error-8:
description: The supplied settings points quota is not an integer.
summary: Settings points quota invalid
value:
success: false
error: Points quota invalid
errno: '0'
error-9:
description: The supplied settings max participation is not an integer.
summary: Settings max participation invalid
value:
success: false
error: Max participation invalid
errno: '0'
error-10:
description: The supplied settings points termination is not a valid string. The settings points termination parameter must be "first" or "every".
summary: Settings points termination invalid
value:
success: false
error: Points termination invalid
errno: '0'
error-11:
description: The supplied settings message types is not an array.
summary: Settings message types invalid
value:
success: false
error: Message types invalid
errno: '0'
error-12:
description: The supplied settings message type is not a valid string. The settings message type parameter must be "sms" or "email".
summary: Settings message type invalid
value:
success: false
error: Message type invalid
errno: '0'
error-13:
description: Settings message types cannot be supplied for community only campaigns.
summary: Message invalid
value:
success: false
error: Message types can not be set for community only campaign
errno: '0'
error-14:
description: The supplied community messages is not an array.
summary: Community messages invalid
value:
success: false
error: Malformed community message array
errno: '0'
error-15:
description: One or more of the supplied community messages subject is not a string.
summary: Community message subject invalid
value:
success: false
error: Invalid community message subject
errno: '0'
error-16:
description: One or more of the supplied community messages content is not a string.
summary: Community message content invalid
value:
success: false
error: Invalid community message content
errno: '0'
error-17:
description: One or more of the supplied community messages subject is not a string between 1-65535 characters.
summary: Community message subject invalid
value:
success: false
error: Subject out of bounds
errno: '0'
error-18:
description: One or more of the supplied community messages content is not a string between 1-65535 characters.
summary: Community message content invalid
value:
success: false
error: Content out of bounds
errno: '0'
error-19:
description: One or more of the supplied community messages or messages locale is not an array.
summary: Community messages/Messages locale invalid
value:
success: false
error: Invalid locale array
errno: '0'
error-20:
description: One or more of the supplied community messages or messages locale is not a valid locale for the panel.
summary: Community messages/Messages locale invalid
value:
success: false
error: Invalid locale
errno: '0'
error-21:
description: The amount of community messages or messages are not equal to the amount of locales for panel.
summary: Community messages/Messages invalid
value:
success: false
error: Missing locales
errno: '0'
error-22:
description: The supplied messages is not an array.
summary: Messages invalid
value:
success: false
error: Malformed message array
errno: '0'
error-23:
description: One or more of the supplied messages subject is not a string.
summary: Message subject invalid
value:
success: false
error: Invalid message subject
errno: '0'
error-24:
description: One or more of the supplied messages content is not a string.
summary: Message content invalid
value:
success: false
error: Invalid message content
errno: '0'
error-25:
description: One or more of the supplied messages sms content is not a string.
summary: Message sms content invalid
value:
success: false
error: Invalid sms content
errno: '0'
error-26:
description: SMS messaging is not set up for this panel.
summary: SMS gateway provider not found
value:
success: false
error: No SMS gateway provider available
errno: '0'
error-27:
description: The messages parameter cannot be specified when the supplied settings include portal is set to "exclusively".
summary: Messages invalid
value:
success: false
error: Can not use messages for community exclusive campaign
errno: '0'
error-28:
description: The supplied sample IDs is empty.
summary: Empty sample IDs
value:
success: false
error: Invalid number of samples provided
errno: '0'
error-29:
description: Sample with supplied sample ID is not found.
summary: Sample IDs not found
value:
success: false
error: Invalid sample provided
errno: '0'
error-30:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-31:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-32:
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-33:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-34:
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-35:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.campaign.listing:
post:
operationId: campaignListing
summary: List scheduled campaign
description: |
Read listing of all campaign scheduled for the current project.
tags:
- Campaign
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.campaign.listing
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
type: array
items:
type: object
properties:
id:
type: integer
description: Id of the campaign.
name:
type: string
description: Name of the campaign.
description:
type: string
description: Description of the campaign.
starttime:
type: string
pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
description: Start time of the campaign.
endtime:
type:
- string
- 'null'
pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
description: End time of the campaign.
purpose:
type: string
description: |
Purpose of the campaign.
portalinvitation:
type: string
description: |
Was this campaign launched to the community (yes/no)
pointscompleted:
description: Amount of points given for completing.
type: integer
pointsprofile:
description: Amount of points given for profile terminating.
type: integer
pointsquota:
description: Amount of points given for quota terminating.
type: integer
maxparticipation:
description: Amount of times the campaign can be taken (0 = unlimited).
type: integer
pointstermination:
description: When points are received terminating ("every"/"first").
type: string
created_by:
type: string
description: Name of the user who created the campaign.
created:
type: string
description: Time and date of the creation of the campaign.
examples:
success:
summary: Success
value:
success: true
data:
- id: 2
name: New portal only campaign
description: ''
starttime: '2011-10-11 19:00:00'
endtime: null
purpose: portal
portalinvitation: 'yes'
pointscompleted: 100
pointsprofile: 30
pointsquota: 10
maxparticipation: 1
pointstermination: first
created_by: Panelsis Tester
created: '2011-10-14 12:46:52'
error-0:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-1:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-2:
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-3:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-4:
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-5:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.campaign.get:
post:
operationId: campaignGet
summary: Get campaign
description: |
Get info on one specific campaign in the current project.
tags:
- Campaign
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.campaign.get
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- campaingid
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
campaingid:
description: The id of the campaign.
type: integer
example: 42
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
data:
type: object
properties:
id:
type: integer
description: Id of the campaign.
name:
type: string
description: Name of the campaign.
description:
type: string
description: Description of the campaign.
starttime:
type: string
description: Start time of the campaign.
endtime:
type:
- string
- 'null'
description: End time of the campaign.
purpose:
type: string
description: Purpose of the campaign.
portalinvitation:
type: string
description: Was this campaign launched to the community (yes/no).
pointscompleted:
type: integer
description: Amount of points given for completing.
pointsprofile:
type: integer
description: Amount of points given for profile terminating.
pointsquota:
type: integer
description: Amount of points given for quota terminating.
maxparticipation:
type: integer
description: Amount of times the campaign can be taken (0 = unlimited).
pointstermination:
type: string
description: When points are received terminating ("every"/"first").
created_by:
type: string
description: Name of the user who created the campaign.
created:
type: string
description: Time and date of the creation of the campaign.
examples:
success:
summary: Success
value:
success: true
data:
id: 2
name: New portal only campaign
description: ''
starttime: '2011-10-11 19:00:00'
endtime: null
purpose: portal
portalinvitation: 'yes'
pointscompleted: 100
pointsprofile: 30
pointsquota: 10
maxparticipation: 1
pointstermination: first
created_by: Kinesis Tester
created: '2011-10-14 12:46:52'
error-0:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-1:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-2:
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-3:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-4:
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-5:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.campaign.schedule:
post:
operationId: scheduleCampaign
summary: Lists all samples and reminders scheduled for a campaign
description: |
Outputs a list of all samples and reminders that were scheduled for a specific campaign.
tags:
- Campaign
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.campaign.schedule
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- campaignid
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
campaignid:
type: integer
description: |
The campaignid of the campaign to list the schedule of.
example: 1
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
type: object
properties:
name:
type: string
type:
description: The type (reminder, sample)
type: string
scheduled:
description: The date and time it was scheduled.
type: string
sampleid:
type:
- integer
- 'null'
description: If type is "sample", the sampleid will be listed here.
created_by:
description: The user the reminder or sample was created by.
type: string
examples:
success:
summary: Success
value:
success: true
data:
type: sample
scheduled: '2011-10-11 19:00:00'
name: Sample import from list by Kinesis
sampleid: 4
created_by: Kinesis Tester
error-0:
description: The supplied campaign ID is not numeric.
summary: Campaign ID invalid
value:
success: false
error: The supplied campaign id is invalid.
errno: '20102'
error-1:
description: Campaign with supplied campaign ID is not found.
summary: Campaign ID not found
value:
success: false
error: 'No data found for Campaign ID: (campaign ID)'
errno: '20302'
error-2:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-3:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-4:
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-5:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-6:
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-7:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.category.listing:
post:
operationId: categoryListing
summary: List all categories
description: |
This call retrieves a list of defined categories for the selected panel.
tags:
- Category
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.category.listing
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
type: array
items:
type: object
properties:
id:
type: integer
description: The category id (used in integration.project.create and integration.project.listing)
name:
type: string
description: The name of the category
examples:
success:
summary: Success
value:
success: true
data:
- id: 1
name: New category
- id: 2
name: Second category
error-0:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-1:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-2:
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-3:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-4:
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'
/api.pro#method=integration.community.createSession:
post:
operationId: communityCreateSession
summary: Create a session by username/email address
description: |
Creates an active session using the panelist username/email address for use with Portal API,
without the need for a panelist password.
tags:
- Community
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.community.createSession
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- username
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
username:
description: The username of the panelist the session is created for.
type: string
example: test@kinesissurvey.com
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
properties:
seskey:
description: A valid login hash.
type: string
panelistid:
description: The id of the panelist that the session was created for.
type: integer
email:
description: The email address of the panelist that the session was created for.
type: string
fullname:
description: The full name of the panelist that the session was created for.
type: string
examples:
success:
summary: Success
value:
success: true
data:
seskey: 672ef56f6a475fedb0fcf8f109e3f410
panelistid: 1
email: test@kinesissurvey.com
fullname: ''
error-0:
description: The supplied email address is not valid or a panelist with supplied email address is not found.
summary: Email invalid or not found
value:
success: false
error: The supplied email is invalid
errno: '20102'
error-1:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-2:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-3:
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-4:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-5:
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'
/api.pro#method=integration.community.createSessionWithPID:
post:
operationId: communityCreateSessionWithPID
summary: Create a session using the panelist pid
description: |
Creates an active session using the panelist pid (panelist id) for use with Portal API, without the need for a
panelist password.
tags:
- Community
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.community.createSessionWithPID
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- pid
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
pid:
description: The pid (panelist id) of the panelist the session is created for.
type: integer
example: 1
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
properties:
seskey:
description: A valid login hash.
type: string
panelistid:
description: The id of the panelist that the session was created for.
type: integer
email:
description: The email address of the panelist that the session was created for.
type: string
fullname:
description: The full name of the panelist that the session was created for.
type: string
examples:
success:
summary: Success
value:
success: true
data:
seskey: 672ef56f6a475fedb0fcf8f109e3f410
panelistid: 1
email: test@kinesissurvey.com
fullname: ''
error-0:
description: The supplied panelist ID is not numeric or a panelist with supplied panelist ID is not found.
summary: PID invalid or not found
value:
success: false
error: The supplied pid is invalid
errno: '20102'
error-1:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-2:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-3:
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-4:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-5:
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'
/api.pro#method=integration.community.createSessionWithIdentifier:
post:
operationId: communityCreateSessionWithIdentifier
summary: Creates an active session using the panelist identifier
description: |
Creates an active session using the panelist identifier for use with Portal API, without the need for a panelist
password.
tags:
- Community
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.community.createSessionWithIdentifier
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- identifier
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
identifier:
description: The identifier of the panelist the session is created for.
type: string
example: K_a1b2c3d4e5
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
properties:
seskey:
description: A valid login hash.
type: string
panelistid:
description: The id of the panelist that the session was created for.
type: integer
email:
description: The email address of the panelist that the session was created for.
type: string
fullname:
description: The full name of the panelist that the session was created for.
type: string
examples:
success:
summary: Success
value:
success: true
data:
seskey: 672ef56f6a475fedb0fcf8f109e3f410
panelistid: 1
email: test@kinesissurvey.com
fullname: ''
error-0:
description: The supplied identifier is not a string or a Panelist with supplied identifier (username) is not found.
summary: Identifier invalid or not found
value:
success: false
error: The supplied identifier is invalid
errno: '20102'
error-1:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-2:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-3:
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-4:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-5:
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'
/api.pro#method=integration.community.getLandingPage:
post:
operationId: communityGetLandingPage
summary: Get landing page info
description: |
Query community landing page texts and page titles. Since panel itself does not display themed info pages anymore,
but has its built in community portal handle it instead, in order to display these now called "landing pages" when
the community portal is in API Mode, this call is necessary.
Every time a panelist triggers an action that before would have resulted in a message displayed on screen,
we must now query for that.
When a community is used in "API mode", an setting becomes available to specify a "Receiver URL for landing pages".
This URL is where panelists are redirected and where the landing page can be shown.
# Example PHP code for landing page receiver:
```PHP
$sesKey, // We must be authenticated to use this! (see: /api/integration/sessions)
'encStr'=>$kslp
]; // JSON Encode our data
$dataJSON = json_encode($data);
// Initialize CURL and post the data
$client = curl_init();
curl_setopt($client, CURLOPT_URL, "https://example.com/panel/api.pro?method=integration.community.getLandingPage");
curl_setopt($client, CURLOPT_POST, true);
curl_setopt($client, CURLOPT_POSTFIELDS, ['data' => $dataJSON]);
curl_setopt($client, CURLOPT_RETURNTRANSFER, true);
// Submit request
$result = curl_exec($client);
// JSON decode result data
$result = json_decode($result);
?>
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'
/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'
/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'
/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'
/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.integration.category.listing)
items:
type: integer
examples:
success:
summary: Success
value:
success: true
data:
- id: 1
name: foo's new project
status: open
created: '2011-10-14 12:13:13'
completed: null
closed: null
created_by: Kinesis Tester
categories:
- 1
- 2
- 42
- id: 2
name: bar's new project
status: closed
created: '2014-02-10 14:34:00'
completed: '2020-12-22 15:48:00'
closed: '2020-12-22 17:48:00'
created_by: Kinesis Tester
categories: []
error-0:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-1:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-2:
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-3:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-4:
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'
/api.pro#method=integration.reminder.create:
post:
operationId: reminderCreate
summary: Create a reminder
description: |
Create a reminder for an existing campaign (requires existing campaign with existing scheduled invitation)
tags:
- Reminder
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.reminder.create
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- campaignid
- messages
- startDate
- sampleIds
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
campaignid:
description: Name of the sample.
type: integer
example: 1
messages:
description: A zero based array of associative arrays containing localized message data.
type: array
items:
type: object
properties:
subject:
type: string
content:
type: string
locale:
type: string
example:
- subject: The Subject
content: This is the message content
locale: 1
- subject: The Subject
content: This is the message content
locale: 2
- subject: The Subject
content: This is the message content
locale: 3
startDate:
description: The date and time when the reminder should be sent.
type: string
pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$
example: '2011-12-24 17:40:00'
sampleIds:
description: Specifies which samples to send to. (If empty it will send to all sampleids in the campaign)
type: array
items:
type: number
example:
- 1
- 2
- 3
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
data:
properties:
reminderid:
type: integer
examples:
success:
summary: Success
value:
success: true
data:
reminderid: 1
error-0:
description: Campaign with supplied campaign ID is not found in selected project.
summary: Campaign ID not found
value:
success: false
error: 'No data found for Campaign ID: (campaign ID)'
errno: '10000'
error-1:
description: The supplied messages array did not contain messages with all locales for the selected panel.
summary: Messages invalid
value:
success: false
error: Localized Reminder data must contain all locales!
errno: '10000'
error-2:
description: The supplied campaign ID is not numeric.
summary: Campaign ID invalid
value:
success: false
error: The "campaignId" parameter is of an unexpected type (campaign ID type). Please use an integer, as described in the documentation.
errno: '20102'
error-3:
description: The supplied messages parameter is not an array.
summary: Messages invalid
value:
success: false
error: The "messages" parameter is of an unexpected type (messages type). Please use an array, as described in the documentation.
errno: '20103'
error-4:
description: The supplied messages locale is not numeric.
summary: Messages locale invalid
value:
success: false
error: Invalid value for locale encountered (message locale type). Please use an integer.
errno: '20103'
error-5:
description: The supplied messages array has multiple messages with the same locale. There can only
summary: Messages locale invalid
value:
success: false
error: You have more than one message defined for locale (local ID). Message locales must be unique.
errno: '20103'
error-6:
description: The supplied start date is not valid timestamp (YYYY-MM-DD HH:mm:ss).
summary: Start date invalid
value:
success: false
error: The "when" parameter is of an unexpected type (start date type). Please use a valid (UNIX) timestamp, as described in the documentation.
errno: '20104'
error-7:
description: The supplied sample IDs is not an array or is null.
summary: Sample IDs invalid
value:
success: false
error: The "sampleIds" parameter is of an unexpected type (sample ID type). Please use an array, as described in the documentation.
errno: '20105'
error-8:
description: One of the supplied sample IDs is not numeric.
summary: Sample IDs invalid
value:
success: false
error: Invalid value in "sampleId" encountered (sample ID type). Please use an array of integers, as described in the documentation.
errno: '20105'
error-9:
description: Sample with supplied sample ID is not found.
summary: Sample not found
value:
success: false
error: The supplied sample id (sample ID) in "sampleId" is invalid or cannot be used for this campaign.
errno: '20105'
error-10:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-11:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-12:
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-13:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-14:
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-15:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.sample.create:
post:
operationId: sampleCreate
summary: Create sample
description: |
Create a sample from panelist identifiers.
tags:
- Sample
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.sample.create
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- name
- description
- identifiers
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
name:
description: Name of the sample.
type: string
example: First Sample
description:
description: Description of the sample.
type: string
example: This is the First Sample
identifiers:
description: Zero-based array of identifiers to be included in the sample.
type: array
items:
type: string
example:
- 130_FNOAHH
- 131_FNOAHH
- 132_FNOAHH
- 133_FNOAHH
- 134_FNOAHH
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
properties:
sampleid:
type: integer
examples:
success:
summary: Success
value:
success: true
data:
sampleid: 1
error-0:
description: The supplied name is empty. The name parameter is required.
summary: Empty name
value:
success: false
error: Please enter the name for the sample you would like to create.
errno: '10000'
error-1:
description: The supplied identifiers array is empty. The identifiers parameter is required.
summary: Empty identifiers
value:
success: false
error: Please enter the information for samples to be added.
errno: '10000'
error-2:
description: The supplied identifiers are not an array.
summary: Identifiers invalid
value:
success: false
error: The "identifiers" parameter is of an unexpected type (identifiers type). Please use an array, as described in the documentation.
errno: '20104'
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'
error-8:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.sample.update:
post:
operationId: sampleUpdate
summary: Update a sample
description: |
Update a sample with appended data
tags:
- Sample
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.sample.update
requestBody:
content:
application/json:
schema:
type: object
properties:
sesKey:
type: string
description: A valid login hash.
sampleid:
type: integer
description: Sample to which you want to append data. (must already exist)
params:
type: array
description: Zero-based array containing parameter names. (i.e. value1,value2)
items:
type: string
identifiers:
type: array
description: Zero-based array containing identifiers to append data to.
items:
type: string
values:
type: array
description: Array of arrays, containing values for each param, for each panelist, (same order as identifier array)
items:
type: array
items:
oneOf:
- type: string
- type: integer
required:
- sesKey
- sampleid
- params
- identifiers
- values
example:
sesKey: 5a15852c564933807bbd36da58071063
sampleid: 1
params:
- value1
- value2
- value3
identifiers:
- 130_FNOAHH
- 131_FNOAHH
values:
- - 1
- 2
- 3
- - 4
- 5
- 6
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 parameter names should not have spaces in supplied params array.
summary: Params invalid
value:
success: false
error: Header names cannot contain spaces! (params)
errno: '10000'
error-1:
description: The parameter names should only have numbers (0-9) or letters (A-Z or a-z) in supplied params array.
summary: Params invalid
value:
success: false
error: Header names may only contain Latin letters and numbers. (params)
errno: '10000'
error-2:
description: The parameter names should not start with a number (0-9) in supplied params array.
summary: Params invalid
value:
success: false
error: Header names cannot start with numbers! (params)
errno: '10000'
error-3:
description: The supplied sample ID is not numeric.
summary: Sample ID invalid
value:
success: false
error: The sampleId (sample ID) must be a number greater than zero
errno: '20102'
error-4:
description: The supplied params is not an array.
summary: Params invalid
value:
success: false
error: The "params" parameter is of an unexpected type (params type). Please use an array, as described in the documentation.
errno: '20103'
error-5:
description: The supplied identifier is not an array.
summary: Identifiers invalid
value:
success: false
error: The "identifiers" parameter is of an unexpected type (identifiers type). Please use an array, as described in the documentation.
errno: '20104'
error-6:
description: The supplied identifiers and values arrays do not contain the same amount of elements. Both of these parameters must have the same element count.
summary: Identifiers invalid
value:
success: false
error: Your "identifier" array contains more/fewer elements than your "values" array. They must match.
errno: '20104'
error-7:
description: The supplied values is not an array.
summary: Values invalid
value:
success: false
error: The "values" parameter is of an unexpected type (data type). Please use an array, as described in the documentation.
errno: '20105'
error-8:
description: The supplied params array is empty.
summary: Empty params
value:
success: false
error: The "params" array is empty, so there is nothing to append
errno: '20203'
error-9:
description: The supplied identifiers array is empty.
summary: Empty identifiers
value:
success: false
error: The "identifiers" array is empty, so there is nothing to append
errno: '20204'
error-10:
description: The supplied values array is empty.
summary: Empty values
value:
success: false
error: The "values" array is empty, so there is nothing to append
errno: '20205'
error-11:
description: Sample with supplied sample ID is not found for selected project.
summary: Sample not found
value:
success: false
error: Sample is empty
errno: '20302'
error-12:
description: The supplied identifiers are not found in sample.
summary: Indentifiers invalid
value:
success: false
error: 'The following identifiers were not found in the sample: (identifiers)'
errno: '20304'
error-13:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-14:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-15:
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-16:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
error-17:
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-18:
description: A project needs to be selected before calling this method.
summary: Project not found
value:
success: false
error: You must select a project before you can use this method.
errno: '40002'
/api.pro#method=integration.session.get:
post:
operationId: getSessionGet
summary: Get session info using the sessionkey
description: |
Get session info using the sessionkey. The return values contain basic data about the session,
including project ID, campaign ID, panelist ID, status, start time etc.
tags:
- Session
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.session.get
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- sesString
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
sesString:
description: 16 character panelist session string from the URL
type: string
example: e0197525e7129c5c
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
example: true
type: boolean
data:
example:
projectid: 23
campaignid: 59
panelistid: 34359
status: started
starttime: '2013-01-01 23:59:59'
type: object
properties:
projectid:
type: integer
campaignid:
type: integer
panelistid:
type: integer
status:
type: string
starttime:
type: string
examples:
success:
summary: Success
value:
success: true
data:
projectid: 23
campaignid: 59
panelistid: 34359
status: started
starttime: '2013-01-01 23:59:59'
error-0:
description: Session with supplied session string is not found.
summary: Session string invalid
value:
success: false
error: Session key (sesskey) is not valid
errno: '20202'
error-1:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-2:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-3:
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-4:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
/api.pro#method=integration.session.update:
post:
operationId: getSessionUpdate
summary: Update the session status using the sessionkey
description: |
Update the session status using the sessionkey. Optionally reward points can be distributed.
Distributed points will also link the points to the panelist session. Note: Specified reward points will override
any other default point values in the campaign manager.
tags:
- Session
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.session.update
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- sesString
- status
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
sesString:
description: 16 character panelist session string from the URL
type: string
example: e0197525e7129c5c
status:
description: Set the status of the completing panelist.
type: string
enum:
- profile
- quota
- started
- completed
example: profile
points:
description: Optional to supply custom number of points
type: integer
example: 50
note:
description: Optional to supply custom reward points activity note; note is only saved if a non-zero points value is provided or the campaign is set up to issue points for the status that is provided.
type: string
example: Completed survey
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: Session with supplied session string is not found.
summary: Session string invalid
value:
success: false
error: Session key (sesskey) is not valid
errno: '20202'
error-1:
description: The project is closed and status cannot be updated.
summary: Project Closed
value:
success: false
error: Project is closed
errno: '20203'
error-2:
description: The campaign is expired and status cannot be updated.
summary: Campaign Expired
value:
success: false
error: Campaign is expired
errno: '20203'
error-3:
description: The panelist is opted out.
summary: Panelist Opted Out
value:
success: false
error: Panelist opted out
errno: '20203'
error-4:
description: 'The supplied status is invalid. The status must be one of the following: "profile", "quota" or "completed".'
summary: Status invalid
value:
success: false
error: Status (status) is unknown
errno: '20203'
error-5:
description: The supplied status in valid. The panelist must have a started status before changing it to this status.
summary: Status invalid
value:
success: false
error: 'Somebody is trying to go from status: ‘(current panelist status)’ to ‘(status)’ while bypassing ''started’'
errno: '20203'
error-6:
description: The supplied status is invalid for panelist.
summary: Status invalid
value:
success: false
error: Status can only be set higher than its current value of ‘(current panelist status)’
errno: '20203'
error-7:
description: The supplied status is invalid. The panelist is pending and their status can be changed to invited only.
summary: Status invalid
value:
success: false
error: A pending session can only be changed to 'invited'
errno: '20203'
error-8:
description: The panelist exit status is already recorded. Their status cannot be changed.
summary: Status invalid
value:
success: false
error: Exit status already recorded
errno: '20203'
error-9:
description: The supplied points value must be positive.
summary: Points invalid
value:
success: false
error: Points value must be positive
errno: '20204'
error-10:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-11:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-12:
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-13:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
/api.pro#method=integration.surveys.available:
post:
operationId: getSurveyForPanelist
summary: List survey for panelist
description: |
Get a list of available surveys for a panelist.
tags:
- Survey
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.surveys.available
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- index
properties:
sesKey:
description: A valid login hash.
type: string
example: 5a15852c564933807bbd36da58071063
index:
description: Panelist ID or identifier to look up the panelist.
type: string
example: 34359
indexType:
description: The type of index being used
type: string
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:
subject:
type: string
description: Email subject that was used in the invitation.
body:
type: string
description: A more detailed survey description.
status:
type:
- string
- 'null'
description: '''started'' if the panelist has started, but not completed the survey, otherwise NULL.'
time:
type: string
description: The time this portal invitation was sent.
points:
type: integer
description: The number of points awarded for a completed survey.
url:
type: string
format: url
description: URL to take the panelist to the survey, as defined in the project.
type:
type:
- string
- 'null'
enum:
- emailhtml
- SMS
description: The type of invitation that was used. If the type is not available (portal launch only), this field will be NULL.
endtime:
type: string
description: The time when the campaign expires and the survey links will stop working.
invited:
type: string
description: The time when the panelist was invited.
purpose:
type: string
enum:
- invitation
- automated
- diary
- profiler
- portal
description: The campaign purpose.
projectid:
type: integer
description: The project ID
examples:
success:
summary: Success
value:
success: true
data:
subject: You have been invited to take part in a Sample Project.
body: This survey is about your favorite type of car.
status: null
time: '2013-01-01 23:59:59'
points: 200
url: http://www.example.com/receiver.pro?seskey=e0197525e7129c5c
type: emailhtml
endtime: '2013-01-01 23:59:59'
invited: '2013-01-01 23:59:59'
purpose: invitation
projectid: 10
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: Panelist with supplied identifier or panelist ID is not found.
summary: Panelist not found
value:
success: false
error: Panelist not found
errno: '20203'
error-2:
description: Session has expired.
summary: Session expired
value:
success: false
error: Session has expired. You must start a new session.
errno: '30100'
error-3:
description: Session is not found for supplied session key.
summary: Session not found
value:
success: false
error: sessionkey not found
errno: '30200'
error-4:
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-5:
description: Session key is not in correct format.
summary: Session invalid
value:
success: false
error: sessionkey is invalid
errno: '30300'
/api.pro#method=integration.token.get:
post:
operationId: getToken
summary: Get status of long running process
description: |
Retrieve the result or current status of a long-running import or export process.
tags:
- Token
security:
- ApiKey: []
parameters:
- $ref: '#/components/parameters/method'
schema:
enum:
- integration.token.get
requestBody:
content:
application/json:
schema:
type: object
required:
- sesKey
- token
properties:
sesKey:
description: A valid login hash.
type: string
example: '[your sesKey]'
token:
description: The token returned by either `integration.panelist.bulkUpdate` or `integration.panelist.bulkRead`
type: string
example: 28timgls19hcck4sccocc8gg
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error'
- type: object
properties:
success:
type: boolean
status:
type: string
description: The status of the process
result:
type: array
description: The result of the process
items:
type: object
properties:
success:
type: boolean
errors:
type: array
items:
type: string
warnings:
type: array
items:
type: string
examples:
success:
summary: Success
value:
success: true
status: complete
result: []
/api/integration/panels/{panelId}/panelists/{panelistHash}/notes:
get:
operationId: panelistNoteGetNotes
summary: Retrieve Notes for a given panelist.
description: Results are ordered by id ascending. Newest notes are returned last.
tags:
- Notes
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
description: A panel Id.
schema:
type: integer
required: true
- name: panelistHash
in: path
description: A panelist hash.
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
note:
type: string
example:
- id: 12
note: note 1
- id: 15
note: note 2
'404':
description: The panel id or panelist identifier was not found. The error message should provide detail about which parameter failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: Panel not found
post:
operationId: panelistNoteCreateNote
summary: Create a note for a given panelist.
tags:
- Notes
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
description: A panel Id.
schema:
type: integer
required: true
- name: panelistHash
in: path
description: A panelist hash.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
note:
type: string
description: Note text
required:
- note
example:
note: Text to add
responses:
'201':
description: Ok
content:
application/json:
schema:
type: object
properties:
id:
type: integer
example:
id: 12
'400':
description: Invalid note was passed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: Invalid note
'404':
description: The panel id, panelist identifier or note id was not found. The error message should provide detail about which parameter failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: Panel not found
/api/integration/panels/{panelId}/panelists/{panelistHash}/notes/{noteId}:
put:
operationId: panelistNoteModifyNote
summary: Change the text for a given panelist note.
tags:
- Notes
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
description: A panel Id.
schema:
type: integer
required: true
- name: panelistHash
in: path
description: A panelist hash.
required: true
schema:
type: string
- name: noteId
in: path
description: Note Id.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
note:
type: string
description: Note text
required:
- note
example:
note: Text to update
responses:
'204':
description: No response
'400':
description: Invalid note was passed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: Invalid note
'404':
description: The panel id, panelist identifier or note id was not found. The error message should provide detail about which parameter failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: Panel not found
delete:
operationId: panelistNoteDeleteNote
summary: Delete a given panelist note .
tags:
- Notes
security:
- BearerAuth: []
parameters:
- name: panelId
in: path
description: A panel Id.
schema:
type: integer
required: true
- name: panelistHash
in: path
description: A panelist hash.
required: true
schema:
type: string
- name: noteId
in: path
description: Note Id.
required: true
schema:
type: string
responses:
'204':
description: No response.
'404':
description: The panel id, panelist identifier or note id was not found. The error message should provide detail about which parameter failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
example:
error: Panel not found
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
ApiKey:
type: apiKey
in: query
name: sesKey
parameters:
method:
name: method
in: query
required: true
description: Method
schema:
type: string
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
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
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
schemas:
error:
type: object
properties:
success:
type: boolean
error:
description: The error message.
type: string
errno:
description: The error code.
type: string
x-tagGroups:
- name: Data Input and Output
tags:
- Auth
- Campaign
- Category
- Community
- Datapoint
- Panel
- Notes
- Panelist
- Project
- Reminder
- Sample
- Session
- Survey
- Token