Skip to content
Dashboard

Surveys

Surveys allow you to collect targeted feedback from your users within your product. Surveys can be targeted to specific user segments or pages and can contain multiple questions with conditional logic.

List surveys
GET/v2/surveys
Get a survey by ID
GET/v2/surveys/{id}
Get survey responses
GET/v2/surveys/{id}/responses
ModelsExpand Collapse
Survey object { id, createdAt, isActive, 8 more }
id: string

Unique identifier

createdAt: string

ISO 8601 timestamp when created

isActive: boolean

Whether the survey is active

object: "survey"

Object type identifier

organization: string

Organization ID

pages: array of object { id, title, type, 13 more }

Survey pages

id: string

Page ID

title: string

Page title

type: "text" or "link" or "rating" or "multiple-choice"

Page type

One of the following:
"text"
"link"
"rating"
"multiple-choice"
allowSelectMultiple: optional boolean

Allow multiple selections

choices: optional array of object { id, choice }

Available choices

id: string

Choice ID

choice: optional string

Choice text

defaultAction: optional SurveyNextAction { type, pageId }

Action to take if condition matches

type: "page" or "end" or "next"

Type of next action

One of the following:
"page"
"end"
"next"
pageId: optional string

Page ID to navigate to

description: optional string

Page description

highLabel: optional string

Label for high rating

linkButtonText: optional string

Button text for link

linkRedirectUrl: optional string

URL to redirect to

linkTarget: optional "_blank" or "_self" or "_parent" or "_top"

Link target

One of the following:
"_blank"
"_self"
"_parent"
"_top"
logic: optional array of object { comparator, next, value, id }

Conditional logic rules

comparator: string

Comparison operator

One of the following:
value: string or number or array of string

Value to compare against

One of the following:
string
number
array of string
id: optional string

Logic rule ID

lowLabel: optional string

Label for low rating

placeholder: optional string

Placeholder for text input

scale: optional number

Rating scale

subType: optional "number" or "emoji" or "generic" or 2 more

Sub-type for rating/multiple-choice

One of the following:
"number"
"emoji"
"generic"
"featurebase-posts"
"nps"
responseCount: number

Number of responses

title: string

Survey title

updatedAt: string

ISO 8601 timestamp when last updated

description: optional string

Survey description

targeting: optional object { css, loginRequired, segmentIds, url }

Targeting configuration

css: optional array of object { value }

CSS selector targeting rules

value: string

CSS selector

loginRequired: optional boolean

Whether login is required

segmentIds: optional array of string

Segment IDs to target

url: optional array of object { matchType, value, id }

URL targeting rules

matchType: "exact" or "contains" or "regex"

Type of URL matching

One of the following:
"exact"
"contains"
"regex"
value: string

URL pattern to match

id: optional string

Rule ID

SurveyNextAction object { type, pageId }

Action to take if condition matches

type: "page" or "end" or "next"

Type of next action

One of the following:
"page"
"end"
"next"
pageId: optional string

Page ID to navigate to

SurveyListResponsesResponse object { id, createdAt, object, 2 more }
id: string

Unique identifier

createdAt: string

ISO 8601 timestamp when created

object: "survey_response"

Object type identifier

responses: array of object { pageId, type, value, 3 more }

Individual responses to questions

pageId: string

Page ID this response is for

type: "text" or "link" or "rating" or "multiple-choice"

Response type

One of the following:
"text"
"link"
"rating"
"multiple-choice"
value: string or number or boolean or array of string

Response value

One of the following:
string
number
boolean
array of string
id: optional string

Response ID

createdAt: optional string

ISO 8601 timestamp when created

updatedAt: optional string

ISO 8601 timestamp when updated

user: Contact { id, name, object, 16 more }

User who submitted the response

id: string

Unique identifier

name: string

Contact display name

object: "contact"

Object type identifier

type: "customer" or "lead"

Type of contact

One of the following:
"customer"
"lead"
commentsCreated: optional number

Number of comments created

companies: optional array of Company { id, companyId, companySize, 11 more }

Companies the contact belongs to

id: string

Featurebase internal ID

companyId: string

External company ID from your system

companySize: number

Company employee headcount

createdAt: string

ISO date when company was created

industry: string

Industry

lastActivity: string

ISO date of last activity

linkedUsers: number

Number of users linked to this company

monthlySpend: number

Monthly spend

name: string

Company name

object: "company"

Object type identifier

plan: string

Plan or tier name

updatedAt: string

ISO date when company was last updated

website: string

Company website URL

customFields: optional map[unknown]

Custom field values

customFields: optional map[unknown]

Custom field values on the contact

description: optional string

Contact description/bio

email: optional string

Contact email

lastActivity: optional string

Last activity ISO timestamp

locale: optional string

Contact locale

manuallyOptedOutFromChangelog: optional boolean

Whether manually opted out from changelog

organizationId: optional string

Organization ID the contact belongs to

postsCreated: optional number

Number of posts created

profilePicture: optional string

Profile picture URL

roles: optional array of string

Contact roles

subscribedToChangelog: optional boolean

Whether subscribed to changelog

userId: optional string

External user ID from SSO

verified: optional boolean

Whether email is verified