Formbricks website screenshot

Formbricks

Formbricks is an open-source experience management and survey platform (a privacy-first Typeform / Qualtrics alternative). Its REST API lets you create and manage surveys, collect and query responses, manage contacts and their attributes, and wire up webhooks, with a Public Client API (no auth) for survey delivery and a Management API authenticated with an x-api-key header.

5 APIs 0 Features
SurveysExperience ManagementFeedbackFormsOpen Source

APIs

Formbricks Surveys API

List, create, retrieve, update, and delete surveys, plus generate single-use survey links, through the Management API under /api/v2/management/surveys.

Formbricks Responses API

Create, list, filter by survey, update, and delete survey responses. Responses carry per-question data, time-to-complete (ttc), finished state, and meta (source, url, userAgent,...

Formbricks Contacts and Attributes API

List and retrieve contacts, bulk-upsert contacts with their attributes, and manage contact attribute keys that define the segmentation schema for an environment.

Formbricks Webhooks API

List, create, and delete webhooks that fire real-time HTTP notifications on responseCreated, responseUpdated, and responseFinished triggers, optionally scoped to specific survey...

Formbricks Management API

Account and configuration surface - the Me endpoint that returns the environment an API key belongs to, and Action Class management for defining the code and no-code actions tha...

Collections

Pricing Plans

Formbricks Plans Pricing

5 plans

PLANS

Rate Limits

Formbricks Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Formbricks API
  version: '2.0'
request:
  auth:
    type: apikey
    apikey:
      key: x-api-key
      value: '{{apiKey}}'
      in: header
items:
- info:
    name: Me
    type: folder
  items:
  - info:
      name: Retrieve account information
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v1/me
    docs: Returns the environment and project the API key belongs to.
- info:
    name: Surveys
    type: folder
  items:
  - info:
      name: List surveys
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/surveys
    docs: List surveys in the environment.
  - info:
      name: Create a survey
      type: http
    http:
      method: POST
      url: https://app.formbricks.com/api/v2/management/surveys
      body:
        type: json
        data: '{"name":"My Survey","type":"link","environmentId":""}'
    docs: Create a survey.
  - info:
      name: Get a survey
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/surveys/:id
    docs: Retrieve a survey by id.
  - info:
      name: Update a survey
      type: http
    http:
      method: PUT
      url: https://app.formbricks.com/api/v2/management/surveys/:id
      body:
        type: json
        data: '{"name":"My Survey (updated)"}'
    docs: Update a survey by id.
  - info:
      name: Delete a survey
      type: http
    http:
      method: DELETE
      url: https://app.formbricks.com/api/v2/management/surveys/:id
    docs: Delete a survey by id.
- info:
    name: Responses
    type: folder
  items:
  - info:
      name: List responses
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/responses?surveyId=
    docs: List responses, optionally filtered by surveyId.
  - info:
      name: Create a response
      type: http
    http:
      method: POST
      url: https://app.formbricks.com/api/v2/management/responses
      body:
        type: json
        data: '{"surveyId":"","finished":true,"data":{"question1":"answer"},"ttc":{"question1":1200}}'
    docs: Create a response with per-question data and ttc.
  - info:
      name: Get a response
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/responses/:id
    docs: Retrieve a response by id.
  - info:
      name: Update a response
      type: http
    http:
      method: PUT
      url: https://app.formbricks.com/api/v2/management/responses/:id
      body:
        type: json
        data: '{"finished":true}'
    docs: Update a response by id.
  - info:
      name: Delete a response
      type: http
    http:
      method: DELETE
      url: https://app.formbricks.com/api/v2/management/responses/:id
    docs: Delete a response by id.
- info:
    name: Contacts
    type: folder
  items:
  - info:
      name: List contacts
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/contacts
    docs: List contacts in the environment.
  - info:
      name: Get a contact
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/contacts/:id
    docs: Retrieve a contact by id.
  - info:
      name: Bulk upsert contacts
      type: http
    http:
      method: PUT
      url: https://app.formbricks.com/api/v2/management/contacts/bulk
      body:
        type: json
        data: '{"contacts":[{"attributes":{"email":"user@example.com","plan":"pro"}}]}'
    docs: Bulk create or update contacts with attributes.
  - info:
      name: List contact attribute keys
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v2/management/contact-attribute-keys
    docs: List the contact attribute keys defining the segmentation schema.
- info:
    name: Action Classes
    type: folder
  items:
  - info:
      name: List action classes
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v1/management/action-classes
    docs: List action classes.
  - info:
      name: Create an action class
      type: http
    http:
      method: POST
      url: https://app.formbricks.com/api/v1/management/action-classes
      body:
        type: json
        data: '{"name":"Button Clicked","type":"noCode","environmentId":""}'
    docs: Create a code or no-code action class.
  - info:
      name: Delete an action class
      type: http
    http:
      method: DELETE
      url: https://app.formbricks.com/api/v1/management/action-classes/:id
    docs: Delete an action class by id.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List webhooks
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v1/webhooks
    docs: List webhooks in the environment.
  - info:
      name: Create a webhook
      type: http
    http:
      method: POST
      url: https://app.formbricks.com/api/v1/webhooks
      body:
        type: json
        data: '{"url":"https://example.com/webhook","triggers":["responseFinished"],"surveyIds":[]}'
    docs: Create a webhook for responseCreated/responseUpdated/responseFinished.
  - info:
      name: Get a webhook
      type: http
    http:
      method: GET
      url: https://app.formbricks.com/api/v1/webhooks/:id
    docs: Retrieve a webhook by id.
  - info:
      name: Delete a webhook
      type: http
    http:
      method: DELETE
      url: https://app.formbricks.com/api/v1/webhooks/:id
    docs: Delete a webhook by id.
- info:
    name: Client (Public)
    type: folder
  items:
  - info:
      name: Create a display
      type: http
    http:
      method: POST
      url: https://app.formbricks.com/api/v1/client/:environmentId/displays
      body:
        type: json
        data: '{"surveyId":"","userId":""}'
    docs: 'Public Client API: mark a survey as displayed. No API key required.'
  - info:
      name: Create a response (Client API)
      type: http
    http:
      method: POST
      url: https://app.formbricks.com/api/v1/client/:environmentId/responses
      body:
        type: json
        data: '{"surveyId":"","finished":false,"data":{"question1":"answer"}}'
    docs: 'Public Client API: submit a survey response. No API key required.'