Files
formbricks-formbricks/apps/docs/public/openapi.yaml
2025-01-24 10:55:34 +01:00

5063 lines
179 KiB
YAML

openapi: 3.0.0
info:
title: API Documentation
description: >-
Formbricks offers two types of APIs: the **Public Client API** and the
**Management API**. Each API serves a different purpose, has different
authentication requirements, and provides access to different data and
settings.
Checkout the [API Key
Setup](https://formbricks.com/docs/api/management/api-key-setup) - to access
the Management APIs wit an API Key.
> If you have forked the collection & running it, we recommend you to
atleast update `apiKey` & `environmentId` the Collection variables as per
your values! We also have a lot of post-run scripts written to help you
navigate through auto-assigning variables when running scripts.
Need more help, visit our: [Website](https://formbricks.com) or join our
[Discord](https://formbricks.com/discord)!
version: 1.0.0
servers:
- url: http://{{baseurl}}
variables:
baseurl:
default: "localhost:3000"
tags:
- name: Client API
description: >-
The Public Client API is designed for the JavaScript SDK and does not
require authentication. It's primarily used for creating persons,
sessions, and responses within the Formbricks platform. This API is ideal
for client-side interactions, as it doesn't expose sensitive information.
- [Actions
API](https://go.postman.co/workspace/90ba379a-0de2-47d2-a94c-8eb541e47082/documentation/11026000-927c954f-85a9-4f8f-b0ec-14191b903737?entity=folder-b8f3a10e-1642-4d82-a629-fef0a8c6c86c)
- Create actions for a person
- [Displays API](https://formbricks.com/docs/api/client/displays) - Mark
Survey as Displayed or Responded for a Person
- [People API](https://formbricks.com/docs/api/client/people) - Create &
update people (e.g. attributes)
- [Responses API](https://formbricks.com/docs/api/client/responses) -
Create & update responses for a survey
- name: Client API > Display
description: >-
Displays are metrics used to measure the number of times a survey was
viewed both by unidentified or identified users.
- name: Client API > People
description: >-
Persons are the identified users on Formbricks app that get initated when
you pass a userId and have user activation enabled. This now allows you to
track & show them targeted surveys based on their actions, attributes,
etc.
- name: Client API > Response
description: >-
Responses are captured whenever a user fills in your survey either
partially or completely.
- name: Management API
description: "The Management API provides access to all data and settings that are visible in the Formbricks App. This API requires a personal API Key for authentication, which can be generated in the Settings section of the Formbricks App. With the Management API, you can manage your Formbricks account programmatically, accessing and modifying data and settings as needed.\n\n> **For Auth:**\_we use the `x-api-key` header \n \n\nAPI requests made to the Management API are authorized using a personal API key. This key grants the same rights and access as if you were logged in at formbricks.com. It's essential to keep your API key secure and not share it with others.\n\nTo generate, store, or delete an API key, follow the instructions provided on the following page\_[API Key](https://formbricks.com/docs/api/management/api-key-setup)."
- name: Management API > Action Class
description: >-
Action Classes allow you to set behaviour methods such as when a user
clicks on a buy now button, or when a user leaves the page, etc. These
allow you to trigger specific surveys to these users.
Methods: Get All, Get, Create, Update, and Delete Action Classes
- name: Management API > Attribute Class
description: >-
Attribute Classes help you categorize attributes so that you can target
users based on specific values of their attributes. They are associated
with a Person. Read more
[here](https://formbricks.com/docs/in-app-surveys/attributes)
- name: Management API > Contacts
description: >-
The Contacts API allows you to retrieve information about contacts in your environment.
Contacts represent users who have interacted with your surveys or forms.
- name: Management API > Contact Attributes
description: >-
The Contact Attributes API allows you to retrieve information about attributes
associated with contacts in your environment. These attributes can include
custom properties and values assigned to your contacts.
- name: Management API > Contact Attribute Keys
description: >-
The Contact Attribute Keys API allows you to retrieve information about the defined
attribute keys in your environment. These keys define the structure and properties
that can be assigned to contacts, such as email, name, or custom attributes.
- name: Management API > Me
description: Retrieve Account Information
- name: Management API > People
description: >-
Enable User Identification in Formbricks to granularly target users to
show surveys to without spraying across them. This API will help you
utilise Formbricks User Identification to its maximum.
Methods: Get All, Get, and Delete Persons
- name: Management API > Response
description: >-
Responses are what your users fill in as answers to a survey. Use this
cautiosly and make sure you handle this data carefully.
Methods allowed: Get All, Get by Survey, Get, Update, and Delete Responses
- name: Management API > Survey
description: >-
Surveys are the core of user data & feedback collection. We have various
types of surveys to cater to you:
- In-App Surveys
- Website Surveys
- Link Surveys
Create surveys & then trigger them as per your actions & attribute
filterings that you have set to make the most of them.
Methods allowed: Get All, Get, Create, Update, and Delete Surveys
- name: Management API > Webhook
description: >-
Formbricks' Webhook API offers a powerful interface for interacting with
webhooks. Webhooks allow you to receive real-time HTTP notifications of
changes to specific objects in the Formbricks environment.
The behavior of the webhooks is determined by their trigger settings. The
trigger determines which updates the webhook sends. Current available
triggers include:
- "responseCreated"
- "responseUpdated", and
- "responseFinished".
These APIs are designed to facilitate seamless integration of Formbricks
with third-party systems. By making use of our webhook API, you can
automate the process of sending data to these systems whenever significant
events occur within your Formbricks environment.
Methods allowed: Get All, Get ,Create, and Delete Webhooks
paths:
/api/v1/client/{environmentId}/displays:
post:
tags:
- Client API > Display
summary: Create Display
description: >-
Create a new display for a valid survey ID. If a userId is passed, the
display is linked to the user.
requestBody:
content:
application/json:
schema:
type: object
example:
surveyId: "{{surveyId}}"
userId: "{{userId}} (optional)"
parameters:
- name: environmentId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:16:55 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvc1z8200006494jgnds7ort
"500":
description: Internal Server Error
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
Access-Control-Allow-Methods:
schema:
type: string
example: GET,OPTIONS,PATCH,DELETE,POST,PUT
Access-Control-Allow-Headers:
schema:
type: string
example: >-
X-CSRF-Token, X-Requested-With, Accept, Accept-Version,
Content-Length, Content-MD5, Content-Type, Date, X-Api-Version
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:12:51 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: internal_server_error
message: >-
Invalid `prisma.display.create()` invocation:
An operation failed because it depends on one or more records
that were required but not found. No 'Survey' record(s)
(needed to inline the relation on 'Display' record(s)) was
found for a nested connect on one-to-many relation
'DisplayToSurvey'.
details: {}
/api/v1/client/{environmentId}/displays/{displayId}:
put:
tags:
- Client API > Display
summary: Update Display
description: >-
Update an Display for a user. A use case can be when a user submits a
response & you want to link it to an existing display.
requestBody:
content:
application/json:
schema:
type: object
example:
userId: "{{userId}} (optional)"
responseId: "{{responseId}} (optional)"
parameters:
- name: environmentId
in: path
schema:
type: string
required: true
- name: displayId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:26:39 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data: {}
"500":
description: Internal Server Error
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:26:06 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: internal_server_error
message: Person with ID 2 not found
details: {}
/api/v1/client/{environmentId}/people:
post:
tags:
- Client API > People
summary: Create Person
description: Creates a person in Formbricks with the given userId, it must be unique.
requestBody:
content:
application/json:
schema:
type: object
example:
userId: "{{userId}}"
parameters:
- name: environmentId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:35:47 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
userId: Shubham
"400":
description: Bad Request
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:36:43 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: userId is required
details:
environmentId: clurwouax000azffxt7n5unn3
/api/v1/client/{environmentId}/people/{userId}/attributes:
put:
tags:
- Client API > People
summary: Update Person
description: >-
Update a person's attributes in Formbricks to keep them in sync with
your app or when you want to set a custom attribute in Formbricks.
requestBody:
content:
application/json:
schema:
type: object
example:
attributes:
Created From: API
parameters:
- name: environmentId
in: path
schema:
type: string
required: true
- name: userId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:42:32 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
examples:
example-0:
summary: Success (New Attributes)
value:
data:
changed: true
message: The person was successfully updated.
example-1:
summary: Success (Same Attributes)
value:
data:
changed: false
message: >-
No updates were necessary; the person is already up to
date.
"500":
description: Internal Server Error
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:43:29 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: internal_server_error
message: >-
Unable to complete request: Expected property name or '}' in
JSON at position 29
details: {}
/api/v1/client/{environmentId}/responses:
post:
tags:
- Client API > Response
summary: Create Response
description: >-
Create a response for a survey and it's fields with the user's
responses. The userId & meta here is optional
requestBody:
content:
application/json:
schema:
type: object
example:
surveyId: "{{surveyId}}"
userId: "{{userId}} (optional)"
finished: false
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
source: Postman API
url: https://postman.com
action: test action
parameters:
- name: environmentId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:53:50 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvc3aool000p494jzjuukfzu
"400":
description: Bad Request
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:55:50 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: Fields are missing or incorrectly formatted
details:
surveyId: Invalid cuid2
"404":
description: Not Found
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:56:29 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Survey not found
details:
resource_id: hs8yd14l9h8u353tjmv6rzaw
resource_type: Survey
/api/v1/client/responses/{responseId}:
put:
tags:
- Client API > Response
summary: Update Response
description: >-
Update an existing response for example when you want to mark a response
as finished or you want to change an existing response's value.
requestBody:
content:
application/json:
schema:
type: object
example:
finished: true
data:
hs8yd14l9h8u353tjmv6rzawqqq: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
parameters:
- name: responseId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:09:19 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data: {}
"404":
description: Not Found
headers:
Access-Control-Allow-Credentials:
schema:
type: boolean
example: "true"
Access-Control-Allow-Origin:
schema:
type: string
example: "*"
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:13:50 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Response not found
details:
resource_id: nonexistentid
resource_type: Response
/api/v1/management/action-classes:
get:
tags:
- Management API > Action Class
summary: Get All Action Classes
description: Fetches all the action classes available in the environment
parameters:
- name: x-Api-Key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:47:03 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: clurwouax000bzffxv3fqy6mt
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: New Session
description: Gets fired when a new session is created
type: automatic
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
- id: clurwouax000czffx4wj0qldi
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: Exit Intent (Desktop)
description: A user on Desktop leaves the website with the cursor.
type: automatic
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
- id: clurwouax000dzffx3dfxc91d
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: 50% Scroll
description: A user scrolled 50% of the current page
type: automatic
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
- id: clvaq6nx40000mhqfuu74rv92
createdAt: "2024-04-22T08:59:01.144Z"
updatedAt: "2024-04-22T09:03:55.509Z"
name: new_action_v2
description: hhehe
type: code
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
- id: clvaqdq8z000bmhqfu0km5rv4
createdAt: "2024-04-22T09:04:30.756Z"
updatedAt: "2024-04-22T09:04:30.756Z"
name: new_action_v20
description: null
type: code
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
- id: clvc1ryuf0001494jc8oesfwl
createdAt: "2024-04-23T07:11:17.032Z"
updatedAt: "2024-04-23T07:11:17.032Z"
name: new_action_v1
description: null
type: code
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
"401":
description: Unauthorized
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:48:01 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_authenticated
message: Not authenticated
details:
x-Api-Key: Header not provided or API Key invalid
post:
tags:
- Management API > Action Class
summary: Create Action Class
description: >-
Create Action Class from the UI or from the API! You can read more about
them [here](https://formbricks.com/docs/in-app-surveys/actions).
requestBody:
content:
application/json:
schema:
type: object
example:
environmentId: "{{environmentId}}"
name: "My Action from Postman"
type: "code"
description: "From API Docs (optional)"
noCodeConfig:
type: "innerHtml"
innerHtml:
value: "sign-up"
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:58:47 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvc5m82c000z494jkvnw1gh0
createdAt: "2024-04-23T08:58:47.507Z"
updatedAt: "2024-04-23T08:58:47.507Z"
name: My Action from Postman
description: null
type: code
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
"400":
description: Bad Request
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:57:55 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: >-
Database error when creating an action for environment
clurwouax000azffxt7n5unn3
details: {}
/api/v1/management/action-classes/{actionClassId}:
get:
tags:
- Management API > Action Class
summary: Get Action Class by ID
description: Fetch an Action Class by it's ID
parameters:
- name: x-Api-Key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: actionClassId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:03:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clurwouax000bzffxv3fqy6mt
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: New Session
description: Gets fired when a new session is created
type: automatic
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:01:09 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Action Class not found
details:
resource_id: clvc5m82c000z494jkvnw1gh0
resource_type: Action Class
delete:
tags:
- Management API > Action Class
summary: Delete Action Class
description: Deletes an existing action class
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: actionClassId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:59:13 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvc5m82c000z494jkvnw1gh0
createdAt: "2024-04-23T08:58:47.507Z"
updatedAt: "2024-04-23T08:58:47.507Z"
name: My Action from Postman
description: null
type: code
noCodeConfig: null
environmentId: clurwouax000azffxt7n5unn3
"400":
description: Bad Request
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:13:05 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: Automatic action classes cannot be deleted
details: {}
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 08:59:38 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Action Class not found
details:
resource_id: clvc5m82c000z494jkvnw1gh0
resource_type: Action Class
/api/v1/management/attribute-classes:
get:
tags:
- Management API > Attribute Class
summary: Get All Attribute Classes
description: Fetches all the available attribute classes
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:14:46 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: clurwouax000ezffxs7unemg2
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: email
description: The email of the person
archived: false
type: automatic
environmentId: clurwouax000azffxt7n5unn3
- id: clurwouax000fzffxv9rycait
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: language
description: The language used by the person
archived: false
type: automatic
environmentId: clurwouax000azffxt7n5unn3
- id: clvaq78470004mhqfm0x3kasv
createdAt: "2024-04-22T08:59:27.319Z"
updatedAt: "2024-04-22T08:59:27.319Z"
name: Init Attribute 2
description: null
archived: false
type: code
environmentId: clurwouax000azffxt7n5unn3
- id: clvaq78500005mhqfd8z2dnxq
createdAt: "2024-04-22T08:59:27.348Z"
updatedAt: "2024-04-22T08:59:27.348Z"
name: Init Attribute 1
description: null
archived: false
type: code
environmentId: clurwouax000azffxt7n5unn3
- id: clvc2ub5p000l494j1xwrgvqe
createdAt: "2024-04-23T07:41:05.917Z"
updatedAt: "2024-04-23T07:41:05.917Z"
name: created_from
description: null
archived: false
type: code
environmentId: clurwouax000azffxt7n5unn3
- id: clvc2w637000n494j4z3oyye3
createdAt: "2024-04-23T07:42:32.659Z"
updatedAt: "2024-04-23T07:42:32.659Z"
name: Created From
description: null
archived: false
type: code
environmentId: clurwouax000azffxt7n5unn3
post:
tags:
- Management API > Attribute Class
summary: Create Attribute Class
description: >-
Create a new Attribute Class by passing in its type as well as the name!
Now just use them in your app and pass this value with a user & it'll be
associated with it.
requestBody:
content:
application/json:
schema:
type: object
example:
environmentId: "{{environmentId}}"
name: My new Attribute
type: code
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:21:38 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvcapx7v0000xz1zskcgf5k0
createdAt: "2024-04-23T11:21:38.155Z"
updatedAt: "2024-04-23T11:21:38.155Z"
name: My new Attribute
description: null
archived: false
type: code
environmentId: clurwouax000azffxt7n5unn3
"400":
description: Bad Request
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:22:39 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: >-
Invalid `prisma.attributeClass.create()` invocation:
Unique constraint failed on the fields:
(`name`,`environmentId`)
details: {}
/api/v1/management/attribute-classes/{attributeClassId}:
get:
tags:
- Management API > Attribute Class
summary: Get Attribute Class by ID
description: Fetches an Attribute Class by its ID
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: attributeClassId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:15:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clurwouax000ezffxs7unemg2
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T04:53:29.577Z"
name: email
description: The email of the person
archived: false
type: automatic
environmentId: clurwouax000azffxt7n5unn3
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:15:59 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Attribute Class not found
details:
resource_id: clurwouax000ezffxs7unemg2s
resource_type: Attribute Class
"500":
description: Internal Server Error
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:15:37 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: internal_server_error
message: Some error occurred
details: {}
delete:
tags:
- Management API > Attribute Class
summary: Delete Attribute Class
description: >-
Delete an attribute class by its ID. Please note that you currently
cannot delete the "automatic" type of attributes. Please ignore them if
you do not wish to utilise them.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: attributeClassId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:58:24 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvaq78470004mhqfm0x3kasv
createdAt: "2024-04-22T08:59:27.319Z"
updatedAt: "2024-04-22T08:59:27.319Z"
name: Init Attribute 2
description: null
archived: false
type: code
environmentId: clurwouax000azffxt7n5unn3
"400":
description: Bad Request
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:57:48 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: Automatic Attribute Classes cannot be deleted
details: {}
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 09:57:29 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Attribute Class not found
details:
resource_id: clurwouax000ezffxs7unemg2s
resource_type: Attribute Class
/api/v1/management/me:
get:
tags:
- Management API > Me
summary: Me
description: Fetches the product associated with the passed API key
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:31:38 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
id: clurwouax000azffxt7n5unn3
createdAt: "2024-04-09T04:53:29.577Z"
updatedAt: "2024-04-09T14:14:49.256Z"
type: production
product:
id: clurwouaj0003zffx0hu6bonm
name: My Product
widgetSetupCompleted: true
/api/v1/management/people:
get:
tags:
- Management API > People
summary: Get All Persons
description: Get all the identified people from Formbricks
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:35:32 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: clvaq77u70002mhqfih5bnk0i
userId: THIS-IS-A-VERY-LONG-USER-ID-FOR-TESTING
attributes:
language: gu
Init Attribute 1: eight
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-22T08:59:26.959Z"
updatedAt: "2024-04-22T08:59:26.959Z"
- id: clvc1tuo00003494jnz64wd0t
userId: "1"
attributes: {}
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:12:44.928Z"
updatedAt: "2024-04-23T07:12:44.928Z"
- id: clvc2gyay0009494jbanqhr79
userId: SECOND-USER-ID
attributes:
language: gu
Init Attribute 1: eight
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:30:42.730Z"
updatedAt: "2024-04-23T07:30:42.730Z"
- id: clvc2nh5g000h494jkr6qcxhz
userId: Shubham
attributes: {}
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:35:47.091Z"
updatedAt: "2024-04-23T07:35:47.091Z"
- id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
/api/v1/management/people/{personId}:
get:
tags:
- Management API > People
summary: Get Person by ID
description: >-
Get a person by their internal ID on Formbricks. This internal ID can be
found from the Get All Person endpoint.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: personId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:36:41 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvaq77u70002mhqfih5bnk0i
userId: THIS-IS-A-VERY-LONG-USER-ID-FOR-TESTING
attributes:
language: gu
Init Attribute 1: eight
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-22T08:59:26.959Z"
updatedAt: "2024-04-22T08:59:26.959Z"
delete:
tags:
- Management API > People
summary: Delete Person
description: Delete an identified person from Formbricks.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: personId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:37:27 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
success: Person deleted successfully
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:37:37 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Person not found
details:
resource_id: clvaq77u70002mhqfih5bnk0i
resource_type: Person
/api/v1/management/responses:
get:
tags:
- Management API > Response
summary: Get Survey Responses
description: >-
Pass the surveyId as a Query Parameter & only fetch responses for a
specific survey that you have access to.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: surveyId
in: query
schema:
type: string
example: "{{surveyId}}"
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:40:24 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: clvc3n6hy000u494jn2ypw30r
createdAt: "2024-04-23T08:03:32.901Z"
updatedAt: "2024-04-23T08:14:12.343Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
"1": clicked
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
hs8yd14l9h8u353tjmv6rzawqqq: clicked
tcgls012312312063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
url: https://postman.com
action: test action
source: Postman API
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
- id: clvc3in3z000t494j4wtax1oi
createdAt: "2024-04-23T08:00:01.151Z"
updatedAt: "2024-04-23T08:00:01.151Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: false
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
- id: clvc3iebk000s494j37tq10o3
createdAt: "2024-04-23T07:59:49.759Z"
updatedAt: "2024-04-23T07:59:49.759Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
- id: clvc3fcm7000r494jgvs99mqa
createdAt: "2024-04-23T07:57:27.583Z"
updatedAt: "2024-04-23T07:57:27.583Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
hs8yd14l9h8u353tjmv6rzaw: ho ho ho
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
- id: clvc3eqwj000q494jali1xhzq
createdAt: "2024-04-23T07:56:59.441Z"
updatedAt: "2024-04-23T07:56:59.441Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
hs7yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
- id: clvc3aool000p494jzjuukfzu
createdAt: "2024-04-23T07:53:49.935Z"
updatedAt: "2024-04-23T07:53:49.935Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
- id: cluwq6352000klvz6t82e1oyt
createdAt: "2024-04-12T13:49:47.746Z"
updatedAt: "2024-04-12T13:53:24.650Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
inputType: text
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: fsef
meta:
url: http://localhost:3002/app?formbricksDebug=true
action: New Session
userAgent:
os: Linux
browser: Chrome
ttc:
_total: 6908
hs8yd14l9h8u353tjmv6rzaw: 4094.60000000149
tcgls0063n8ri7dtrbnepcmz: 2813.39999999851
personAttributes: null
singleUseId: null
language: null
person: null
tags: []
notes: []
- id: cluwoqsl4000ilvz6xmbaf5fl
createdAt: "2024-04-12T13:09:54.616Z"
updatedAt: "2024-04-12T13:09:54.616Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: false
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
meta:
url: http://localhost:3002/app?formbricksDebug=true
action: New Session
userAgent:
os: Linux
browser: Chrome
ttc: {}
personAttributes: null
singleUseId: null
language: null
person: null
tags: []
notes: []
- id: cluwoq1qn000glvz6ntrzf3kc
createdAt: "2024-04-12T13:09:19.823Z"
updatedAt: "2024-04-12T13:09:23.793Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
inputType: text
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: aaa
meta:
url: http://localhost:3002/app?formbricksDebug=true
action: New Session
userAgent:
os: Linux
browser: Chrome
ttc:
_total: 4311.599999997765
hs8yd14l9h8u353tjmv6rzaw: 2231.199999999255
tcgls0063n8ri7dtrbnepcmz: 2080.39999999851
personAttributes: null
singleUseId: null
language: null
person: null
tags: []
notes: []
- id: cluwopkwr000dlvz6mxvueqm8
createdAt: "2024-04-12T13:08:58.008Z"
updatedAt: "2024-04-12T13:08:58.008Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: false
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
meta:
url: http://localhost:3002/app?formbricksDebug=true
action: New Session
userAgent:
os: Linux
browser: Chrome
ttc: {}
personAttributes: null
singleUseId: null
language: null
person: null
tags: []
notes: []
- id: cluwon2ra000clvz6pwo3b5g3
createdAt: "2024-04-12T13:07:01.174Z"
updatedAt: "2024-04-12T13:07:01.174Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
meta:
url: http://localhost:3002/app?formbricksDebug=true
action: New Session
userAgent:
os: Linux
browser: Chrome
ttc: {}
personAttributes: null
singleUseId: null
language: null
person: null
tags: []
notes: []
post:
tags:
- Management API > Response
summary: Create Response
description: Create a user response using the management API
requestBody:
content:
application/json:
schema:
type: object
example:
surveyId: clwj7hi7r0000vfhpfze6vjdg
finished: false
createdAt: "2024-09-05T08:44:16.051Z"
updatedAt: "2024-09-05T08:44:16.051Z"
data:
hg508afs7lgx8nlni5dtit5u:
- Hello World
language: default
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:16:39 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvccml2p0009xz1zrlk1wbqb
createdAt: "2024-04-23T12:15:01.680Z"
updatedAt: "2024-04-23T12:16:39.774Z"
surveyId: clus3omb00009oo10s53e2pa5
finished: true
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
hs8yd14l9h8u353tjmv6rzawqqq: clicked
meta:
url: https://postman.com
action: test action
source: Postman API
userAgent: {}
ttc:
_total: 310
tcgls0063n8ri7dtrbnepcmz: 190
hs8yd14l9h8u353tjmv6rzawqqq: 120
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: en
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
"401":
description: Unauthorized
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:10:34 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: unauthorized
message: You are not authorized to access this resource
details: {}
/api/v1/management/responses/{responseId}:
get:
tags:
- Management API > Response
summary: Get Response by ID
description: Fetch the entire response object based on its ID
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: responseId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:46:08 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvc3n6hy000u494jn2ypw30r
createdAt: "2024-04-23T08:03:32.901Z"
updatedAt: "2024-04-23T08:14:12.343Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
"1": clicked
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
hs8yd14l9h8u353tjmv6rzawqqq: clicked
tcgls012312312063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
url: https://postman.com
action: test action
source: Postman API
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
"401":
description: Unauthorized
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:45:38 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: unauthorized
message: You are not authorized to access this resource
details: {}
delete:
tags:
- Management API > Response
summary: Delete Response
description: Delete a response with its ID
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: responseId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:46:40 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvc3n6hy000u494jn2ypw30r
createdAt: "2024-04-23T08:03:32.901Z"
updatedAt: "2024-04-23T08:14:12.343Z"
surveyId: clusgqpml0000135cxet3y8vh
finished: true
data:
"1": clicked
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
hs8yd14l9h8u353tjmv6rzawqqq: clicked
tcgls012312312063n8ri7dtrbnepcmz: Who? Who? Who?
meta:
url: https://postman.com
action: test action
source: Postman API
userAgent: {}
ttc: {}
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: null
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
"401":
description: Unauthorized
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:46:49 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: unauthorized
message: You are not authorized to access this resource
details: {}
put:
tags:
- Management API > Response
summary: Update Response
description: Update an existing user response with new data
requestBody:
content:
application/json:
schema:
type: object
example:
finished: true
data:
hs8yd14l9h8u353tjmv6rzawqqq: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
ttc:
hs8yd14l9h8u353tjmv6rzawqqq: 120
tcgls0063n8ri7dtrbnepcmz: 190
language: en
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: responseId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:16:39 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvccml2p0009xz1zrlk1wbqb
createdAt: "2024-04-23T12:15:01.680Z"
updatedAt: "2024-04-23T12:16:39.774Z"
surveyId: clus3omb00009oo10s53e2pa5
finished: true
data:
hs8yd14l9h8u353tjmv6rzaw: clicked
tcgls0063n8ri7dtrbnepcmz: Who? Who? Who?
hs8yd14l9h8u353tjmv6rzawqqq: clicked
meta:
url: https://postman.com
action: test action
source: Postman API
userAgent: {}
ttc:
_total: 310
tcgls0063n8ri7dtrbnepcmz: 190
hs8yd14l9h8u353tjmv6rzawqqq: 120
personAttributes:
Created From: API
created_from: API
singleUseId: null
language: en
person:
id: clvc2s3ig000k494jltkqkm2u
userId: THIS-IS-A-VVERY-LONG-USER-ID-FOR-TESTING
attributes:
created_from: API
Created From: API
environmentId: clurwouax000azffxt7n5unn3
createdAt: "2024-04-23T07:39:22.696Z"
updatedAt: "2024-04-23T07:39:22.696Z"
tags: []
notes: []
"401":
description: Unauthorized
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:10:34 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: unauthorized
message: You are not authorized to access this resource
details: {}
/api/v1/management/surveys:
get:
tags:
- Management API > Survey
summary: Get All Surveys
description: Fetches all existing surveys
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:48:18 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: clzgw1k4i0001mny1unf8eggn
createdAt: "2024-08-05T11:08:27.042Z"
updatedAt: "2024-08-05T11:09:21.826Z"
name: Example Survey
type: link
environmentId: clygwxsbh01v5aga1sdien2th
createdBy: clfv1zvij0000ru0gunwpy43a
status: inProgress
welcomeCard:
html:
default: >-
<p class="fb-editor-paragraph" dir="ltr"><span
style="white-space: pre-wrap;">Thanks for providing
your feedback - let's go!</span></p>
enabled: true
fileUrl: ""
headline:
default: Welcome!
timeToFinish: false
showResponseCount: false
questions:
- id: ovpy6va1hab7fl12n913zua0
type: openText
headline:
default: What would you like to know?
required: true
inputType: text
subheader:
default: This is an example survey.
placeholder:
default: Type your answer here...
- id: awkn2llljy7a4oulp5t15yec
type: multipleChoiceMulti
choices:
- id: xpoxuu3sifk1ee8he67ctf5i
label:
default: Sun ☀️
- id: hnsovcdmxtcbly6tig1az3qc
label:
default: Ocean 🌊
- id: kcnelzdxknvwo8fq20d3nrr5
label:
default: Palms 🌴
headline:
default: What's important on vacay?
required: true
shuffleOption: none
endings:
- id: p73t62dgwq0cvmtt6ug0hmfc
type: endScreen
headline:
default: Thank you!
subheader:
default: We appreciate your feedback.
buttonLink: https://formbricks.com/signup
buttonLabel:
default: Create your own Survey
hiddenFields:
enabled: false
fieldIds: []
displayOption: displayOnce
recontactDays: null
displayLimit: null
autoClose: null
runOnDate: null
closeOnDate: null
delay: 0
displayPercentage: null
autoComplete: null
isVerifyEmailEnabled: false
redirectUrl: null
productOverwrites: null
styling: null
surveyClosedMessage: null
singleUse:
enabled: false
isEncrypted: true
pin: null
resultShareKey: null
showLanguageSwitch: null
languages: []
triggers: []
segment: null
post:
tags:
- Management API > Survey
summary: Create Survey
description: >-
Create a survey with granular settings, questions, their types,
welcomeCard, thankYouCard, languages, etc right from this API. We'd
however recommend you to do this via our Formbricks App with the UI for
a better visual experience.
requestBody:
content:
application/json:
schema:
type: object
example:
name: Example Survey
type: link
environmentId: "{{environmentId}}"
createdBy: null
status: inProgress
welcomeCard:
html:
default: >-
<p class="fb-editor-paragraph" dir="ltr"><span
style="white-space: pre-wrap;">Thanks for providing your
feedback - let's go!</span></p>
enabled: true
fileUrl: ""
headline:
default: Welcome!
timeToFinish: false
showResponseCount: false
questions:
- id: ovpy6va1hab7fl12n913zua0
type: openText
headline:
default: What would you like to know?
required: true
inputType: text
subheader:
default: This is an example survey.
placeholder:
default: Type your answer here...
- id: awkn2llljy7a4oulp5t15yec
type: multipleChoiceMulti
choices:
- id: xpoxuu3sifk1ee8he67ctf5i
label:
default: Sun ☀️
- id: hnsovcdmxtcbly6tig1az3qc
label:
default: Ocean 🌊
- id: kcnelzdxknvwo8fq20d3nrr5
label:
default: Palms 🌴
headline:
default: What's important on vacay?
required: true
shuffleOption: none
endings:
- id: p73t62dgwq0cvmtt6ug0hmfc
type: endScreen
headline:
default: Thank you!
subheader:
default: We appreciate your feedback.
buttonLink: https://formbricks.com/signup
buttonLabel:
default: Create your own Survey
hiddenFields:
enabled: false
fieldIds: []
displayOption: displayOnce
recontactDays: null
displayLimit: null
autoClose: null
runOnDate: null
closeOnDate: null
delay: 0
displayPercentage: null
autoComplete: null
isVerifyEmailEnabled: false
redirectUrl: null
productOverwrites: null
styling: null
surveyClosedMessage: null
singleUse:
enabled: false
isEncrypted: true
pin: null
resultShareKey: null
showLanguageSwitch: null
languages: []
triggers: []
segmentId: null
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:29:29 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clzgw1k4i0001mny1unf8eggn
createdAt: "2024-08-05T11:08:27.042Z"
updatedAt: "2024-08-05T11:09:21.826Z"
name: Example Survey
type: link
environmentId: clygwxsbh01v5aga1sdien2th
createdBy: clfv1zvij0000ru0gunwpy43a
status: inProgress
welcomeCard:
html:
default: >-
<p class="fb-editor-paragraph" dir="ltr"><span
style="white-space: pre-wrap;">Thanks for providing your
feedback - let's go!</span></p>
enabled: true
fileUrl: ""
headline:
default: Welcome!
timeToFinish: false
showResponseCount: false
questions:
- id: ovpy6va1hab7fl12n913zua0
type: openText
headline:
default: What would you like to know?
required: true
inputType: text
subheader:
default: This is an example survey.
placeholder:
default: Type your answer here...
- id: awkn2llljy7a4oulp5t15yec
type: multipleChoiceMulti
choices:
- id: xpoxuu3sifk1ee8he67ctf5i
label:
default: Sun ☀️
- id: hnsovcdmxtcbly6tig1az3qc
label:
default: Ocean 🌊
- id: kcnelzdxknvwo8fq20d3nrr5
label:
default: Palms 🌴
headline:
default: What's important on vacay?
required: true
shuffleOption: none
endings:
- id: p73t62dgwq0cvmtt6ug0hmfc
type: endScreen
headline:
default: Thank you!
subheader:
default: We appreciate your feedback.
buttonLink: https://formbricks.com/signup
buttonLabel:
default: Create your own Survey
hiddenFields:
enabled: false
fieldIds: []
displayOption: displayOnce
recontactDays: null
displayLimit: null
autoClose: null
runOnDate: null
closeOnDate: null
delay: 0
displayPercentage: null
autoComplete: null
isVerifyEmailEnabled: false
redirectUrl: null
productOverwrites: null
styling: null
surveyClosedMessage: null
singleUse:
enabled: false
isEncrypted: true
pin: null
resultShareKey: null
showLanguageSwitch: null
languages: []
triggers: []
segment: null
"400":
description: Bad Request
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
access-control-allow-headers:
schema:
type: string
example: Content-Type, Authorization
access-control-allow-methods:
schema:
type: string
example: GET, POST, PUT, DELETE, OPTIONS
access-control-allow-origin:
schema:
type: string
example: "*"
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:29:50 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: Fields are missing or incorrectly formatted
details:
hiddenFields.enabled: Required
/api/v1/management/surveys/{surveyId}:
get:
tags:
- Management API > Survey
summary: Get Survey by ID
description: Fetch a survey object based on its ID
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: surveyId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:49:06 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clzgw1k4i0001mny1unf8eggn
createdAt: "2024-08-05T11:08:27.042Z"
updatedAt: "2024-08-05T11:09:21.826Z"
name: Example Survey
type: link
environmentId: clygwxsbh01v5aga1sdien2th
createdBy: clfv1zvij0000ru0gunwpy43a
status: inProgress
welcomeCard:
html:
default: >-
<p class="fb-editor-paragraph" dir="ltr"><span
style="white-space: pre-wrap;">Thanks for providing your
feedback - let's go!</span></p>
enabled: true
fileUrl: ""
headline:
default: Welcome!
timeToFinish: false
showResponseCount: false
questions:
- id: ovpy6va1hab7fl12n913zua0
type: openText
headline:
default: What would you like to know?
required: true
inputType: text
subheader:
default: This is an example survey.
placeholder:
default: Type your answer here...
- id: awkn2llljy7a4oulp5t15yec
type: multipleChoiceMulti
choices:
- id: xpoxuu3sifk1ee8he67ctf5i
label:
default: Sun ☀️
- id: hnsovcdmxtcbly6tig1az3qc
label:
default: Ocean 🌊
- id: kcnelzdxknvwo8fq20d3nrr5
label:
default: Palms 🌴
headline:
default: What's important on vacay?
required: true
shuffleOption: none
endings:
- id: p73t62dgwq0cvmtt6ug0hmfc
type: endScreen
headline:
default: Thank you!
subheader:
default: We appreciate your feedback.
buttonLink: https://formbricks.com/signup
buttonLabel:
default: Create your own Survey
hiddenFields:
enabled: false
fieldIds: []
displayOption: displayOnce
recontactDays: null
displayLimit: null
autoClose: null
runOnDate: null
closeOnDate: null
delay: 0
displayPercentage: null
autoComplete: null
isVerifyEmailEnabled: false
redirectUrl: null
productOverwrites: null
styling: null
surveyClosedMessage: null
singleUse:
enabled: false
isEncrypted: true
pin: null
resultShareKey: null
showLanguageSwitch: null
languages: []
triggers: []
segment: null
delete:
tags:
- Management API > Survey
summary: Delete Survey
description: >-
Delete a Survey by its ID. Please use this only when extrememly
necessary.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: surveyId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:49:26 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clzgw1k4i0001mny1unf8eggn
createdAt: "2024-08-05T11:08:27.042Z"
updatedAt: "2024-08-05T11:09:21.826Z"
name: Example Survey
type: link
environmentId: clygwxsbh01v5aga1sdien2th
createdBy: clfv1zvij0000ru0gunwpy43a
status: inProgress
welcomeCard:
html:
default: >-
<p class="fb-editor-paragraph" dir="ltr"><span
style="white-space: pre-wrap;">Thanks for providing your
feedback - let's go!</span></p>
enabled: true
fileUrl: ""
headline:
default: Welcome!
timeToFinish: false
showResponseCount: false
questions:
- id: ovpy6va1hab7fl12n913zua0
type: openText
headline:
default: What would you like to know?
required: true
inputType: text
subheader:
default: This is an example survey.
placeholder:
default: Type your answer here...
- id: awkn2llljy7a4oulp5t15yec
type: multipleChoiceMulti
choices:
- id: xpoxuu3sifk1ee8he67ctf5i
label:
default: Sun ☀️
- id: hnsovcdmxtcbly6tig1az3qc
label:
default: Ocean 🌊
- id: kcnelzdxknvwo8fq20d3nrr5
label:
default: Palms 🌴
headline:
default: What's important on vacay?
required: true
shuffleOption: none
endings:
- id: p73t62dgwq0cvmtt6ug0hmfc
type: endScreen
headline:
default: Thank you!
subheader:
default: We appreciate your feedback.
buttonLink: https://formbricks.com/signup
buttonLabel:
default: Create your own Survey
hiddenFields:
enabled: false
fieldIds: []
displayOption: displayOnce
recontactDays: null
displayLimit: null
autoClose: null
runOnDate: null
closeOnDate: null
delay: 0
displayPercentage: null
autoComplete: null
isVerifyEmailEnabled: false
redirectUrl: null
productOverwrites: null
styling: null
surveyClosedMessage: null
singleUse:
enabled: false
isEncrypted: true
pin: null
resultShareKey: null
showLanguageSwitch: null
languages: []
triggers: []
segment: null
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 11:49:33 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Survey not found
details:
resource_id: clusgqpml0000135cxet3y8vh
resource_type: Survey
put:
tags:
- Management API > Survey
summary: Update Survey
description: >-
Update an existing survey with new properties. This is also what we'd
recommend you to do from the UI for a better visual feedback.
requestBody:
content:
application/json:
schema:
type: object
example:
name: Example Survey
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: surveyId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:34:09 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clzgw1k4i0001mny1unf8eggn
createdAt: "2024-08-05T11:08:27.042Z"
updatedAt: "2024-08-05T11:09:21.826Z"
name: Example Survey
type: link
environmentId: clygwxsbh01v5aga1sdien2th
createdBy: clfv1zvij0000ru0gunwpy43a
status: inProgress
welcomeCard:
html:
default: >-
<p class="fb-editor-paragraph" dir="ltr"><span
style="white-space: pre-wrap;">Thanks for providing your
feedback - let's go!</span></p>
enabled: true
fileUrl: ""
headline:
default: Welcome!
timeToFinish: false
showResponseCount: false
questions:
- id: ovpy6va1hab7fl12n913zua0
type: openText
headline:
default: What would you like to know?
required: true
inputType: text
subheader:
default: This is an example survey.
placeholder:
default: Type your answer here...
- id: awkn2llljy7a4oulp5t15yec
type: multipleChoiceMulti
choices:
- id: xpoxuu3sifk1ee8he67ctf5i
label:
default: Sun ☀️
- id: hnsovcdmxtcbly6tig1az3qc
label:
default: Ocean 🌊
- id: kcnelzdxknvwo8fq20d3nrr5
label:
default: Palms 🌴
headline:
default: What's important on vacay?
required: true
shuffleOption: none
endings:
- id: p73t62dgwq0cvmtt6ug0hmfc
type: endScreen
headline:
default: Thank you!
subheader:
default: We appreciate your feedback.
buttonLink: https://formbricks.com/signup
buttonLabel:
default: Create your own Survey
hiddenFields:
enabled: false
fieldIds: []
displayOption: displayOnce
recontactDays: null
displayLimit: null
autoClose: null
runOnDate: null
closeOnDate: null
delay: 0
displayPercentage: null
autoComplete: null
isVerifyEmailEnabled: false
redirectUrl: null
productOverwrites: null
styling: null
surveyClosedMessage: null
singleUse:
enabled: false
isEncrypted: true
pin: null
resultShareKey: null
showLanguageSwitch: null
languages: []
triggers: []
segment: null
"400":
description: Bad Request
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:30:32 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: Survey with ID cls79mi7j0000hq9o4dd60xsk not found
details: {}
/api/v1/management/surveys/{surveyId}/singleUseIds:
get:
tags:
- Management API > Survey
summary: Get SingleUse Links
description: >-
Generates multiple single use survey links for a survey based on its id.
Count of links can be controlled using the limit query param(min: 1,
max: 5000, default: 10).
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: surveyId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
X-Content-Type-Options:
schema:
type: string
example: nosniff
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Mon, 19 Aug 2024 12:55:21 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=ohkj3qx6d0wdo9r3nfpm3bgj
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=ci6la2lzj63pvsp6x3eqbhff
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=ge8xc013ad5elmt144h2gpl4
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=zqh6x0judrawhasr4pmywbkb
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=mpqm14y2ub8utokxci6phr1y
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=g5ej7f8w9tc87xkvefeajoxa
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=av7swj3jlld97ejbw7lymbau
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=sub2yfok3sdsje2dddzf0l5d
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=hbiee77q8qunti3lxmtoq7w9
- >-
https://app.formbricks.com/s/clzqym2l300015ycm88weliq0?suId=eo5kb2suapyks59j84egijso
"400":
description: Bad Request
headers:
X-Content-Type-Options:
schema:
type: string
example: nosniff
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Mon, 19 Aug 2024 12:58:34 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: bad_request
message: Single use links are not enabled for this survey
details: {}
/api/v1/webhooks:
get:
tags:
- Management API > Webhook
summary: Get All Webhooks
description: Retrieve a list of all webhooks for the current environment
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:37:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: clvcdd8oe000nxz1zhz6q9z3l
name: null
createdAt: "2024-04-23T12:35:45.326Z"
updatedAt: "2024-04-23T12:35:45.326Z"
url: https://eoy8o887lmsqmhz.m.pipedream.net
source: user
environmentId: clurwouax000azffxt7n5unn3
triggers:
- responseCreated
- responseUpdated
- responseFinished
surveyIds: []
- id: clvcddph9000oxz1zsnjhvllw
name: null
createdAt: "2024-04-23T12:36:07.100Z"
updatedAt: "2024-04-23T12:36:07.100Z"
url: https://eoy8o887lmsqmhz.m.pipedream.net
source: user
environmentId: clurwouax000azffxt7n5unn3
triggers:
- responseCreated
- responseUpdated
- responseFinished
surveyIds: []
- id: clvcderln000pxz1z95jqj0qw
name: null
createdAt: "2024-04-23T12:36:56.507Z"
updatedAt: "2024-04-23T12:36:56.507Z"
url: https://eoy8o887lmsqmhz.m.pipedream.net
source: user
environmentId: clurwouax000azffxt7n5unn3
triggers:
- responseCreated
- responseUpdated
- responseFinished
surveyIds: []
post:
tags:
- Management API > Webhook
summary: Create Webhook
description: Create a new webhook right from the API and see it active right away!
requestBody:
content:
application/json:
schema:
type: object
example:
url: https://eoy8o887lmsqmhz.m.pipedream.net
triggers:
- responseCreated
- responseUpdated
- responseFinished
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:35:45 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvcdd8oe000nxz1zhz6q9z3l
name: null
createdAt: "2024-04-23T12:35:45.326Z"
updatedAt: "2024-04-23T12:35:45.326Z"
url: https://eoy8o887lmsqmhz.m.pipedream.net
source: user
environmentId: clurwouax000azffxt7n5unn3
triggers:
- responseCreated
- responseUpdated
- responseFinished
surveyIds: []
/api/v1/webhooks/{webhookId}:
get:
tags:
- Management API > Webhook
summary: Get Webhook
description: Get a specific webhook object based on its ID
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: webhookId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:38:29 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvcdd8oe000nxz1zhz6q9z3l
name: null
createdAt: "2024-04-23T12:35:45.326Z"
updatedAt: "2024-04-23T12:35:45.326Z"
url: https://eoy8o887lmsqmhz.m.pipedream.net
source: user
environmentId: clurwouax000azffxt7n5unn3
triggers:
- responseCreated
- responseUpdated
- responseFinished
surveyIds: []
delete:
tags:
- Management API > Webhook
summary: Delete Webhook
description: >-
Delete an existing webhook by provifding it's ID. It will immediately
apply and not trigger again.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: webhookId
in: path
schema:
type: string
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:38:57 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: clvcdd8oe000nxz1zhz6q9z3l
name: null
createdAt: "2024-04-23T12:35:45.326Z"
updatedAt: "2024-04-23T12:35:45.326Z"
url: https://eoy8o887lmsqmhz.m.pipedream.net
source: user
environmentId: clurwouax000azffxt7n5unn3
triggers:
- responseCreated
- responseUpdated
- responseFinished
surveyIds: []
"404":
description: Not Found
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
cache-control:
schema:
type: string
example: private, no-store
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:39:22 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
code: not_found
message: Webhook not found
details:
resource_id: clvcdd8oe000nxz1zhz6q9z3l
resource_type: Webhook
/health:
get:
tags:
- default
summary: Health Check
description: >-
Formbricks' Health Check endpoint to make sure the App & the Database
are connected with each other & up!
responses:
"200":
description: OK
headers:
Vary:
schema:
type: string
example: >-
RSC, Next-Router-State-Tree, Next-Router-Prefetch,
Accept-Encoding
Cache-Control:
schema:
type: string
example: no-store, must-revalidate
X-Powered-By:
schema:
type: string
example: Next.js
Content-Type:
schema:
type: string
example: text/html; charset=utf-8
Content-Encoding:
schema:
type: string
example: gzip
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:03:50 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
text/plain:
schema:
type: string
example: |-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charSet="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="/_next/static/css/css-app_globals_css.css?v=1713855830239" data-precedence="next_static/css/css-app_globals_css.css"/>
<link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack.js?v=1713855830239"/>
<script src="/_next/static/chunks/main-app.js?v=1713855830239" async=""></script>
<script src="/_next/static/chunks/app-pages-internals.js" async=""></script>
<script src="/_next/static/chunks/app/health/error.js" async=""></script>
<script src="/_next/static/chunks/app/error.js" async=""></script>
<script src="/_next/static/chunks/app/not-found.js" async=""></script>
<script src="/_next/static/chunks/app/global-error.js" async=""></script>
<title>Formbricks</title>
<meta name="description" content="Open-Source Survey Suite"/>
<meta name="robots" content="noindex, nofollow"/>
<meta name="googlebot" content="noindex, nofollow"/>
<link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="48x48"/>
<script src="/_next/static/chunks/polyfills.js" noModule=""></script>
</head>
<body class="flex h-screen flex-col">
<div class="mx-auto flex h-full max-w-xl flex-col items-center justify-center text-center">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="40" viewBox="0 0 24 24" fill="none" stroke="green" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-check ">
<path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path>
<path d="m9 12 2 2 4-4"></path>
</svg>
<p class="text-md mt-4 font-bold text-zinc-900">All systems are up and running</p>
</div>
<script src="/_next/static/chunks/webpack.js?v=1713855830239" async=""></script>
<script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script>
<script>self.__next_f.push([1,"1:HL[\"/_next/static/css/css-app_globals_css.css?v=1713855830239\",\"style\"]\n0:D{\"name\":\"rQ\",\"env\":\"Server\"}\n"])</script>
<script>self.__next_f.push([1,"2:I[\"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js\",[\"app-pages-internals\",\"static/chunks/app-pages-internals.js\"],\"\"]\n5:I[\"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js\",[\"app-pages-internals\",\"static/chunks/app-pages-internals.js\"],\"\"]\n6:I[\"(app-pages-browser)/./app/health/error.tsx\",[\"app/health/error\",\"static/chunks/app/health/error.js\"],\"default\"]\n7:I[\"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js\",[\"app-pages-internals\",\"static/chunks/app-pages-internals.js\"],\"\"]\n9:I[\"(app-pages-browser)/./app/error.tsx\",[\"app/error\",\"static/chunks/app/error.js\"],\"default\"]\nb:I[\"(app-pages-browser)/../../node_modules/next/dist/client/link.js\",[\"app/not-found\",\"static/chunks/app/not-found.js\"],\"\"]\ne:I[\"(app-pages-browser)/./app/global-error.tsx\",[\"app/global-error\",\"static/chunks/app/global-error.js\"],\"default\"]\n3:D{\"name\":\"\",\"env\":\"Server\"}\n4:D{\"name\":\"HealthPage\",\"env\":\"Server\"}\n8:D{\"name\":\"RootLayout\",\"env\":\"Server\"}\na:D{\"name\":\"NotFound\",\"env\":\"Server\"}\nc:D{\"name\":\"Button\",\"env\":\"Server\"}\nc:[\"$\",\"button\",null,{\"className\":\"inline-flex items-center appearance-none px-6 py-3 text-sm font-medium rounded-md relative text-white bg-brand-dark hover:bg-brand focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-slate-900 mt-8\",\"children\":[\"$undefined\",\"Back to home\",false,\"$undefined\"],\"disabled\":false,\"onClick\":\"$undefined\"}]\na:[\"$\",\"div\",null,{\"className\":\"mx-auto flex h-full max-w-xl flex-col items-center justify-center py-16 text-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm font-semibold text-zinc-900 dark:text-white\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"mt-2 text-2xl font-bold text-zinc-900 dark:text-white\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base text-zinc-600 dark:text-zinc-400\",\"children\":\"Sorry, we couldn't find the page you're looking for.\"}],[\"$\",\"$Lb\",null,{\"href\":\"/\",\"children\":\"$c\"}]]}]\n8:[\"$\",\"html\",null,{\"lang\":\"en\",\"child"])</script>
<script>self.__next_f.push([1,"ren\":[false,[\"$\",\"body\",null,{\"className\":\"flex h-screen flex-col\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$9\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$a\",\"notFoundStyles\":[],\"styles\":null}]}]]}]\nd:D{\"name\":\"\",\"env\":\"Server\"}\nf:[]\n0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/css-app_globals_css.css?v=1713855830239\",\"precedence\":\"next_static/css/css-app_globals_css.css\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"development\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/health\",\"initialTree\":[\"\",{\"children\":[\"health\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"health\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",\"$L4\"],null],null]},[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"health\",\"children\"],\"error\":\"$6\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$8\",null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]]\n"])</script>
<script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Formbricks\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Open-Source Survey Suite\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"meta\",\"5\",{\"name\":\"googlebot\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"48x48\"}]]\n3:null\n10:D{\"name\":\"BadgeCheck\",\"env\":\"Server\"}\n10:[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":40,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"green\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-badge-check \",\"children\":[[\"$\",\"path\",\"3c2336\",{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}],[\"$\",\"path\",\"dzmm74\",{\"d\":\"m9 12 2 2 4-4\"}],\"$undefined\"]}]\n4:[\"$\",\"div\",null,{\"className\":\"mx-auto flex h-full max-w-xl flex-col items-center justify-center text-center\",\"children\":[\"$10\",[\"$\",\"p\",null,{\"className\":\"text-md mt-4 font-bold text-zinc-900\",\"children\":\"All systems are up and running\"}]]}]\n"])</script>
</body>
</html>
"500":
description: Internal Server Error
headers:
Vary:
schema:
type: string
example: >-
RSC, Next-Router-State-Tree, Next-Router-Prefetch,
Accept-Encoding
Cache-Control:
schema:
type: string
example: no-store, must-revalidate
X-Powered-By:
schema:
type: string
example: Next.js
Content-Type:
schema:
type: string
example: text/html; charset=utf-8
Content-Encoding:
schema:
type: string
example: gzip
Date:
schema:
type: string
example: Tue, 23 Apr 2024 07:05:08 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
text/plain:
schema:
type: string
example: |-
<!DOCTYPE html>
<html id="__next_error__">
<head>
<meta charSet="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack.js"/>
<script src="/_next/static/chunks/main-app.js" async=""></script>
<script src="/_next/static/chunks/app-pages-internals.js" async=""></script>
<script src="/_next/static/chunks/app/global-error.js" async=""></script>
<meta name="robots" content="noindex"/>
<meta name="next-error" content="not-found"/>
<title>Formbricks</title>
<meta name="description" content="Open-Source Survey Suite"/>
<meta name="robots" content="noindex, nofollow"/>
<meta name="googlebot" content="noindex, nofollow"/>
<link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="48x48"/>
<script src="/_next/static/chunks/polyfills.js" noModule=""></script>
</head>
<body>
<script src="/_next/static/chunks/webpack.js" async=""></script>
<script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script>
<script>self.__next_f.push([1,"1:HL[\"/_next/static/css/css-app_globals_css.css?v=1713855907820\",\"style\"]\n0:D{\"name\":\"rQ\",\"env\":\"Server\"}\n"])</script>
<script>self.__next_f.push([1,"2:I[\"(app-pages-browser)/../../node_modules/next/dist/client/components/app-router.js\",[\"app-pages-internals\",\"static/chunks/app-pages-internals.js\"],\"\"]\n5:I[\"(app-pages-browser)/../../node_modules/next/dist/client/components/layout-router.js\",[\"app-pages-internals\",\"static/chunks/app-pages-internals.js\"],\"\"]\n6:I[\"(app-pages-browser)/./app/health/error.tsx\",[\"app/health/error\",\"static/chunks/app/health/error.js\"],\"default\"]\n7:I[\"(app-pages-browser)/../../node_modules/next/dist/client/components/render-from-template-context.js\",[\"app-pages-internals\",\"static/chunks/app-pages-internals.js\"],\"\"]\n9:I[\"(app-pages-browser)/./app/error.tsx\",[\"app/error\",\"static/chunks/app/error.js\"],\"default\"]\nb:I[\"(app-pages-browser)/../../node_modules/next/dist/client/link.js\",[\"app/not-found\",\"static/chunks/app/not-found.js\"],\"\"]\ne:I[\"(app-pages-browser)/./app/global-error.tsx\",[\"app/global-error\",\"static/chunks/app/global-error.js\"],\"default\"]\n3:D{\"name\":\"\",\"env\":\"Server\"}\n4:D{\"name\":\"HealthPage\",\"env\":\"Server\"}\n8:D{\"name\":\"RootLayout\",\"env\":\"Server\"}\na:D{\"name\":\"NotFound\",\"env\":\"Server\"}\nc:D{\"name\":\"Button\",\"env\":\"Server\"}\nc:[\"$\",\"button\",null,{\"className\":\"inline-flex items-center appearance-none px-6 py-3 text-sm font-medium rounded-md relative text-white bg-brand-dark hover:bg-brand focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-slate-900 mt-8\",\"children\":[\"$undefined\",\"Back to home\",false,\"$undefined\"],\"disabled\":false,\"onClick\":\"$undefined\"}]\na:[\"$\",\"div\",null,{\"className\":\"mx-auto flex h-full max-w-xl flex-col items-center justify-center py-16 text-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm font-semibold text-zinc-900 dark:text-white\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"mt-2 text-2xl font-bold text-zinc-900 dark:text-white\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-base text-zinc-600 dark:text-zinc-400\",\"children\":\"Sorry, we couldn't find the page you're looking for.\"}],[\"$\",\"$Lb\",null,{\"href\":\"/\",\"children\":\"$c\"}]]}]\n8:[\"$\",\"html\",null,{\"lang\":\"en\",\"child"])</script>
<script>self.__next_f.push([1,"ren\":[false,[\"$\",\"body\",null,{\"className\":\"flex h-screen flex-col\",\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$9\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$a\",\"notFoundStyles\":[],\"styles\":null}]}]]}]\nd:D{\"name\":\"\",\"env\":\"Server\"}\nf:[]\n0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/css-app_globals_css.css?v=1713855907820\",\"precedence\":\"next_static/css/css-app_globals_css.css\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"buildId\":\"development\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/health\",\"initialTree\":[\"\",{\"children\":[\"health\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"health\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",\"$L4\"],null],null]},[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"health\",\"children\"],\"error\":\"$6\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$8\",null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]]\n"])</script>
<script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Formbricks\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Open-Source Survey Suite\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"meta\",\"5\",{\"name\":\"googlebot\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"48x48\"}]]\n3:null\n10:D{\"name\":\"BadgeCheck\",\"env\":\"Server\"}\n10:[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":40,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"green\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-badge-check \",\"children\":[[\"$\",\"path\",\"3c2336\",{\"d\":\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"}],[\"$\",\"path\",\"dzmm74\",{\"d\":\"m9 12 2 2 4-4\"}],\"$undefined\"]}]\n4:[\"$\",\"div\",null,{\"className\":\"mx-auto flex h-full max-w-xl flex-col items-center justify-center text-center\",\"children\":[\"$10\",[\"$\",\"p\",null,{\"className\":\"text-md mt-4 font-bold text-zinc-900\",\"children\":\"All systems are up and running\"}]]}]\n"])</script>
</body>
</html>
/api/v1/management/contacts:
get:
tags:
- Management API > Contacts
summary: Get All Contacts
description: Retrieve a list of all contacts for the current environment
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:37:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: cm4jnsxcd012fh3aqz1b6zox6
userId: null
createdAt: "2024-12-11T08:59:37.550Z"
updatedAt: "2024-12-11T08:59:37.550Z"
environmentId: cm37a748d0001hbwhqvvuba23
- id: cm4la1bhn12g5cr5qh8p6v874
userId: null
createdAt: "2024-12-12T12:09:46.859Z"
updatedAt: "2024-12-12T12:09:46.859Z"
environmentId: cm37a748d0001hbwhqvvuba23
/api/v1/management/contacts/{contactId}:
get:
tags:
- Management API > Contacts
summary: Get Contact by ID
description: Retrieve a specific contact by its ID
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: contactId
in: path
schema:
type: string
required: true
description: The ID of the contact to retrieve
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:37:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
id: cm4jnsxcd00ufh3aqz1b6zox6
userId: null
createdAt: "2024-12-11T08:59:37.550Z"
updatedAt: "2024-12-11T08:59:37.550Z"
environmentId: cm37a748d0008hbwhqvvuba23
"404":
description: Not Found
content:
application/json:
schema:
type: object
example:
code: not_found
message: Contact not found
details:
resource_id: cm4jnsxcd00ufh3aqz1b6zox6
resource_type: Contact
/api/v1/management/contact-attributes:
get:
tags:
- Management API > Contact Attributes
summary: Get All Contact Attributes
description: Retrieve a list of all contact attributes in the current environment
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:37:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: cm4jnsxxh00umh3aq76q08ah1
createdAt: "2024-12-11T08:59:38.309Z"
updatedAt: "2024-12-11T08:59:38.309Z"
attributeKeyId: cm4jnsxxh00ukh3aq08gpdafw
contactId: cm4jnsxcd00ufh3aqz1b6zox6
value: "eight"
/api/v1/management/contact-attribute-keys:
get:
tags:
- Management API > Contact Attribute Keys
summary: Get All Contact Attribute Keys
description: Retrieve a list of all contact attribute keys defined in the current environment
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
Date:
schema:
type: string
example: Tue, 23 Apr 2024 12:37:25 GMT
Connection:
schema:
type: string
example: keep-alive
Keep-Alive:
schema:
type: string
example: timeout=5
Transfer-Encoding:
schema:
type: string
example: chunked
content:
application/json:
schema:
type: object
example:
data:
- id: cm37a748d000ahbwhd5bbwc09
createdAt: "2024-11-07T12:25:48.589Z"
updatedAt: "2024-12-03T13:30:28.620Z"
isUnique: true
key: email
name: email
description: The email of the person
type: default
environmentId: cm37a748d0008hbwhqvvuba23
/api/v1/management/contact-attribute-keys/{contactAttributeKeyId}:
get:
tags:
- Management API > Contact Attribute Keys
summary: Get Contact Attribute Key by ID
description: Retrieve a specific contact attribute key by its ID. This returns detailed information about how a particular attribute is defined in your environment.
parameters:
- name: x-api-key
in: header
schema:
type: string
example: "{{apiKey}}"
required: true
- name: contactAttributeKeyId
in: path
schema:
type: string
required: true
description: The ID of the contact attribute key to retrieve
responses:
"200":
description: OK
headers:
vary:
schema:
type: string
example: RSC, Next-Router-State-Tree, Next-Router-Prefetch
content-type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
description: Unique identifier for the attribute key
createdAt:
type: string
format: date-time
description: Timestamp when the attribute key was created
updatedAt:
type: string
format: date-time
description: Timestamp when the attribute key was last updated
isUnique:
type: boolean
description: Whether this attribute must have unique values across contacts
key:
type: string
description: The machine-readable identifier for the attribute
name:
type: string
description: Human-readable name for the attribute
description:
type: string
description: Detailed description of what this attribute represents
type:
type: string
description: The type of attribute (e.g., "default")
environmentId:
type: string
description: ID of the environment this attribute key belongs to
example:
data:
id: cm37a748d000ahbwhd5bbwc09
createdAt: "2024-11-07T12:25:48.589Z"
updatedAt: "2024-12-03T13:30:28.620Z"
isUnique: true
key: email
name: email
description: The email of the person
type: default
environmentId: cm37a748d0008hbwhqvvuba23
"404":
description: Not Found
content:
application/json:
schema:
type: object
properties:
code:
type: string
example: not_found
message:
type: string
example: Contact attribute key not found
details:
type: object
properties:
resource_id:
type: string
resource_type:
type: string
example: ContactAttributeKey
example:
code: not_found
message: Contact attribute key not found
details:
resource_id: cm37a748d000ahbwhd5bbwc09
resource_type: ContactAttributeKey