---
title: "Create Survey"
method: POST
path: "/v2/surveys"
tags: ["Surveys V2"]
---

# Create Survey

`POST /v2/surveys`

Creates a new survey in the specified application. Requires surveys:write scope.

## Request body

- object
  - `application_id` string, required — ID of the application to create the survey in
  - `name` string, required — Display name of the survey
  - `title` string, required — Title shown to the user
  - `message` string, required — Message shown below the title
  - `options` object[], required — Selectable options for the survey
    - `id` string, required — Unique identifier for the option
    - `title` string, required — Display text for the option
  - `include_other_option` boolean — Whether to show an 'Other' free-text option (default: true)
  - `include_close_option` boolean — Whether to show a close button (default: false)
  - `presentation_probability` number — Probability (0-1) of showing the survey (default: 1.0)

## Response `200`

Success

- object
  - `id` string, required — Unique identifier for the survey
  - `object` 'survey', required — Object type, always `survey`
  - `application_id` string, required — ID of the application this survey belongs to
  - `name` string, required — Display name of the survey
  - `title` string, required — Title shown to the user
  - `message` string, required — Message shown below the title
  - `options` object[], required — Selectable options for the survey
    - `id` string, required — Unique identifier for the option
    - `title` string, required — Display text for the option
  - `include_other_option` boolean, required — Whether to show an 'Other' free-text option
  - `include_close_option` boolean, required — Whether to show a close button that dismisses without answering
  - `presentation_probability` number, required — Probability (0-1) of showing the survey to a given user
  - `assignment_key` string, required — Key used for tracking user assignments; changes when assignments are reset
  - `created_at` string, required — ISO 8601 timestamp of when the survey was created
  - `updated_at` string, required — ISO 8601 timestamp of when the survey was last updated

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `403` — The API key does not have permission to perform this action
- `404` — The requested resource was not found
- `429` — Too many requests have been made in a short period
- `500` — An unexpected error occurred on the server

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) · [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/44900ad77d2c/schema)
