{"openapi":"3.1.0","info":{"title":"Typeform EU (BYOK) API","version":"0.1.0","description":"Typeform EU (BYOK) lets an AI assistant read your own Typeform EU data through the Typeform EU API with a key you supply (Typeform personal access token (EU data center account)). Read-only: 8 tools (list_forms, get_form, list_form_webhooks, list_workspaces, get_workspace, list_themes, get_theme, list_images). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-typeform-eu.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-typeform-eu/docs"},"termsOfService":"https://connectorbay.com/byok-typeform-eu/terms"},"servers":[{"url":"https://byok-typeform-eu.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-typeform-eu/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/list_forms":{"post":{"operationId":"list_forms","summary":"List the forms of the account (public and private) with id, title, creation and update time, public flag and display lin","description":"List the forms of the account (public and private) with id, title, creation and update time, public flag and display link. Filter by search text or workspace. Use for \"What typeforms do I have in my EU account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only forms whose title contains this text.","title":"Search"},"workspace_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only forms in this workspace id (from list_workspaces).","title":"Workspace Id"},"sort_by":{"anyOf":[{"enum":["created_at","last_updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field: created_at or last_updated_at.","title":"Sort By"},"order_by":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Direction: asc or desc.","title":"Order By"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for public forms only, false for private only; leave out for both.","title":"Is Public"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page of results to retrieve, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (1 to 200, default 10).","title":"Page Size"}},"title":"list_formsArguments","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_form":{"post":{"operationId":"get_form","summary":"Get the definition of one form: title, language, fields (questions with type, title and properties), hidden fields, welc","description":"Get the definition of one form: title, language, fields (questions with type, title and properties), hidden fields, welcome and thank-you screens and settings. Contains no answers. Use for \"Show the questions of my typeform u6nXL7\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"form_id":{"description":"Typeform form id: the part after /to/ in the form's public link, for example 'u6nXL7'.","maxLength":40,"title":"Form Id","type":"string"}},"required":["form_id"],"title":"get_formArguments","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_form_webhooks":{"post":{"operationId":"list_form_webhooks","summary":"List the webhooks configured on a form: id, tag, destination URL, enabled flag, subscribed event types and dates. The si","description":"List the webhooks configured on a form: id, tag, destination URL, enabled flag, subscribed event types and dates. The signing secret is not returned by this tool. Use for \"Which webhooks does my typeform u6nXL7 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"form_id":{"description":"Typeform form id: the part after /to/ in the form's public link, for example 'u6nXL7'.","maxLength":40,"title":"Form Id","type":"string"}},"required":["form_id"],"title":"list_form_webhooksArguments","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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the workspaces you can access with name, id, account id, shared flag and form count. Use for \"What Typeform workspa","description":"List the workspaces you can access with name, id, account id, shared flag and form count. Use for \"What Typeform workspaces do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only workspaces whose name contains this text.","title":"Search"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page of results to retrieve, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (1 to 200, default 10).","title":"Page Size"}},"title":"list_workspacesArguments","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_workspace":{"post":{"operationId":"get_workspace","summary":"Get one workspace by id: name, account id, shared flag and form count (member emails are not returned by this tool). Use","description":"Get one workspace by id: name, account id, shared flag and form count (member emails are not returned by this tool). Use for \"Show Typeform workspace a1b2c3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_id":{"description":"Workspace id (from list_workspaces).","maxLength":40,"title":"Workspace Id","type":"string"}},"required":["workspace_id"],"title":"get_workspaceArguments","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_themes":{"post":{"operationId":"list_themes","summary":"List the themes of the account with name, font, colours, corner style, origin and background settings. Use for \"What Typ","description":"List the themes of the account with name, font, colours, corner style, origin and background settings. Use for \"What Typeform themes do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page of results to retrieve, starting at 1.","title":"Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page (1 to 200, default 10).","title":"Page Size"}},"title":"list_themesArguments","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_theme":{"post":{"operationId":"get_theme","summary":"Get one theme by id: name, font, colours, corner style, origin and background settings. Use for \"Show Typeform theme th1","description":"Get one theme by id: name, font, colours, corner style, origin and background settings. Use for \"Show Typeform theme th1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"theme_id":{"description":"Theme id (from list_themes).","maxLength":40,"title":"Theme Id","type":"string"}},"required":["theme_id"],"title":"get_themeArguments","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_images":{"post":{"operationId":"list_images","summary":"List the images uploaded to the account (id, file name, source URL and upload source), newest first. Use for \"What image","description":"List the images uploaded to the account (id, file name, source URL and upload source), newest first. Use for \"What images are in my Typeform account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_imagesArguments","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}}}}