### Install project dependencies Source: https://docs.typebot.com/contribute/guides/local-installation Navigate to the project directory and install required packages using Bun. ```sh cd typebot.io bun install ``` -------------------------------- ### Start builder and viewer Source: https://docs.typebot.com/contribute/guides/local-installation Run the main application services for the builder and viewer. ```sh bun dev ``` -------------------------------- ### Start the Typebot server Source: https://docs.typebot.com/self-hosting/deploy/docker Start the Typebot services in detached mode using Docker Compose. ```sh docker-compose up -d ``` -------------------------------- ### Start development database Source: https://docs.typebot.com/contribute/guides/local-installation Launch the database and MinIO instance using Docker Compose. ```sh docker compose -f docker-compose.dev.yml up -d ``` -------------------------------- ### Configure environment variables Source: https://docs.typebot.com/self-hosting/deploy/manual Creates the .env file from the provided example template. ```sh cp .env.example .env ``` -------------------------------- ### Install Typebot React package Source: https://docs.typebot.com/deploy/web/next-js Install the required dependency via npm. ```bash npm install @typebot.io/react ``` -------------------------------- ### Run additional applications Source: https://docs.typebot.com/contribute/guides/local-installation Commands to start the landing page or documentation site locally. ```sh bunx nx dev landing-page ``` ```sh bunx nx dev docs ``` -------------------------------- ### Deploy the builder Source: https://docs.typebot.com/self-hosting/deploy/manual Starts the builder application process using PM2 on port 3000. ```sh pm2 start bunx --name=typebot-builder -- nx start builder -- -p 3000 ``` -------------------------------- ### Deploy the viewer Source: https://docs.typebot.com/self-hosting/deploy/manual Starts the viewer application process using PM2 on port 3001. ```sh pm2 start bunx --name=typebot-viewer -- nx start viewer -- -p 3001 ``` -------------------------------- ### Run documentation in development mode Source: https://docs.typebot.com/contribute/guides/documentation Navigate to the documentation directory and start the development server to preview changes in real time. ```sh cd apps/docs bun dev ``` -------------------------------- ### GET /v1/billing/usage Source: https://docs.typebot.com/api-reference/billing/get-usage Retrieves the current plan usage statistics for a given workspace. ```APIDOC ## GET /v1/billing/usage ### Description Get current plan usage for a specific workspace. ### Method GET ### Endpoint /v1/billing/usage ### Parameters #### Query Parameters - **workspaceId** (string) - Required - The ID of the workspace to retrieve usage for. ### Response #### Success Response (200) - **totalChatsUsed** (number) - The total number of chats used. - **resetsAt** (string) - The date and time when the usage resets. #### Response Example { "totalChatsUsed": 150, "resetsAt": "2023-11-01T00:00:00Z" } ``` -------------------------------- ### Initialize Typebot with multiple button triggers Source: https://docs.typebot.com/deploy/web/webflow Full script example showing Typebot initialization and multiple event listeners for different button IDs. ```html ``` -------------------------------- ### POST /api/v1/typebots//preview/startChat Source: https://docs.typebot.com/deploy/api/overview Starts a preview chat session for a specific typebot. Returns a sessionId required for subsequent interactions. ```APIDOC ## POST /api/v1/typebots//preview/startChat ### Description Starts a preview chat session for a specific typebot. The response includes a sessionId used for continuing the chat. ### Method POST ### Endpoint https://typebot.io/api/v1/typebots//preview/startChat ### Parameters #### Path Parameters - **typebot ID** (string) - Required - The unique identifier of the typebot. ``` -------------------------------- ### Redirect URL with UTM parameters Source: https://docs.typebot.com/guides/utm-in-results Example of a redirect URL structure using captured UTM variables. ```text https://redirect-site.com?utm_source={{utm_source}}&utm_value={{utm_value}} ``` -------------------------------- ### POST /api/v1/typebots//startChat Source: https://docs.typebot.com/deploy/api/overview Starts a live chat session for a specific typebot. Returns a sessionId required for subsequent interactions. ```APIDOC ## POST /api/v1/typebots//startChat ### Description Starts a live chat session for a specific typebot. The response includes a sessionId used for continuing the chat. ### Method POST ### Endpoint https://typebot.io/api/v1/typebots//startChat ### Parameters #### Path Parameters - **public ID** (string) - Required - The public identifier of the typebot. ``` -------------------------------- ### Start a chat session via HTTP API Source: https://docs.typebot.com/guides/external-messaging-apps Use this request to initialize a new conversation when no session ID exists for a user. ```sh curl -X POST https://typebot.co/api/v1/typebots//startChat \ -H "Content-Type: application/json" \ -d '{}' ``` -------------------------------- ### GET /v1/typebots/{typebotId}/analytics/stats Source: https://docs.typebot.com/api-reference/analytics/get-stats Retrieves the analytics statistics for a specific typebot, including total views, starts, and completions. ```APIDOC ## GET /v1/typebots/{typebotId}/analytics/stats ### Description Retrieves the analytics statistics for a specific typebot, including total views, starts, and completions. ### Method GET ### Endpoint /v1/typebots/{typebotId}/analytics/stats ### Parameters #### Path Parameters - **typebotId** (string) - Required - The unique identifier of the typebot. #### Query Parameters - **timeFilter** (string) - Optional - Filter stats by time range (today, last7Days, last30Days, monthToDate, lastMonth, yearToDate, allTime). Default: last7Days. - **timeZone** (string) - Optional - The timezone to use for the statistics. ### Response #### Success Response (200) - **stats** (object) - The analytics statistics object. - **totalViews** (number) - Total number of views. - **totalStarts** (number) - Total number of starts. - **totalCompleted** (number) - Total number of completions. ``` -------------------------------- ### OpenAPI definition for Get workspace Source: https://docs.typebot.com/api-reference/workspace/get Defines the GET endpoint for retrieving a workspace by its ID, including the full response object structure. ```yaml openapi: 3.1.1 info: title: Builder API version: 1.0.0 servers: - url: https://app.typebot.com/api security: [] externalDocs: url: https://docs.typebot.com/api-reference paths: /v1/workspaces/{workspaceId}: get: tags: - Workspace summary: Get workspace operationId: workspace-getWorkspace parameters: - name: workspaceId in: path required: true schema: type: string description: >- [Where to find my workspace ID?](../how-to#how-to-find-my-workspaceid) responses: '200': description: OK content: application/json: schema: type: object properties: workspace: type: object properties: id: type: string createdAt: type: string format: date-time x-native-type: date updatedAt: type: string format: date-time x-native-type: date name: type: string icon: anyOf: - type: string - type: 'null' plan: enum: - FREE - STARTER - PRO - LIFETIME - OFFERED - CUSTOM - UNLIMITED - ENTERPRISE type: string stripeId: anyOf: - type: string - type: 'null' settings: anyOf: - type: object - type: 'null' customChatsLimit: anyOf: - type: number - type: 'null' customSeatsLimit: anyOf: - type: number - type: 'null' isSuspended: type: boolean isPastDue: type: boolean isVerified: anyOf: - type: boolean - type: 'null' chatsHardLimit: anyOf: - type: number - type: 'null' lastActivityAt: anyOf: - type: string format: date-time x-native-type: date - type: 'null' inactiveFirstEmailSentAt: anyOf: - type: string format: date-time x-native-type: date - type: 'null' inactiveSecondEmailSentAt: anyOf: - type: string format: date-time x-native-type: date - type: 'null' required: - id - createdAt - updatedAt - name - icon - plan - stripeId - settings - customChatsLimit - customSeatsLimit - isSuspended - isPastDue - isVerified - chatsHardLimit - lastActivityAt - inactiveFirstEmailSentAt - inactiveSecondEmailSentAt currentUserMode: enum: - read - write - guest type: string required: - workspace - currentUserMode '400': description: '400' content: application/json: schema: oneOf: - type: object properties: ``` -------------------------------- ### OpenAPI Specification for Get Current Usage Source: https://docs.typebot.com/api-reference/billing/get-usage Defines the GET /v1/billing/usage endpoint, including required parameters and potential response schemas. ```yaml openapi: 3.1.1 info: title: Builder API version: 1.0.0 servers: - url: https://app.typebot.com/api security: [] externalDocs: url: https://docs.typebot.com/api-reference paths: /v1/billing/usage: get: tags: - Billing summary: Get current plan usage operationId: billing-getUsage parameters: - name: workspaceId in: query required: true schema: type: string description: >- [Where to find my workspace ID?](../how-to#how-to-find-my-workspaceid) allowEmptyValue: true allowReserved: true responses: '200': description: OK content: application/json: schema: type: object properties: totalChatsUsed: type: number resetsAt: type: string format: date-time x-native-type: date required: - totalChatsUsed - resetsAt '400': description: '400' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: BAD_REQUEST status: const: 400 message: type: string default: Bad Request data: {} required: - defined - code - status - message - type: object properties: defined: const: false code: type: string status: type: number message: type: string data: {} required: - defined - code - status - message '401': description: '401' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: UNAUTHORIZED status: const: 401 message: type: string default: Unauthorized data: {} required: - defined - code - status - message - type: object properties: defined: const: false code: type: string status: type: number message: type: string data: {} required: - defined - code - status - message '403': description: '403' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: FORBIDDEN status: const: 403 message: type: string default: Forbidden data: {} required: - defined - code - status - message - type: object properties: defined: const: false code: type: string status: type: number message: type: string data: {} required: - defined - code ``` -------------------------------- ### Get result by ID OpenAPI definition Source: https://docs.typebot.com/api-reference/results/get Defines the GET endpoint for retrieving a result, including path parameters and the expected JSON response schema. ```yaml openapi: 3.1.1 info: title: Builder API version: 1.0.0 servers: - url: https://app.typebot.com/api security: [] externalDocs: url: https://docs.typebot.com/api-reference paths: /v1/typebots/{typebotId}/results/{resultId}: get: tags: - Results summary: Get result by id operationId: results-getResult parameters: - name: typebotId in: path required: true schema: type: string description: '[Where to find my bot''s ID?](../how-to#how-to-find-my-typebotid)' - name: resultId in: path required: true schema: type: string description: >- The `resultId` is returned by the /startChat endpoint or you can find it by listing results with `/results` endpoint responses: '200': description: OK content: application/json: schema: type: object properties: result: type: object properties: id: type: string createdAt: type: string format: date-time x-native-type: date typebotId: type: string variables: type: array items: type: object properties: id: type: string name: type: string isSessionVariable: type: boolean value: anyOf: - type: string - type: array items: anyOf: - type: string - type: 'null' required: - id - name - value isCompleted: type: boolean hasStarted: anyOf: - type: boolean - type: 'null' isArchived: anyOf: - type: boolean - type: 'null' lastChatSessionId: anyOf: - type: string - type: 'null' answers: type: array items: type: object properties: blockId: type: string content: type: string attachedFileUrls: type: array items: type: string required: - blockId - content required: - id - createdAt - typebotId - variables - isCompleted - hasStarted - isArchived - lastChatSessionId - answers required: - result '400': description: '400' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: BAD_REQUEST status: const: 400 message: type: string default: Bad Request data: {} required: - defined - code - status - message - type: object properties: defined: const: false code: ``` -------------------------------- ### Clone the repository Source: https://docs.typebot.com/self-hosting/deploy/manual Initializes the local environment by cloning the repository and checking out the latest stable version. ```sh git clone git@github.com:/typebot.io.git cd typebot.io git checkout latest ``` -------------------------------- ### Get results stats OpenAPI definition Source: https://docs.typebot.com/api-reference/analytics/get-stats Defines the GET /v1/typebots/{typebotId}/analytics/stats endpoint, including query parameters for time filtering and timezone, and the expected JSON response structure. ```yaml openapi: 3.1.1 info: title: Builder API version: 1.0.0 servers: - url: https://app.typebot.com/api security: [] externalDocs: url: https://docs.typebot.com/api-reference paths: /v1/typebots/{typebotId}/analytics/stats: get: tags: - Analytics summary: Get results stats operationId: analytics-getStats parameters: - name: typebotId in: path required: true schema: type: string - name: timeFilter in: query required: false schema: enum: - today - last7Days - last30Days - monthToDate - lastMonth - yearToDate - allTime type: string default: last7Days allowEmptyValue: true allowReserved: true - name: timeZone in: query required: false schema: type: string allowEmptyValue: true allowReserved: true responses: '200': description: OK content: application/json: schema: type: object properties: stats: type: object properties: totalViews: type: number totalStarts: type: number totalCompleted: type: number required: - totalViews - totalStarts - totalCompleted required: - stats '400': description: '400' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: BAD_REQUEST status: const: 400 message: type: string default: Bad Request data: {} required: - defined - code - status - message - type: object properties: defined: const: false code: type: string status: type: number message: type: string data: {} required: - defined - code - status - message '401': description: '401' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: UNAUTHORIZED status: const: 401 message: type: string default: Unauthorized data: {} required: - defined - code - status - message - type: object properties: defined: const: false code: type: string status: type: number message: type: string data: {} required: - defined - code - status - message '403': description: '403' content: application/json: schema: oneOf: - type: object properties: defined: const: true code: const: FORBIDDEN status: const: 403 message: type: string default: Forbidden ``` -------------------------------- ### GET /v1/workspaces Source: https://docs.typebot.com/api-reference/workspace/list Retrieves a list of all workspaces available to the user. ```APIDOC ## GET /v1/workspaces ### Description Retrieves a list of all workspaces associated with the authenticated user. ### Method GET ### Endpoint /v1/workspaces ### Response #### Success Response (200) - **workspaces** (array) - A list of workspace objects. - **id** (string) - The unique identifier of the workspace. - **name** (string) - The name of the workspace. - **icon** (string|null) - The icon associated with the workspace. - **plan** (string) - The subscription plan of the workspace (FREE, STARTER, PRO, LIFETIME, OFFERED, CUSTOM, UNLIMITED, ENTERPRISE). ``` -------------------------------- ### Download Docker Compose files Source: https://docs.typebot.com/self-hosting/deploy/docker Download the latest docker-compose.yml and the starter .env file to your server. ```sh wget https://raw.githubusercontent.com/baptisteArno/typebot.io/latest/docker-compose.yml wget https://raw.githubusercontent.com/baptisteArno/typebot.io/latest/.env.example -O .env ``` -------------------------------- ### Build builder and viewer Source: https://docs.typebot.com/self-hosting/deploy/manual Compiles the builder and viewer applications using Nx. ```sh bunx nx run-many -t build -p builder,viewer ``` -------------------------------- ### GET /v1/workspaces/{workspaceId}/members Source: https://docs.typebot.com/api-reference/workspace/list-members Retrieves a list of members in a specified workspace. ```APIDOC ## GET /v1/workspaces/{workspaceId}/members ### Description List all members currently associated with the specified workspace. ### Method GET ### Endpoint /v1/workspaces/{workspaceId}/members ### Parameters #### Path Parameters - **workspaceId** (string) - Required - The unique identifier of the workspace. ### Response #### Success Response (200) - **members** (array) - A list of workspace members. - **workspaceId** (string) - The ID of the workspace. - **userId** (string) - The ID of the user. - **user** (object) - User details including name, email, and image. - **role** (string) - The role of the user (ADMIN, MEMBER, GUEST). ``` -------------------------------- ### Run database migrations Source: https://docs.typebot.com/self-hosting/deploy/manual Executes Prisma database migrations using the Nx CLI. ```sh bunx nx db:migrate prisma ``` -------------------------------- ### GET /v1/billing/invoices Source: https://docs.typebot.com/api-reference/billing/list-invoices Retrieves a list of invoices associated with a specific workspace ID. ```APIDOC ## GET /v1/billing/invoices ### Description Retrieves a list of invoices for the specified workspace. ### Method GET ### Endpoint /v1/billing/invoices ### Parameters #### Query Parameters - **workspaceId** (string) - Required - The ID of the workspace to fetch invoices for. ### Response #### Success Response (200) - **invoices** (array) - A list of invoice objects. - **id** (string) - The invoice ID. - **url** (string) - The URL to the invoice. - **amount** (number) - The invoice amount. - **currency** (string) - The currency code. - **date** (number|null) - The date of the invoice. ``` -------------------------------- ### Configure MinIO for S3 Storage Source: https://docs.typebot.com/self-hosting/deploy/docker Deploy a local MinIO instance and an initialization container to create the required storage bucket. Update the .env file with your specific access credentials and endpoint. ```yaml services: minio: image: minio/minio command: server /data ports: - "9000:9000" environment: MINIO_ROOT_USER: minio MINIO_ROOT_PASSWORD: minio123 volumes: - s3-data:/data # This service just makes sure a bucket with the right policies is created createbuckets: image: minio/mc depends_on: - minio entrypoint: > /bin/sh -c " sleep 10; /usr/bin/mc alias set minio http://minio:9000 minio minio123; /usr/bin/mc mb --ignore-existing minio/typebot; /usr/bin/mc anonymous set public minio/typebot/public; exit 0; " volumes: s3-data: ``` ```text S3_ACCESS_KEY=minio S3_SECRET_KEY=minio123 S3_BUCKET=typebot S3_ENDPOINT=storage.domain.com ``` ```text storage IN A ``` -------------------------------- ### LoomVideo Usage Source: https://docs.typebot.com/contribute/the-forge/cli Example of how to invoke the LoomVideo component with a specific video ID. ```jsx ``` -------------------------------- ### option.string.meta Source: https://docs.typebot.com/contribute/the-forge/options Configures metadata and layout for a string input option. ```APIDOC ## option.string.meta ### Description Configures the layout and metadata for a string input field, including labels, placeholders, and variable button visibility. ### Usage ```ts option.string.meta({ layout: { label: 'Name', placeholder: 'Type a name...', withVariableButton: false } }) ``` ``` -------------------------------- ### Typebot.initPopup Source: https://docs.typebot.com/deploy/web/html-javascript Initializes a popup chat window on the page using the provided configuration object. ```APIDOC ## Typebot.initPopup(props: PopupProps) ### Description Initializes and displays a Typebot popup window on the current page. The popup can be configured with various settings including auto-show delays, theme customization, and event callbacks. ### Parameters - **props** (PopupProps) - Required - Configuration object for the popup. ### PopupProps Configuration - **typebot** (string | any) - Required - The identifier of the typebot to load. - **autoShowDelay** (number) - Optional - Delay in milliseconds before automatically showing the popup. - **theme** (object) - Optional - Customization for the chat window, button, and placement. - **onInit** (function) - Optional - Callback triggered when the popup is initialized. - **onOpen** (function) - Optional - Callback triggered when the popup is opened. - **onClose** (function) - Optional - Callback triggered when the popup is closed. - **onAnswer** (function) - Optional - Callback triggered when a user provides an answer. ### Example ```javascript import Typebot from "https://cdn.jsdelivr.net/npm/@typebot.io/js@0/dist/web.js"; Typebot.initPopup({ typebot: "my-typebot", autoShowDelay: 3000, }); ``` ``` -------------------------------- ### Build custom Docker images Source: https://docs.typebot.com/self-hosting/deploy/docker Commands to build the builder and viewer images using specific build arguments. ```sh docker build -t typebot-builder --build-arg SCOPE=builder . ``` ```sh docker build -t typebot-viewer --build-arg SCOPE=viewer . ``` -------------------------------- ### GET /v1/workspaces/{workspaceId} Source: https://docs.typebot.com/api-reference/workspace/get Retrieves the details of a specific workspace using its unique ID. ```APIDOC ## GET /v1/workspaces/{workspaceId} ### Description Retrieves the details of a specific workspace using its unique ID. ### Method GET ### Endpoint /v1/workspaces/{workspaceId} ### Parameters #### Path Parameters - **workspaceId** (string) - Required - The unique identifier of the workspace. ### Response #### Success Response (200) - **workspace** (object) - The workspace object containing details like id, createdAt, updatedAt, name, icon, plan, stripeId, settings, customChatsLimit, customSeatsLimit, isSuspended, isPastDue, isVerified, chatsHardLimit, lastActivityAt, inactiveFirstEmailSentAt, and inactiveSecondEmailSentAt. - **currentUserMode** (string) - The access mode of the current user (read, write, or guest). ``` -------------------------------- ### Build command for Typebot viewer Source: https://docs.typebot.com/self-hosting/deploy/vercel Use this command when configuring the build settings for the viewer project on Vercel. ```sh bunx nx build viewer && bunx nx db:migrate prisma ``` -------------------------------- ### GET /v1/folders/{folderId} Source: https://docs.typebot.com/api-reference/folder/get Retrieves the details of a specific folder identified by the provided folderId. ```APIDOC ## GET /v1/folders/{folderId} ### Description Retrieves the details of a specific folder identified by the provided folderId. ### Method GET ### Endpoint /v1/folders/{folderId} ### Parameters #### Path Parameters - **folderId** (string) - Required - The unique identifier of the folder. #### Query Parameters - **workspaceId** (string) - Required - The unique identifier of the workspace. ### Response #### Success Response (200) - **folder** (object) - The folder object containing id, createdAt, updatedAt, name, parentFolderId, and workspaceId. ``` -------------------------------- ### Typebot.initStandard Source: https://docs.typebot.com/deploy/web/html-javascript Initializes the Typebot with specific configuration and event callbacks. ```APIDOC ## Typebot.initStandard ### Description Initializes the Typebot instance and registers callback functions to handle events on the parent website. ### Parameters - **typebot** (string) - Required - The identifier of the typebot. - **onNewInputBlock** (function) - Optional - Callback triggered when a new input block is displayed. - **onAnswer** (function) - Optional - Callback triggered when an answer is received. - **onInit** (function) - Optional - Callback triggered when the bot is initialized. - **onEnd** (function) - Optional - Callback triggered when the bot interaction ends. ``` -------------------------------- ### Embed Call-to-Action Components Source: https://docs.typebot.com/contribute/guides/blog Usage examples for the Cta component to redirect users to Typebot. ```tsx // Displays a CTA with default text content // Displays a minimalist CTA with just a logo and the CTA button ``` -------------------------------- ### Initialize Typebot with Callbacks Source: https://docs.typebot.com/deploy/web/html-javascript Configures a Typebot instance with event listeners for input blocks, answers, initialization, and completion. ```js Typebot.initStandard({ typebot: "my-typebot", onNewInputBlock: (inputBlock) => { console.log("New input block displayed", inputBlock.id); }, onAnswer: (answer) => { console.log("Answer received", answer.message, answer.blockId); }, onInit: () => { console.log("Bot initialized"); }, onEnd: () => { console.log("Bot ended"); }, }); ``` -------------------------------- ### Define MDX Frontmatter Source: https://docs.typebot.com/contribute/guides/blog Required frontmatter block at the start of every blog post file. ```md --- title: 'My awesome blog post' description: 'A short summary of the blog post.' postedAt: '2023-11-19' author: '' --- ``` -------------------------------- ### GET /v1/folders Source: https://docs.typebot.com/api-reference/folder/list Retrieves a list of folders associated with a workspace. Supports filtering by parent folder. ```APIDOC ## GET /v1/folders ### Description List all folders within a specified workspace. You can optionally filter the results by providing a parent folder ID. ### Method GET ### Endpoint /v1/folders ### Parameters #### Query Parameters - **workspaceId** (string) - Required - The ID of the workspace to list folders from. - **parentFolderId** (string) - Optional - The ID of the parent folder to filter by. ### Response #### Success Response (200) - **folders** (array) - A list of folder objects. - **id** (string) - The folder ID. - **name** (string) - The folder name. - **createdAt** (string) - The timestamp when the folder was created. ``` -------------------------------- ### Initialize a new block with Forge CLI Source: https://docs.typebot.com/contribute/guides/create-block Generates the necessary file structure for a new block in the packages/forge/blocks directory. ```sh bun create-new-block ``` -------------------------------- ### GET /v1/typebots/{typebotId}/results/{resultId} Source: https://docs.typebot.com/api-reference/results/get Retrieves the details of a specific result associated with a given Typebot. ```APIDOC ## GET /v1/typebots/{typebotId}/results/{resultId} ### Description Retrieves the details of a specific result by its ID for a given Typebot. ### Method GET ### Endpoint /v1/typebots/{typebotId}/results/{resultId} ### Parameters #### Path Parameters - **typebotId** (string) - Required - The ID of the typebot. - **resultId** (string) - Required - The ID of the result to retrieve. ### Response #### Success Response (200) - **result** (object) - The result object containing details such as id, createdAt, typebotId, variables, isCompleted, hasStarted, isArchived, lastChatSessionId, and answers. ``` -------------------------------- ### POST /v1/folders Source: https://docs.typebot.com/api-reference/folder/create Creates a new folder in the specified workspace. ```APIDOC ## POST /v1/folders ### Description Create a new folder within a workspace. ### Method POST ### Endpoint /v1/folders ### Parameters #### Request Body - **workspaceId** (string) - Required - The ID of the workspace where the folder will be created. - **id** (string) - Optional - The unique identifier for the folder (pattern: ^[0-9a-z]+$). - **folderName** (string) - Optional - The name of the folder. - **parentFolderId** (string) - Optional - The ID of the parent folder if nesting is required. ### Response #### Success Response (200) - **folder** (object) - The created folder object containing id, createdAt, updatedAt, name, parentFolderId, and workspaceId. ``` -------------------------------- ### GET /v1/typebots Source: https://docs.typebot.com/api-reference/typebot/list Retrieves a list of typebots associated with a specific workspace, optionally filtered by a folder ID. ```APIDOC ## GET /v1/typebots ### Description List all typebots available in a specific workspace. You can optionally filter the results by providing a folder ID. ### Method GET ### Endpoint /v1/typebots ### Parameters #### Query Parameters - **workspaceId** (string) - Required - The ID of the workspace to list typebots from. - **folderId** (string) - Optional - The ID of the folder to filter the typebots by. ### Response #### Success Response (200) - **typebots** (array) - A list of typebot objects. - **name** (string) - The name of the typebot. - **icon** (string|null) - The icon of the typebot. - **id** (string) - The unique identifier of the typebot. - **spaceId** (string|null) - The ID of the space the typebot belongs to. - **createdAt** (string) - The creation timestamp. - **publishedTypebotId** (string) - The ID of the published version. - **accessRight** (string) - The user's access level (read, write, or guest). ```