{"openapi":"3.1.0","info":{"title":"Formbricks (BYOK) API","version":"0.1.0","description":"Formbricks (BYOK) lets an AI assistant read your own Formbricks data through the Formbricks API with a key you supply (Formbricks API key). Read-only: 8 tools (get_api_key_context, list_surveys, get_survey, list_responses, get_response, list_contacts, list_contact_attribute_keys, list_action_classes). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-formbricks.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-formbricks/docs"},"termsOfService":"https://connectorbay.com/byok-formbricks/terms"},"servers":[{"url":"https://byok-formbricks.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-formbricks/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_api_key_context":{"post":{"operationId":"get_api_key_context","summary":"Show the environment and project the API key is attached to and its read or write permissions per environment. Use for \"","description":"Show the environment and project the API key is attached to and its read or write permissions per environment. Use for \"What can my Formbricks API key access\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_key_contextArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_surveys":{"post":{"operationId":"list_surveys","summary":"List all surveys with name, status (draft, inProgress, completed ...), type and dates. Use for \"Which Formbricks surveys","description":"List all surveys with name, status (draft, inProgress, completed ...), type and dates. Use for \"Which Formbricks surveys are currently in progress\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_surveysArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_survey":{"post":{"operationId":"get_survey","summary":"Get one survey by id with its name, status, type, endings and hidden fields settings. Use for \"Show the details of Formb","description":"Get one survey by id with its name, status, type, endings and hidden fields settings. Use for \"Show the details of Formbricks survey clzgw1k4i0001mny1unf8eggn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"survey_id":{"description":"Survey id from list_surveys.","maxLength":200,"title":"Survey Id","type":"string"}},"required":["survey_id"],"title":"get_surveyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_responses":{"post":{"operationId":"list_responses","summary":"List survey responses (answers keyed by question id, finished flag, dates). Pass a survey id to limit to one survey. Use","description":"List survey responses (answers keyed by question id, finished flag, dates). Pass a survey id to limit to one survey. Use for \"Show the latest responses to Formbricks survey clzgw1k4i0001mny1unf8eggn\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"survey_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only responses of this survey id.","title":"Survey Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many responses to return.","title":"Limit"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many responses to skip, for paging.","title":"Skip"}},"title":"list_responsesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_response":{"post":{"operationId":"get_response","summary":"Get one survey response by id with all answers and dates. Use for \"Show Formbricks response clvc3n6hy000u494jn2ypw30r\".","description":"Get one survey response by id with all answers and dates. Use for \"Show Formbricks response clvc3n6hy000u494jn2ypw30r\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"response_id":{"description":"Response id from list_responses.","maxLength":200,"title":"Response Id","type":"string"}},"required":["response_id"],"title":"get_responseArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_contacts":{"post":{"operationId":"list_contacts","summary":"List contacts known to the workspace with their id, external user id and dates. Use for \"Which contacts are stored in Fo","description":"List contacts known to the workspace with their id, external user id and dates. Use for \"Which contacts are stored in Formbricks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_contactsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_contact_attribute_keys":{"post":{"operationId":"list_contact_attribute_keys","summary":"List the contact attribute keys defined for the workspace (for example email) with type and uniqueness. Use for \"What co","description":"List the contact attribute keys defined for the workspace (for example email) with type and uniqueness. Use for \"What contact attributes does Formbricks track\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_contact_attribute_keysArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_action_classes":{"post":{"operationId":"list_action_classes","summary":"List the action classes (events that can trigger surveys) with name, type and description. Use for \"Which actions can tr","description":"List the action classes (events that can trigger surveys) with name, type and description. Use for \"Which actions can trigger Formbricks surveys\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_action_classesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}