# Fillout Forms

Fillout is a platform that allows users to create and manage forms, offering a REST API for programmatic access to form data.

- **Category:** forms & surveys
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 22
- **Triggers:** 0
- **Slug:** `FILLOUT_FORMS`
- **Version:** 20260217_00

## Tools

### Authorize OAuth

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string | No | An arbitrary string to maintain state between the request and callback. It will be returned to your redirect URI. |
| `client_id` | string | Yes | The client ID of your OAuth application in Fillout, found in Developer settings. |
| `redirect_uri` | string | Yes | The URL to which users will be redirected after granting or denying authorization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Database

**Slug:** `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 least one table, and each table must have at least one field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the database to create. |
| `tables` | array | Yes | Array of table definitions to create in the database. Each table must have a name and at least one field. At least one table is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Database Webhook

**Slug:** `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 when you need to set up real-time notifications for database changes. Maximum 100 webhooks per database.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The destination URL that will receive HTTP POST requests when subscribed events occur. Must be a valid HTTPS URL. |
| `events` | array | Yes | Array of event types to subscribe to. At least one event must be specified. Common events include record.created, record.updated, and record.deleted. |
| `table_id` | string | No | Optional: Filter webhook notifications to events from a specific table only. If omitted, the webhook will receive events from all tables in the database. |
| `database_id` | string | Yes | Unique identifier of the database to create the webhook for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create field

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Field name |
| `type` | string | Yes | Field type (e.g., single_select, single_line_text, date, number, checkbox, email, url, phone, multi_select, long_text, attachment, formula, lookup, rollup, created_time, last_modified_time, created_by, last_modified_by, autonumber, barcode, button, count, currency, duration, last_modified_by, percent, rating, relation) |
| `tableId` | string | Yes | Table identifier (accepts either ID or table name) |
| `template` | object | No | Field-specific configuration options. For single_select or multi_select types, this should contain an 'options' array with objects having 'label' and 'color' properties. For other field types, this may contain type-specific configuration. |
| `databaseId` | string | Yes | The database's unique identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create record

**Slug:** `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 dictionary where keys are field names (or field IDs) from your table schema, and values are the data to store in those fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `record` | object | Yes | Record data with field names or field IDs as keys and their corresponding values. The keys should match the field names or IDs in your table schema. Values can be strings, numbers, booleans, or null. |
| `tableId` | string | Yes | Unique identifier of the table (or table name) where the record will be created. |
| `databaseId` | string | Yes | Unique database identifier. This is the ID of the database containing the table where you want to create a record. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create table

**Slug:** `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 one field.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the table to create. |
| `fields` | array | Yes | Array of field definitions for this table. Each table must have at least one field. Each field requires a type, name, and template object. |
| `databaseId` | string | Yes | The unique identifier of the database where the table will be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete database

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `databaseId` | string | Yes | The unique identifier of the database to permanently delete. Warning: This operation cannot be undone and will delete all data including tables, fields, views, and records. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete database webhook

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `webhookId` | string | Yes | Webhook identifier to delete |
| `databaseId` | string | Yes | Unique database identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete field

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fieldId` | string | Yes | Field ID or name to delete. Cannot delete the primary field. |
| `tableId` | string | Yes | Table ID or name. |
| `databaseId` | string | Yes | Unique database identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete record

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tableId` | string | Yes | Unique table identifier (or table name) |
| `recordId` | string | Yes | Record identifier (UUID) |
| `databaseId` | string | Yes | Unique database identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete table

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tableId` | string | Yes | The table identifier to delete. Accepts either the table ID or table name. |
| `databaseId` | string | Yes | The unique identifier of the database containing the table to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get database by ID

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `databaseId` | string | Yes | The unique identifier of the database |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get databases

**Slug:** `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.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get forms

**Slug:** `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.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get record by ID

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tableId` | string | Yes | Table ID or name |
| `recordId` | string | Yes | Record's unique identifier (UUID) |
| `databaseId` | string | Yes | Unique database identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invalidate Access Token

**Slug:** `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-party app's access to Fillout data. Important notes: - This action is for OAuth tokens only, NOT for API keys - OAuth tokens are obtained via the OAuth flow (authorize -> token exchange) - The operation is idempotent: invalidating an already-invalidated token succeeds - After invalidation, the token can no longer be used for API requests Example: A user disconnects your app from Fillout - call this to revoke their access token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token` | string | Yes | The OAuth access token to revoke. Must be a valid token obtained from Fillout's OAuth flow (not an API key). Do not include the 'Bearer' prefix - just the raw token value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List database webhooks

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `databaseId` | string | Yes | Unique identifier for the database. This is the database ID for which you want to retrieve all configured webhook subscriptions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Records

**Slug:** `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_empty, etc.). Use when you need to query table data with specific conditions or retrieve paginated results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | array | No | Sort criteria with field ID and direction. Records are sorted by creation time ascending if omitted. |
| `limit` | integer | No | Number of records to return per page (default: 500, max: 2000) |
| `filter` | object | No | Query conditions with AND/OR logic. Structure: {"and": [{"field": "Status", "operator": "equals", "value": "Active"}]} or {"or": [...]}. Operators: equals, does_not_equal, contains, does_not_contain, starts_with, ends_with, is_empty, is_not_empty, in, not_in, greater_than, greater_than_or_equal_to, less_than, less_than_or_equal_to. Supports nested AND/OR groups. |
| `offset` | integer | No | Number of records to skip for pagination (default: 0) |
| `tableId` | string | Yes | Unique identifier or name of the table to retrieve records from |
| `databaseId` | string | Yes | Unique identifier of the database containing the table |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove form webhook

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `webhookId` | string | Yes | The ID of the webhook you received when you created it |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update field

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New field name to update the field with. |
| `field_id` | string | Yes | Field ID or name to update. |
| `table_id` | string | Yes | Table ID or name where the field exists. |
| `template` | object | No | Updated field configuration object containing field settings and properties. The structure varies by field type. |
| `database_id` | string | Yes | Unique database identifier where the table is located. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update record

**Slug:** `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 request will be updated.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `record` | object | Yes | Field key-value pairs to update. Keys are field names, values can be strings, numbers, booleans, or null depending on the field definition in your table. |
| `tableId` | string | Yes | Table identifier (ID or name) |
| `recordId` | string | Yes | Record identifier (UUID) |
| `databaseId` | string | Yes | Database identifier |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update table

**Slug:** `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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New table name to update. Only provided fields will be updated. |
| `tableId` | string | Yes | Unique identifier of the table. You can also use the table name instead of the ID. |
| `databaseId` | string | Yes | Unique identifier of the database containing the table. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
