typeform
typeform.
Typeform workspaces the token can access (read only), across
setup & usage
⚠ your typeform personal access token
in Typeform: Account → Personal tokens → Generate a new token, then paste it into oto (format tfp_…). Choose the scopes forms:read, responses:read and workspaces:read — the connector only reads.
us) unless the account stores its responses in the EU — then eu (api.eu.typeform.com) or eu2 (api.typeform.eu, the newer EU data center, whose tokens are distinct). Ask the account owner if unsureGET /forms?page_size=1): it checks the token and its forms:read scope, nothing is written▸ read forms and their responses
three tools, all read only:
typeform_forms(op="list"), or typeform_forms(op="list", search="NPS"); by workspace → typeform_workspaces() then typeform_forms(op="list", workspace_id="…")typeform_forms(op="get", form_id="…"): each question with its id, ref, type, title and choicestypeform_responses(form_id="…") — 25 newest, each as {question title: value}typeform_responses(form_id="…", since="2026-09-28T00:00:00")before=<next_before> until next_before is gone; total_items says how many there aretypeform_responses(form_id="…", response_type=["partial"])typeform_responses(form_id="…", query="Lyon")· what is misleading
typeform_responses reads the form first and refuses when the form's responses live on another host, naming the setting to change. With titles=False that check is skippedcompleted (default) filters on submission time, partial on the last save, started on landingtitle [field id], never mergedfile_url): it points to Typeform and needs the token to download — not served herefull=True returns Typeform's raw payload (metadata, tokens, field types) when the readable view is not enough· scope
read only: workspaces, forms and their questions, responses. Creating or editing forms, deleting responses, webhooks, themes, images and translations are not served.
⚙ plusieurs comptes
ce connecteur accepte plusieurs comptes : chaque credential posé devient un compte nommé (un nom par compte), à ton niveau, à celui de ton équipe ou de ton org.
_account="<nom>" sur l'outil ; les lister : oto_identity(op='list', connector='typeform') (scope='org' ou scope='group' pour ceux de l'org ou de l'équipe)oto_identity(op='set', connector='typeform', identity_id='<nom>') ; renommer : op='rename' avec new_name_account) et en additionnantoutils
chargement…
usage
claude code — install the oto plugin —
claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configured.cli —
pipx install oto-cli then oto typeform …