import { MdxImage } from "@/components/mdx-image"; import AddApiKey from "./images/add-api-key.webp"; import ApiKeySecret from "./images/api-key-secret.webp"; export const metadata = { title: "Formbricks API Overview: Public Client & Management API Breakdown", description: "Formbricks provides a powerful API to manage your surveys, responses, users, displays, attributes & webhooks programmatically. Get a detailed understanding of Formbricks' dual API offerings: the unauthenticated Public Client API optimized for client-side tasks and the secured Management API for advanced account operations. Choose the perfect fit for your integration needs and ensure robust data handling", }; #### API # API Overview 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. View our [API Documentation](/api-docs) in more than 30 frameworks and languages. ## Public Client API The [Public Client API](/api-docs#tag/Client-API) is designed for our SDKs and **does not require authentication**. This API is ideal for client-side interactions, as it doesn't expose sensitive information. We currently have the following Client API methods exposed and below is their documentation attached in Postman: - [Displays API](/api-docs#tag/Public-Client-API-greater-Displays) - Mark Survey as Displayed or Update an existing Display by linking it with a Response for a Person - [People API](/api-docs#tag/Public-Client-API-greater-People) - Create & Update a Person (e.g. attributes, email, userId, etc) - [Responses API](/api-docs#tag/Public-Client-API-greater-Responses) - Create & Update a Response for a Survey ## Management API The [Management API](/api-docs#tag/Management-API) provides access to all data and settings that your account has access to 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. Checkout the [API Key Setup](#how-to-generate-an-api-key) below to generate & manage API Keys. We currently have the following Management API methods exposed and below is their documentation attached in Postman: - [Action Class API](/api-docs#tag/Management-API-greater-Action-Class) - Create, List, and Delete Action Classes - [Attribute Class API](/api-docs#tag/Management-API-greater-Attribute-Class) - Create, List, and Delete Attribute Classes - [Me API](/api-docs#tag/Management-API-greater-Me) - Retrieve Account Information - [People API](/api-docs#tag/Management-API-greater-People) - List and Delete People - [Response API](/api-docs#tag/Management-API-greater-Response) - List, List by Survey, Update, and Delete Responses - [Survey API](/api-docs#tag/Management-API-greater-Survey) - List, Create, Update, generate multiple suId and Delete Surveys - [Webhook API](/api-docs#tag/Management-API-greater-Webhook) - List, Create, and Delete Webhooks ## How to Generate an API key The API requests are authorized with a personal API key. This API key gives you the same rights as if you were logged in at formbricks.com - **don't share it around!** 1. Go to your settings on [app.formbricks.com](https://app.formbricks.com). 2. Go to page “API keys” 3. Create a key for the development or production environment. 4. Copy the key immediately. You won’t be able to see it again. ### Store API key safely! Anyone who has your API key has full control over your account. For security reasons, you cannot view the API key again. ### Test your API Key Hit the below request to verify that you are authenticated with your API Key and the server is responding. ## Get My Profile {{ tag: 'GET', label: '/api/v1/me' }} Get the project details and environment type of your account. ### Mandatory Headers Your Formbricks API key. ### Delete a personal API key 1. Go to settings on [app.formbricks.com](https://app.formbricks.com/). 2. Go to page “API keys”. 3. Find the key you wish to revoke and select “Delete”. 4. Your API key will stop working immediately. ```bash {{ title: 'cURL' }} curl --location \ 'https://app.formbricks.com/api/v1/me' \ --header \ 'x-api-key: ' ``` ```json {{title:'200 Success'}} { "id": "cll2m30r70004mx0huqkitgqv", "createdAt": "2023-08-08T18:04:59.922Z", "updatedAt": "2023-08-08T18:04:59.922Z", "type": "production", "project": { "id": "cll2m30r60003mx0hnemjfckr", "name": "My Project" }, "appSetupCompleted": false, "websiteSetupCompleted": false, } ``` ```json {{ title: '401 Not Authenticated' }} Not authenticated ``` **Can’t figure it out?**: **[Get help in Github Discussions](https://github.com/formbricks/formbricks/discussions)** ---