Formbricks Surveys API

Create and manage surveys.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/formbricks-surveys-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

formbricks-surveys-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Formbricks Action Classes Surveys API
  description: REST API for Formbricks, the open-source experience management and survey platform. The Management API (paths under /v1/management and /v2/management) requires a personal API key passed in the x-api-key header and gives full access to surveys, responses, contacts, contact attribute keys, action classes, webhooks, and account info. The Public Client API (/v1/client/{environmentId}) is unauthenticated and is used by survey front-ends to create displays and responses.
  termsOfService: https://formbricks.com/terms
  contact:
    name: Formbricks
    url: https://formbricks.com
  license:
    name: AGPL-3.0
    url: https://github.com/formbricks/formbricks/blob/main/LICENSE
  version: '2.0'
servers:
- url: https://app.formbricks.com/api
  description: Formbricks Cloud
tags:
- name: Surveys
  description: Create and manage surveys.
paths:
  /v2/management/surveys:
    get:
      operationId: getSurveys
      tags:
      - Surveys
      summary: List surveys
      description: Returns a paginated list of surveys in the environment.
      security:
      - apiKeyAuth: []
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          description: A list of surveys.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Survey'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createSurvey
      tags:
      - Surveys
      summary: Create a survey
      security:
      - apiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SurveyInput'
      responses:
        '201':
          description: The created survey.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Survey'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/management/surveys/{id}:
    parameters:
    - $ref: '#/components/parameters/SurveyId'
    get:
      operationId: getSurvey
      tags:
      - Surveys
      summary: Get a survey
      security:
      - apiKeyAuth: []
      responses:
        '200':
          description: The requested survey.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Survey'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateSurvey
      tags:
      - Surveys
      summary: Update a survey
      security:
      - apiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SurveyInput'
      responses:
        '200':
          description: The updated survey.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Survey'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteSurvey
      tags:
      - Surveys
      summary: Delete a survey
      security:
      - apiKeyAuth: []
      responses:
        '200':
          description: The deleted survey.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Survey'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/management/surveys/{id}/contact-links/segments/{segmentId}:
    parameters:
    - $ref: '#/components/parameters/SurveyId'
    - name: segmentId
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: getSurveyContactLinks
      tags:
      - Surveys
      summary: Generate single-use survey links for a segment
      description: Returns personalized single-use survey links for every contact in the given segment.
      security:
      - apiKeyAuth: []
      responses:
        '200':
          description: A list of personalized survey links.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        contactId:
                          type: string
                        surveyUrl:
                          type: string
                          format: uri
components:
  responses:
    BadRequest:
      description: The request body or parameters were invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    Skip:
      name: skip
      in: query
      description: Number of items to skip for pagination.
      schema:
        type: integer
        default: 0
    Limit:
      name: limit
      in: query
      description: Maximum number of items to return.
      schema:
        type: integer
        default: 10
    SurveyId:
      name: id
      in: path
      required: true
      schema:
        type: string
  schemas:
    Survey:
      type: object
      properties:
        id:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        name:
          type: string
        type:
          type: string
          enum:
          - link
          - app
        environmentId:
          type: string
        status:
          type: string
          enum:
          - draft
          - inProgress
          - paused
          - completed
        questions:
          type: array
          description: Legacy question list, derived from blocks for backwards compatibility.
          items:
            type: object
        blocks:
          type: array
          description: Current block-based survey structure.
          items:
            type: object
        welcomeCard:
          type: object
        endings:
          type: array
          items:
            type: object
    SurveyInput:
      type: object
      required:
      - name
      - type
      - environmentId
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - link
          - app
        environmentId:
          type: string
        status:
          type: string
          enum:
          - draft
          - inProgress
          - paused
          - completed
        questions:
          type: array
          items:
            type: object
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: object
          additionalProperties: true
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Personal API key generated in Formbricks under Settings > API Keys.