Skip to content
Dashboard

Get a survey by ID

GET/v2/surveys/{id}

Retrieves a single survey by its unique identifier.

Returns the survey object if found in your organization.

Response

Returns a survey object with:

  • id - Unique identifier
  • title - Survey title
  • description - Survey description
  • isActive - Whether the survey is active
  • responseCount - Number of responses received
  • targeting - Targeting configuration
  • pages - Array of survey pages/questions
  • createdAt - ISO 8601 timestamp when created
  • updatedAt - ISO 8601 timestamp when last updated

Survey Pages

Each page represents a question or screen in the survey:

  • type - Page type (text, link, rating, multiple-choice)
  • title - Question title
  • description - Optional description
  • logic - Conditional logic rules
  • defaultAction - Default action when no logic matches

Errors

  • 404 - Survey not found in your organization
Path ParametersExpand Collapse
id: string

Survey unique identifier

Header ParametersExpand Collapse
"Featurebase-Version": optional "2026-01-01.nova" or "2025-12-12.clover"
One of the following:
"2026-01-01.nova"
"2025-12-12.clover"
ReturnsExpand 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

Get a survey by ID

curl https://do.featurebase.app/v2/surveys/$ID \
    -H "Authorization: Bearer $FEATUREBASE_API_KEY"
{
  "id": "6743752ca81ae59d25cf834b",
  "createdAt": "2024-11-24T18:49:16.755Z",
  "isActive": true,
  "object": "survey",
  "organization": "5febde12dc56d60012d47db6",
  "pages": [
    {
      "id": "6743752ca81ae59d25cf834c",
      "title": "How happy are you with our product?",
      "type": "rating",
      "allowSelectMultiple": false,
      "choices": [
        {
          "id": "66dc54128b989696d050008b",
          "choice": "Very satisfied"
        }
      ],
      "defaultAction": {
        "type": "page",
        "pageId": "6743754dd8bf964ec2562cda"
      },
      "description": "We really want to hear from you.",
      "highLabel": "It's awesome!",
      "linkButtonText": "Visit our website",
      "linkRedirectUrl": "https://example.com",
      "linkTarget": "_blank",
      "logic": [
        {
          "comparator": "less than",
          "next": {
            "type": "page",
            "pageId": "6743754dd8bf964ec2562cda"
          },
          "value": 4,
          "id": "6743755fd8bf964ec2562cdb"
        }
      ],
      "lowLabel": "Could be improved",
      "placeholder": "Type your answer here",
      "scale": 5,
      "subType": "emoji"
    }
  ],
  "responseCount": 85,
  "title": "Get feedback for Feedback module",
  "updatedAt": "2025-04-10T08:58:51.148Z",
  "description": "Measure what we can improve",
  "targeting": {
    "css": [
      {
        "value": ".feedback-button"
      }
    ],
    "loginRequired": false,
    "segmentIds": [
      "6636438b7fcdc515999042eb"
    ],
    "url": [
      {
        "matchType": "contains",
        "value": "/dashboard/posts",
        "id": "674375cfd8bf964ec2562cdc"
      }
    ]
  }
}
Returns Examples
{
  "id": "6743752ca81ae59d25cf834b",
  "createdAt": "2024-11-24T18:49:16.755Z",
  "isActive": true,
  "object": "survey",
  "organization": "5febde12dc56d60012d47db6",
  "pages": [
    {
      "id": "6743752ca81ae59d25cf834c",
      "title": "How happy are you with our product?",
      "type": "rating",
      "allowSelectMultiple": false,
      "choices": [
        {
          "id": "66dc54128b989696d050008b",
          "choice": "Very satisfied"
        }
      ],
      "defaultAction": {
        "type": "page",
        "pageId": "6743754dd8bf964ec2562cda"
      },
      "description": "We really want to hear from you.",
      "highLabel": "It's awesome!",
      "linkButtonText": "Visit our website",
      "linkRedirectUrl": "https://example.com",
      "linkTarget": "_blank",
      "logic": [
        {
          "comparator": "less than",
          "next": {
            "type": "page",
            "pageId": "6743754dd8bf964ec2562cda"
          },
          "value": 4,
          "id": "6743755fd8bf964ec2562cdb"
        }
      ],
      "lowLabel": "Could be improved",
      "placeholder": "Type your answer here",
      "scale": 5,
      "subType": "emoji"
    }
  ],
  "responseCount": 85,
  "title": "Get feedback for Feedback module",
  "updatedAt": "2025-04-10T08:58:51.148Z",
  "description": "Measure what we can improve",
  "targeting": {
    "css": [
      {
        "value": ".feedback-button"
      }
    ],
    "loginRequired": false,
    "segmentIds": [
      "6636438b7fcdc515999042eb"
    ],
    "url": [
      {
        "matchType": "contains",
        "value": "/dashboard/posts",
        "id": "674375cfd8bf964ec2562cdc"
      }
    ]
  }
}