---
ref: tool:typeform/create-form
name: Create a form
company: company:typeform
workflows: []
access: [mcp, api]
tags: [capability:collect-responses, category:forms, has:api, has:mcp]
docs: https://www.typeform.com/developers/create/reference/create-form/
updated: 2026-09-27
---

# Create a form

Creates a typeform in a workspace, an empty draft over MCP or a complete form with fields and logic over the API.

Over MCP the new form is empty: call `forms-public_get_capabilities`, then
`forms-public_validate_patch` and `forms-public_patch_form` to add fields,
and `forms-public_publish_form` only when the user wants it live, since
patched changes stay in the draft until then. The API takes the whole
definition (`title`, `fields`, `logic`, `hidden` fields, `workspace`) in one
request; any images in it must already be in the account.

## Set up

Use the first option your agent supports.

### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "typeform": { "url": "https://api.typeform.com/mcp" } } }
```

Call the MCP tool `forms-public_create_form`.

Server URL: https://api.typeform.com/mcp

### API (official)

- Base URL: https://api.typeform.com
- Endpoint: `POST /forms`
- Auth: send the header `Authorization: Bearer $TYPEFORM_API_KEY`
- Get a key: https://admin.typeform.com/user/tokens
- Docs: https://www.typeform.com/developers/get-started/

Before doing anything else, make one read-only call to confirm access.

## Rules

- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
