UNPKG

@formbricks/api

Version:

Formbricks-api is an api wrapper for the Formbricks client API

118 lines (91 loc) 3.3 kB
# @formbricks/api - API Wrapper for Formbricks This is the official API wrapper for Formbricks. It is used to interact with the Formbricks API. To know more about Formbricks, visit [Formbricks.com](https://formbricks.com). The direct API documentation can be found in our official docs [here](https://formbricks.com/docs/api/client/overview). To interact with the Formbricks API, you need to have an environment ID. You can get it from the Formbricks dashboard at [app.formbricks.com](https://app.formbricks.com). ## Installation ```bash npm install @formbricks/api ``` ## Usage ### Init ```ts import { FormbricksAPI } from "@formbricks/api"; const api = new FormbricksAPI({ apiHost: `https://app.formbricks.com`, // If you have self-hosted Formbricks, change this to your self hosted instance's URL environmentId: "<environment-id>", // Replace this with your Formbricks environment ID }); ``` The API client is now ready to be used across your project. It can be used to interact with the following models: ### Display - Create a Display ```ts await api.client.display.create({ surveyId: "<your-survey-id>", // required userId: "<your-user-id>", // optional responseId: "<your-response-id>", // optional }); ``` ### Response - Create a Response ```ts await api.client.response.create({ surveyId: "<your-survey-id>", // required finished: boolean, // required data: { questionId: "<answer-to-this-question-in-string>", anotherQuestionId: 123, // answer to this question in number yetAnotherQuestionId: ["option1", "option2"], // answer to this question in array, }, // required userId: "<your-user-id>", // optional singleUseId: "<your-single-use-id>", // optional ttc: { questionId: 123, // optional }, // optional meta: { source: "<your-source>", // optional url: "<your-url>", // optional userAgent: { browser: "<your-browser>", // optional device: "<your-device>", // optional os: "<your-os>", // optional }, country: "<your-country>", // optional }, // optional }); ``` - Update a Response ```ts await api.client.response.update({ responseId: "<your-response-id>", // required finished: boolean, // required data: { questionId: "<answer-to-this-question-in-string>", anotherQuestionId: 123, // answer to this question in number yetAnotherQuestionId: ["option1", "option2"], // answer to this question in array, }, // required ttc: { questionId: 123, // optional }, // optional }); ``` ### Contact Attributes - Update contact attributes ```ts await api.client.attribute.update({ userId: "<your-user-id>", // required attributes: { plan: "Pro", }, // required }); ``` ### Storage - Upload a file ```ts await api.client.storage.uploadFile( file: File, // required (of interface File of the browser's File API) { allowedFileTypes: ["file-type-allowed", "for-example", "image/jpeg"], // optional surveyId: "<your-survey-id>", // optional } // optional ); ``` If you have any questions or need help, feel free to reach out to us on [Github Discussions](https://github.com/formbricks/formbricks/discussions)