# Fillout Forms — how to use (mcp.ai)

Connect your Fillout Forms account and use 22 tools for forms and surveys straight from your AI agent. Connect with your own API key. Fillout is a platform that allows users to create and manage forms, offering a REST API for programmatic access to form data.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_fillout_forms?ms=1787291220000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `fillout_forms_authorize_o_auth`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/fillout_forms`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/fillout_forms/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/fillout_forms/authorize/o/auth` — Tool to initiate the OAuth authorization process for third-party applications. Use when you need to generate the URL to redirect your users to the Fillout consent page.
  - body: { state?: string, client_id: string, redirect_uri: string }
- `POST https://api.mcp.ai/api/fillout_forms/create/database` — Tool to create a new Zite database instance with tables and fields. Use when you need to create a structured database in Fillout with custom tables and field definitions. Each database must have at le
  - body: { name: string, tables: object[] }
- `POST https://api.mcp.ai/api/fillout_forms/create/database/webhook` — Tool to create a webhook subscription for a Fillout database. The webhook will receive HTTP POST notifications when subscribed events occur (e.g., record.created, record.updated, record.deleted). Use 
  - body: { url: string, events: string[], table_id?: string, database_id: string }
- `POST https://api.mcp.ai/api/fillout_forms/create/field` — Tool to add a new field to an existing table with specified type, name, and configuration. Use when you need to extend a database table with additional columns.
  - body: { name: string, type: string, tableId: string, template?: object, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/create/record` — Tool to create a new record in a Fillout table with the provided field data. Use when you need to add a new entry to a specific table in your Fillout database. The record parameter should be a diction
  - body: { record: object, tableId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/create/table` — Tool to add a new table with custom schema to an existing database. Use when you need to create a structured table in a Fillout database with specific field definitions. Each table must have at least 
  - body: { name: string, fields: object[], databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/delete/database` — Tool to permanently delete a database and all its data including tables, fields, views, and records. Use when you need to completely remove a database. Warning: This action cannot be undone.
  - body: { databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/delete/database/webhook` — Tool to remove a webhook subscription from a Fillout database. Use when you need to delete an existing webhook from a specific database.
  - body: { webhookId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/delete/field` — Tool to permanently delete a field from a table. Use when you need to remove a field from a Fillout database table. Note: Cannot delete the primary field.
  - body: { fieldId: string, tableId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/delete/record` — Tool to permanently delete a record from a table in Fillout Database. Use when you need to remove a specific record. This action cannot be undone.
  - body: { tableId: string, recordId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/delete/table` — Tool to permanently delete a table and all its data including fields, views, and records from a Fillout database. Use when you need to remove a table. This action cannot be undone.
  - body: { tableId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/get/database/by/id` — Tool to retrieve detailed information about a specific database including all tables, fields, and views. Use when you need to get comprehensive database structure and metadata by database ID.
  - body: { databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/get/databases` — Tool to retrieve a list of all databases for your organization. Use when you need to list available databases after authenticating with Fillout.
- `POST https://api.mcp.ai/api/fillout_forms/get/forms` — Tool to retrieve a list of all forms in your account. Use when you need to list your forms after authenticating with Fillout.
- `POST https://api.mcp.ai/api/fillout_forms/get/record/by/id` — Tool to retrieve a single record by its UUID with all field data. Use when you need to fetch detailed information for a specific record from a Fillout table.
  - body: { tableId: string, recordId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/invalidate/access/token` — Revokes an OAuth access token obtained from Fillout's OAuth authorization flow. Use this action when a user logs out, disconnects their account, or when you need to programmatically revoke a third-par
  - body: { token: string }
- `POST https://api.mcp.ai/api/fillout_forms/list/database/webhooks` — Tool to retrieve all webhook subscriptions configured for a specific database. Use when you need to list, audit, or manage existing webhooks for a database.
  - body: { databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/list/records` — Tool to retrieve records from a Fillout table with filtering, sorting, and pagination. Supports complex filter conditions using AND/OR logic and 14 operators (equals, contains, greater_than, in, is_em
  - body: { sort?: object[], limit?: integer, filter?: object, offset?: integer, tableId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/remove/form/webhook` — Tool to remove a webhook by its ID. Use when you need to delete an existing webhook from your Fillout account.
  - body: { webhookId: string }
- `POST https://api.mcp.ai/api/fillout_forms/update/field` — Tool to modify field properties and configuration for an existing field in a Fillout database table. Use when you need to update field names or change field configuration settings.
  - body: { name?: string, field_id: string, table_id: string, template?: object, database_id: string }
- `POST https://api.mcp.ai/api/fillout_forms/update/record` — Tool to update specific fields of an existing record in a Fillout table. Use when you need to modify particular fields without affecting other fields in the record. Only the fields specified in the re
  - body: { record: object, tableId: string, recordId: string, databaseId: string }
- `POST https://api.mcp.ai/api/fillout_forms/update/table` — Tool to update table properties like name. Use when you need to modify table metadata such as renaming a table in a Fillout database.
  - body: { name?: string, tableId: string, databaseId: string }

## Example prompts
- "What can I do in Fillout Forms?"
- "Show me a summary of my Fillout Forms account"

## More
- Page: https://mcp.ai/fillout_forms
- Agent spec (llms.txt): https://mcp.ai/fillout_forms/llms.txt
- Postman collection: https://mcp.ai/fillout_forms/postman.json
