# Fillo documentation

Last updated: 2026-07-15

Web page: https://fillo.so/docs
Coding agent setup: https://fillo.so/agents.md
All docs in one file: https://fillo.so/llms-full.txt

Give a coding agent the Fillo skill, or install the SDK yourself, then add and verify a native form in your app.

<a id="docs-start-heading"></a>

## Start with a coding agent
- [Install the Fillo skill](https://fillo.so/agents.md): Give your agent Fillo's package, schema, security, and verification rules before it edits your app.

### Or start manually

- [Embed your first form](https://fillo.so/docs/embed.md): Install the React or DOM SDK, render a published form by id, and submit a real response.
- [Author and sync from code](https://fillo.so/docs/authoring.md): Use JSX or defineForm(), keep stable field ids, and stage changes safely in a workspace.

<a id="docs-task-heading"></a>

## Browse by task
### Build and customize

- [Schema and validation](https://fillo.so/docs/schema.md): Define fields, validation, conditions, form settings, and changes to published forms.
- [Prefill](https://fillo.so/docs/prefill.md): Start with known answers from app state, URL parameters, or hidden defaults.
- [Styling](https://fillo.so/docs/styling.md): Style the Fillo form with design tokens, component slots, or plain CSS.
- [Custom UI](https://fillo.so/docs/custom-ui.md): Replace individual fields or build the full form UI yourself.
- [Respondents](https://fillo.so/docs/respondents.md): Identify people, save progress, recover drop-off, and control repeat responses.

### Deliver and operate

- [Uploads and storage](https://fillo.so/docs/uploads.md): Send respondent files directly to Google Drive, S3-compatible storage, or Box.
- [Responses, exports, and insights](https://fillo.so/docs/responses.md): Review, filter, export, and analyze the responses to your forms.
- [Integrations](https://fillo.so/docs/integrations.md): Route each response to Sheets, Notion, Zapier, email, or your own backend.
- [Webhooks](https://fillo.so/docs/webhooks.md): Deliver signed response events to your backend and handle at-least-once retries.
- [Management API](https://fillo.so/docs/api.md): List and manage forms, responses, and respondents from your backend with scoped secret keys.

### Reference

- [SDK reference](https://fillo.so/docs/reference.md): Look up renderer props, hooks, client methods, schema settings, and exports.
- [CLI, publishing, and keys](https://fillo.so/docs/cli.md): Use the CLI to sync and publish forms, and choose the right key for each command.
- [Security and data boundaries](https://fillo.so/docs/security.md): Learn what can run in the browser, what must stay on the server, and how Fillo handles data.
- [Troubleshooting](https://fillo.so/docs/troubleshooting.md): Match common embed, sync, network, and authoring failures to concrete fixes.

### Coding agents

- [Set up a coding agent](https://fillo.so/agents.md): Install the Fillo skill in your project.
- [Docs index](https://fillo.so/llms.txt): Help a coding agent find the right Fillo guide.

## Complete docs index

- [Quickstart](https://fillo.so/docs/embed.md): Render a Fillo form natively in React, Next.js, or any browser app.
- [Build in the dashboard](https://fillo.so/docs/dashboard-quickstart.md): Create, edit, preview, publish, and share a form — no code required.
- [Core concepts](https://fillo.so/docs/concepts.md): The objects Fillo is built on — forms, fields, schemas, responses, respondents, workspaces, and versions.
- [Code-defined forms](https://fillo.so/docs/authoring.md): Author typed forms with JSX or defineForm(), then sync them into a workspace.
- [Schema & validation](https://fillo.so/docs/schema.md): Define fields, validation, conditions, form settings, and changes to published forms.
- [Fields](https://fillo.so/docs/fields.md): Pick the right Fillo field type and look up its schema options, stored value, and validation behavior.
- [Short text](https://fillo.so/docs/fields/short-text.md): Collect one line of text with an optional character limit.
- [Long text](https://fillo.so/docs/fields/long-text.md): Collect a multiline answer with an optional character limit.
- [Email](https://fillo.so/docs/fields/email.md): Collect an email address — validated for syntax, not for identity.
- [Phone](https://fillo.so/docs/fields/phone.md): Collect an international phone number with country-aware formatting and validation.
- [Number](https://fillo.so/docs/fields/number.md): Collect a finite number with optional minimum/maximum bounds and optional display formatting.
- [URL](https://fillo.so/docs/fields/url.md): Collect an HTTP or HTTPS URL and reject unsafe protocols.
- [Select](https://fillo.so/docs/fields/select.md): Let a respondent choose one visible option, with optional Other and shuffled order.
- [Multi-select](https://fillo.so/docs/fields/multi-select.md): Let a respondent choose several options and store their IDs as an array.
- [Dropdown](https://fillo.so/docs/fields/dropdown.md): Collect one choice in a compact dropdown control.
- [Checkbox](https://fillo.so/docs/fields/checkbox.md): Collect one boolean answer as a checkbox or switch.
- [Rating](https://fillo.so/docs/fields/rating.md): Collect an integer rating and optionally mark a five-step scale as CSAT.
- [Linear scale](https://fillo.so/docs/fields/linear-scale.md): Collect an integer on a labeled range, including standard NPS and CSAT scales.
- [Ranking](https://fillo.so/docs/fields/ranking.md): Ask a respondent to put every option into a complete order.
- [Matrix](https://fillo.so/docs/fields/matrix.md): Repeat several row questions across one shared set of column choices.
- [Signature](https://fillo.so/docs/fields/signature.md): Collect a drawn mark as an image data value.
- [Date](https://fillo.so/docs/fields/date.md): Collect a real calendar date in YYYY-MM-DD form.
- [File upload](https://fillo.so/docs/fields/file-upload.md): Collect files into Google Drive, Box, or S3-compatible storage connected by the workspace.
- [Hidden](https://fillo.so/docs/fields/hidden.md): Store source or account context without rendering a question.
- [Custom](https://fillo.so/docs/fields/custom.md): Store any JSON value and render the field with your own component.
- [Calculated](https://fillo.so/docs/fields/calculated.md): Show a derived number computed from other answers, recomputed server-side on submit.
- [Repeating group](https://fillo.so/docs/fields/repeating-group.md): Let a respondent add several instances of the same small set of fields, like guests or line items.
- [Pages and layout](https://fillo.so/docs/pages.md): Split a form into pages, show progress, and keep layout ownership in the right renderer.
- [Logic](https://fillo.so/docs/logic.md): Show blocks conditionally, route between pages, finish early, and pipe earlier answers into copy.
- [Prefill & hidden fields](https://fillo.so/docs/prefill.md): Start with known answers from app state, URL parameters, or hidden defaults.
- [Thank-you and redirects](https://fillo.so/docs/completion.md): Configure the built-in success screen, or send the respondent to an HTTP or HTTPS destination.
- [AI drafting in the dashboard](https://fillo.so/docs/ai.md): Turn a written outline into a schema draft in the Fillo editor, then review it before publishing.
- [Styling](https://fillo.so/docs/styling.md): Style the Fillo form with design tokens, component slots, or plain CSS.
- [Custom UI](https://fillo.so/docs/custom-ui.md): Replace individual fields or build the full form UI yourself.
- [Branding](https://fillo.so/docs/branding.md): Match a Fillo-rendered form to your product, and know where the Powered by Fillo badge stays.
- [Custom domains](https://fillo.so/docs/domains.md): Serve a Fillo form on your own domain by embedding the native renderer in a route you control.
- [Languages and localization](https://fillo.so/docs/localization.md): Translate your form's copy and override every built-in renderer string.
- [Respondents & identity](https://fillo.so/docs/respondents.md): Identify people, save progress, recover drop-off, and control repeat responses.
- [Uploads & storage](https://fillo.so/docs/uploads.md): Send respondent files directly to Google Drive, S3-compatible storage, or Box.
- [Save and resume](https://fillo.so/docs/save-and-resume.md): Autosave in-progress answers, restore them after a reload, and optionally recover abandoned drafts.
- [Limit responses](https://fillo.so/docs/response-limits.md): Keep it to one response per browser, contact answer, or signed-in person, optionally scoped by a field value.
- [Spam and bot protection](https://fillo.so/docs/spam.md): The honeypot, timing checks, rate limits, and the optional Turnstile human check Fillo applies today.
- [Submission trust](https://fillo.so/docs/trust.md): Hold unverified submissions out of responses, exports, insights, notifications, webhooks, and integrations until someone reviews them.
- [Data retention and deletion](https://fillo.so/docs/data-retention.md): How long Fillo keeps responses, drafts, files, telemetry, accounts, and workspaces — and how to delete them.
- [Responses & insights](https://fillo.so/docs/responses.md): Review, filter, export, and analyze the responses to your forms.
- [Exports](https://fillo.so/docs/exports.md): Export the filtered response view as CSV, or read response JSON through the Management API.
- [Integrations](https://fillo.so/docs/integrations.md): Route each response to Sheets, Notion, Zapier, email, or your own backend.
- [Google Sheets](https://fillo.so/docs/integrations/google-sheets.md): Append each accepted response to a new spreadsheet or a supported tab in an existing sheet.
- [Notion](https://fillo.so/docs/integrations/notion.md): Append accepted responses as pages in a Fillo-created Notion database.
- [HubSpot](https://fillo.so/docs/integrations/hubspot.md): Record native HubSpot form activity and create or update associated Contacts, Companies, and Deals.
- [Slack](https://fillo.so/docs/integrations/slack.md): Connect Slack, choose a channel, and send a response link with up to three explicitly selected answers.
- [Airtable](https://fillo.so/docs/integrations/airtable.md): Send Fillo responses to Airtable through Zapier or a signed webhook workflow.
- [Discord](https://fillo.so/docs/integrations/discord.md): Forward Fillo response signals to Discord through Zapier or a server-side translator.
- [Zapier](https://fillo.so/docs/integrations/zapier.md): Trigger a Zap from new and updated Fillo responses through the versioned Zapier app.
- [Make](https://fillo.so/docs/integrations/make.md): Start a Make scenario from Fillo through a signed webhook or the supported Zapier alternative.
- [n8n](https://fillo.so/docs/integrations/n8n.md): Start an n8n workflow from a signed Fillo webhook with durable deduplication.
- [Analytics pixels](https://fillo.so/docs/integrations/analytics.md): Track form views and accepted submissions in the host app without sending answer data to an analytics vendor.
- [Email notifications](https://fillo.so/docs/notifications.md): Alert one team address about new responses or stuck deliveries, and send respondents a simple receipt.
- [Webhooks](https://fillo.so/docs/webhooks.md): Deliver signed response events to your backend and handle at-least-once retries.
- [Delivery health and retry](https://fillo.so/docs/delivery-health.md): Spot failing webhooks and integrations, get terminal-failure alerts, and retry scheduled or failed deliveries.
- [Team and workspaces](https://fillo.so/docs/workspaces.md): Organize forms and credentials in a workspace, invite teammates, and assign owner, admin, or member roles.
- [Management API](https://fillo.so/docs/api.md): List and manage forms, responses, and respondents from your backend with scoped secret keys.
- [SDK reference](https://fillo.so/docs/reference.md): Look up renderer props, hooks, client methods, schema settings, and exports.
- [CLI & publishing](https://fillo.so/docs/cli.md): Use the CLI to sync and publish forms, and choose the right key for each command.
- [Security & boundaries](https://fillo.so/docs/security.md): Learn what can run in the browser, what must stay on the server, and how Fillo handles data.
- [Plans and limits](https://fillo.so/docs/limits.md): Current plan allowances, schema caps, file constraints, API rates, and early-access behavior.
- [Troubleshooting](https://fillo.so/docs/troubleshooting.md): Match common embed, sync, network, and authoring failures to concrete fixes.
- [Form is not submitting](https://fillo.so/docs/troubleshooting/form-not-submitting.md): What to check when submitting doesn't produce an accepted response — validation, identity, network, and server errors.
- [Blocked by CORS policy](https://fillo.so/docs/troubleshooting/cors-error.md): Work out whether the browser is refusing a public Fillo endpoint, code sync, a private API, or direct storage.
- [Invalid API key](https://fillo.so/docs/troubleshooting/invalid-api-key.md): Which Fillo credential a request needs, where each one belongs, and how to debug a 401.
- [Webhook signature verification failed](https://fillo.so/docs/troubleshooting/webhook-signature-failed.md): Check the raw request body, the signing secret, and the signature header before you process a webhook event.
- [Prefill values are not appearing](https://fillo.so/docs/troubleshooting/prefill-not-working.md): Why a URL prefill value isn't showing up — parameter names, encodings, field kinds, and initialization order.
- [File upload was rejected](https://fillo.so/docs/troubleshooting/upload-rejected.md): Work out which stage rejected the file — field validation, upload authorization, provider transfer, or final verification.
- [Response is held for verification](https://fillo.so/docs/troubleshooting/response-held-for-verification.md): Review, release, or delete responses that were quarantined because respondent identity couldn't be verified.
- [You have already responded](https://fillo.so/docs/troubleshooting/already-responded.md): What this message means, which response-limit rule matched, and what to do about it.
- [Google Sheets sync stopped](https://fillo.so/docs/troubleshooting/sheets-sync-stopped.md): Fix Google access, the target tab, or the header layout, then replay only the failed deliveries.
- [Form failed to publish](https://fillo.so/docs/troubleshooting/publish-failed.md): Fix the schema, upload-storage, response-limit, and code-sync problems that block a publish.
- [Frequently asked questions](https://fillo.so/docs/faq.md): Short answers to common Fillo questions, with links to the canonical implementation and operations docs.
- [MCP server](https://fillo.so/docs/mcp.md): Connect a coding agent to Fillo over MCP — the hosted remote endpoint over OAuth, or eleven non-destructive tools locally over stdio.
- [Markdown and llms.txt](https://fillo.so/docs/agent-consumability.md): Fetch Fillo docs as plain Markdown — per page, as a concise index, or as one full reference file.
- [Tally alternative for in-product forms](https://fillo.so/docs/compare/tally.md): Compare Tally with Fillo when a hosted form moves into your app: native controls in your own route and a schema shared across validation and responses.
- [Typeform alternative for native product forms](https://fillo.so/docs/compare/typeform.md): Compare Typeform with Fillo when a conversational form moves into your app: your components render the fields and a typed schema lives beside the feature.
- [Google Forms alternative for in-product forms](https://fillo.so/docs/compare/google-forms.md): Compare Google Forms with Fillo when a survey moves into your app: native controls on a real route, verified identity, and files sent to connected storage.
- [Migrate from Tally](https://fillo.so/docs/migrate/tally.md): Plan a Tally-to-Fillo rebuild with a field map, response archive, test pass, cutover, and rollback path.
- [Migrate from Typeform](https://fillo.so/docs/migrate/typeform.md): Plan a Typeform-to-Fillo rebuild with a response archive, question map, branch tests, cutover, and rollback path.
- [Migrate from Google Forms](https://fillo.so/docs/migrate/google-forms.md): Plan a Google-Forms-to-Fillo rebuild with a response archive, question map, dependency check, cutover, and rollback path.
- [Formspree alternative for product forms](https://fillo.so/docs/compare/formspree.md): Compare Formspree with Fillo for an in-product form: one schema renders native fields, validates on the server, and keeps uploads and responses together.
- [SurveyJS alternative with a hosted form backend](https://fillo.so/docs/compare/surveyjs.md): Compare SurveyJS with Fillo when a JavaScript form needs a ready-made backend: stored, versioned responses, browser-direct uploads, and a hosted builder.
