# Typeform setup for PopMCP

You end up pasting one Typeform personal access token that starts with `tfp_`, plus a region code of us, eu or eu2 if your account is on EU data residency.

- Auth: API credentials
- Setup time: 4 min
- API base URL: https://api.typeform.com
- Credentials screen: https://admin.typeform.com/user/tokens
- Provider docs: https://www.typeform.com/developers/get-started/personal-access-token/

## Before you begin

- A Typeform account you can sign in to at admin.typeform.com
- Access to the organization whose forms and responses you want PopMCP to read, because the token carries your own user's access
- If your organization is on EU data residency, knowledge of which EU data centre it uses, api.eu.typeform.com or api.typeform.eu

## Get your credentials

### 1. Open Personal tokens in your account settings

Sign in at `admin.typeform.com` and open the dropdown next to your username, then click Account. In the left menu click Personal tokens.

Screen: https://admin.typeform.com/user/tokens

### 2. Name the token and pick its scopes

Click Generate a new token and type a name such as `popmcp` in Token name. Tick every read and write scope for the full connector, or only the `:read` scopes for a read-only connection.

### 3. Copy the token into PopMCP

Copy the generated `tfp_` value and paste it into PopMCP's Personal access token field.

### 4. Set the data region if you are not on US hosting

Leave PopMCP's Data region field as `us` unless your organization uses EU data residency. Enter `eu` for accounts served by `api.eu.typeform.com` and `eu2` for accounts on the newer `api.typeform.eu`.

## Fields PopMCP asks for

- Personal access token (apiKey) [required]: Create one at admin.typeform.com → Settings → Personal tokens → Generate a new token (https://admin.typeform.com/user/tokens). Tick all read + write scopes for full access, or only the :read scopes to restrict to reads. Stored encrypted.
- Data region (us, eu, or eu2) (region): Where your Typeform account's data is hosted: us (default, api.typeform.com), eu (api.eu.typeform.com), or eu2 (api.typeform.eu, the newer EU data center). A token only works against its own region's host. Leave as us unless your account uses EU data residency; if the connection is rejected, try eu, then eu2.

## Verify

PopMCP marks the connector Connected and shows your Typeform account email. Listing forms returns your workspaces' typeforms rather than an empty array.

## Troubleshooting

### 401 Unauthorized

Cause: The token was truncated on paste, or it was regenerated in Typeform after you saved it.

Fix: Generate a fresh token at admin.typeform.com/user/tokens and paste the entire tfp_ string.

### 403 Forbidden on one tool only

Cause: The token was created without the scope that tool needs, for example a missing responses:read.

Fix: Scopes are fixed at creation. Delete the token, generate a new one with the missing scope ticked, then update PopMCP.

### The connection succeeds but no forms are returned

Cause: The account is on EU data residency and the request went to the US host, which sees an empty account.

Fix: Set the Data region field to eu. If that still returns nothing, try eu2.

### The token stopped working right after you pushed code

Cause: Typeform's GitHub secret-scanning partnership auto-revokes tokens that appear in public repositories.

Fix: Remove the token from the repository history, generate a new one, and store it only in PopMCP.

---

Source: https://www.docs.popmcp.com/docs/integrations/typeform/