Skip to main content

Fillout

Fillout is an all-in-one, no-code platform for building forms, surveys, quizzes, and scheduling pages, with conditional logic, payments, e-signatures, and native integrations (Notion, Airtable, Google Sheets, Salesforce, HubSpot). Its API exposes forms, submissions, and webhooks for building data pipelines that ingest submissions or push records back into Fillout.

Fillout icon

Power end-to-end data operations for your Fillout API with Nexla. Our bi-directional Fillout connector is purpose-built for Fillout, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Fillout or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Fillout workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

To connect Nexla to Fillout, you need a Fillout account and an API key. Fillout API keys are generated from the Developer settings in your Fillout account dashboard.

Obtain a Fillout API Key

Fillout authenticates API requests using a Bearer token in the Authorization header. You generate this key directly from your Fillout account settings.

  1. Sign in to your Fillout account at build.fillout.com.

  2. Navigate to Home in the left sidebar, then open Settings.

  3. Click the Developer tab within Settings. The direct URL is https://build.fillout.com/home/settings/developer.

  4. Your API key is displayed on the Developer settings page. Copy the key and store it in a secure location.

    You can revoke or regenerate your API key at any time from the Developer settings page. If you regenerate your key, any existing integrations using the old key will stop working until updated with the new key.

  5. If you are self-hosting Fillout or using the Fillout EU region, your API base URL may differ from the default https://api.fillout.com. Check the Developer settings page for your account's specific API base URL.

Rate Limits

The Fillout API is limited to 5 requests per second per API key. When building high-volume data pipelines, plan your ingestion schedule accordingly to avoid hitting this limit.

For complete API documentation, refer to the Fillout REST API Help Center.

Authenticate

Credentials required

Authenticate with Fillout API using an API key passed as a Bearer token in the Authorization header.

FieldRequiredSecretDescription
API KeyYesYesYour Fillout API key for authentication.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your Fillout API key in the API Key field. This key is passed as a Bearer token in the Authorization header for every request Nexla makes to the Fillout API. Keep this value secure and do not share it publicly.

  4. Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Fillout connector tile, then select the credential that will be used to connect to the Fillout account, and click Next; or, create a new Fillout credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Fillout endpoints. Each template is designed specifically for the corresponding Fillout API endpoint, making data source setup easy and efficient. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Forms

Retrieves a paginated list of all forms in your Fillout account. Use this endpoint to discover available forms, build form inventories, or identify form IDs needed for other endpoints such as List Form Submissions.

  • No additional parameters are required for this endpoint. Nexla will automatically paginate through all pages of results using offset-based pagination, fetching up to 50 forms per page until all forms are retrieved.
  • Each returned record includes the form's unique identifier, display name, creation date, and other metadata describing the form's configuration and current status in your account.

The Form IDs returned by this endpoint are required when configuring the List Form Submissions, Get Form Metadata, and Fetch Submission by ID endpoints. Run this endpoint first if you do not already know the IDs of your target forms.

List Form Submissions

Returns a paginated list of all submissions for a specific form. Use this endpoint to ingest respondent data, build reporting pipelines, or sync form responses into a data warehouse or downstream system.

  • Enter the unique identifier of the form whose submissions you want to retrieve in the Form ID field. This value is required.

    • Form IDs can be found by using the List Forms endpoint, or by opening the form in the Fillout editor at build.fillout.com and copying the ID from the URL or form settings.
  • Nexla will automatically paginate through all submission pages using offset-based pagination, retrieving up to 150 submissions per page until the complete submission history has been fetched.
  • Each record in the resulting Nexset represents one form submission and includes all question-response pairs, submission timestamps, respondent metadata, and any URL parameters captured at the time of submission.

Fillout's API rate limit is 5 requests per second per API key. For forms with very large submission histories, Nexla's paginated ingestion will stay within this limit. If you need to schedule frequent syncs, consider using a reasonable cron interval to avoid exhausting your rate allowance.

Get Form Metadata

Retrieves metadata for a single form, including all question definitions, field IDs, field types, and form settings. Use this endpoint for schema discovery before building a pipeline that reads or writes submission data, or when you need to understand a form's structure for data mapping purposes.

  • Enter the unique identifier of the form in the Form ID field. This value is required.

    • Form IDs are available from the List Forms endpoint or from the Fillout form editor URL at build.fillout.com.
  • The response is returned as a single record containing the form's complete structural definition, including question field IDs and types. These field IDs are required when creating or importing submissions via the Create Submissions destination endpoint.

This endpoint is particularly valuable when preparing to write data back into Fillout. Field IDs returned here must be used as keys in submission payloads to ensure responses are mapped to the correct form questions.

Fetch Submission by ID

Fetches a single form submission by its unique submission ID. Use this endpoint for point lookups, change-detection workflows, or when you need to enrich a downstream record with the full detail of a specific submission without re-ingesting the entire submission history.

  • Enter the unique identifier of the form in the Form ID field. This value is required.

    • Form IDs can be retrieved from the List Forms endpoint or from the Fillout form editor.
  • Enter the unique identifier of the submission in the Submission ID field. This value is required.

    • Submission IDs are included in the records returned by the List Form Submissions endpoint.
  • The response is returned as a single record containing all response data for that submission, including question-answer pairs, timestamps, and any captured metadata.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Fillout data sources can also be manually configured to ingest data from any valid Fillout API endpoint — including endpoints not covered by the pre-built templates, or when chained API calls or custom request parameters are needed. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

The Fillout REST API base URL is https://api.fillout.com/v1/api. Common endpoint URLs include List all forms: https://api.fillout.com/v1/api/forms, List submissions for a form: https://api.fillout.com/v1/api/forms/{'{formId}'}/submissions, Get form metadata: https://api.fillout.com/v1/api/forms/{'{formId}'}, and Get a single submission: https://api.fillout.com/v1/api/forms/{'{formId}'}/submissions/{'{submissionId}'}. Replace {'{formId}'} and {'{submissionId}'} with the actual IDs for your target form and submission — Form IDs can be retrieved using the List Forms template endpoint.

The Fillout submissions endpoint supports afterDate and beforeDate query parameters that accept ISO 8601 datetime strings — date/time macros are particularly useful for scheduling incremental ingestion of new submissions since the last run.

Common JSON paths to data for Fillout endpoints include $[*] for list-of-forms responses and $.responses[*] for submission list responses, which unwraps the responses array returned by the List Form Submissions endpoint. Response-level fields outside this array — including totalResponses and pageCount — can be attached as common metadata to every record via the Path to Metadata in Response field.

You do not need to include the Authorization header in Request Headers — it is automatically set by the Fillout credential you configured.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Fillout data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Fillout destination, and select the Send to Destination option from the menu. Select the Fillout connector from the list of available destination connectors, then select the credential that will be used to connect to the Fillout account, and click Next; or, create a new Fillout credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Fillout endpoints. Each template is designed specifically for the corresponding Fillout endpoint, making destination setup easy and efficient. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create Anonymous Form

Creates an anonymous form, survey, or quiz in Fillout that can later be claimed by a user. This endpoint is useful for programmatically generating new forms from templates or data in a Nexset — for example, dynamically provisioning intake forms for new clients or projects. After creation, Fillout returns a claim link that the designated owner can use to take ownership of the form.

  • No additional URL parameters are required for this endpoint. Nexla will send the Nexset record data as a JSON body to the Fillout POST /v1/api/forms/anonymous endpoint.
  • Each record in the Nexset will result in one API call to Fillout. Ensure the Nexset schema matches the fields expected by the Fillout anonymous form creation API. Refer to the Fillout API reference for the expected request body structure.
  • The API response from each call — including the form claim link — can be captured and routed to a Nexla webhook source by enabling the Response Webhook option in the manual configuration settings.

Anonymous forms are not associated with any Fillout account until they are claimed. This makes them suitable for use cases where forms are generated on behalf of third parties or end users who have not yet signed up for Fillout.

Create Submissions (Import into Form)

Programmatically creates (imports) one or more submissions into an existing Fillout form. This is the primary write action for any form-data pipeline — use it to migrate historical submission data into Fillout, sync records from external systems, or backfill responses from an offline data collection workflow.

  • Enter the unique identifier of the form into which submissions will be imported in the Form ID field. This value is required.

    • Form IDs can be retrieved using the Fillout List Forms source endpoint, or from the form URL in the Fillout editor at build.fillout.com.
  • Each record in the Nexset will be sent as a submission payload to the Fillout form. Submission payloads must include question field IDs and their corresponding response values. Use the Get Form Metadata source endpoint to retrieve the field IDs for the target form before mapping your data.
  • The Fillout API supports importing up to 10 submissions in a single request. Nexla handles this automatically, but consider using the Record Batching option in the manual configuration to group records into batches of up to 10 for efficient throughput.
  • Once imported, submissions are visible in the Results tab of the form editor in Fillout and are treated identically to manually submitted responses.

Ensure the field IDs in your Nexset data match the question field IDs in the target Fillout form. Mismatched IDs will result in submissions being created without the expected response data. Run the Get Form Metadata source endpoint first to retrieve the correct field IDs.

Register Webhook

Registers a webhook with Fillout so that new form submissions are pushed in real time to a target URL. This endpoint replaces or augments polling-based ingestion pipelines and is ideal when low-latency data delivery is required.

  • Enter the target URL to which Fillout will push new submission payloads in the Webhook URL field. This value is required.

    • The webhook URL must be a publicly accessible HTTPS endpoint. In Nexla, this is typically a Nexla Webhook data source URL that you have already created to receive the incoming payloads.
  • Once registered, Fillout will send a POST request to the specified URL each time a new submission is received for the associated form. The payload format mirrors the response structure of the List Form Submissions source endpoint.

Fillout webhooks are registered per form. If you need to capture submissions from multiple forms in real time, configure a separate webhook registration for each form. Use the Deregister Webhook endpoint to cleanly remove webhooks when they are no longer needed.

Deregister Webhook

Deregisters (removes) an existing Fillout webhook, stopping real-time submission pushes to the previously registered target URL. Use this endpoint for clean lifecycle management when a pipeline is torn down, reconfigured, or the target URL changes.

  • No additional URL parameters are required for this endpoint. Nexla will send the webhook removal request as a JSON body to the Fillout POST /v1/api/webhook/remove endpoint. Ensure the Nexset record includes the form ID and webhook URL (or webhook ID) that should be deregistered — refer to the Fillout webhook API documentation for the expected request body fields.
  • After successful deregistration, Fillout will no longer send submission payloads to the previously registered URL. Confirm that any dependent Nexla webhook sources have been deactivated before removing the registration.

Delete Submission

Deletes a specific submission from a Fillout form by its unique submission ID. Use this endpoint for GDPR right-to-erasure workflows, data hygiene pipelines, or when you need to programmatically remove test or duplicate submissions.

  • Enter the unique identifier of the form containing the submission in the Form ID field. This value is required.

    • Form IDs can be retrieved using the List Forms source endpoint.
  • Enter the unique identifier of the submission to be deleted in the Submission ID field. This value is required.

    • Submission IDs are included in the records returned by the List Form Submissions source endpoint and the Fetch Submission by ID source endpoint.
  • Deletion is permanent and cannot be undone. Verify the Submission ID before activating this destination in a production pipeline.

This endpoint is appropriate for data erasure workflows where you have identified a list of submission IDs to remove — for example, after processing a batch of GDPR deletion requests. Pair it with the List Form Submissions source endpoint to identify the relevant Submission IDs before deletion.

Manual configuration

Fillout destinations can also be manually configured to send data to any valid Fillout API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The Fillout REST API base URL is https://api.fillout.com/v1/api. Common destination endpoints include Create submissions: https://api.fillout.com/v1/api/forms/{'{formId}'}/submissions (POST), Create anonymous form: https://api.fillout.com/v1/api/forms/anonymous (POST), Register webhook: https://api.fillout.com/v1/api/webhook/create (POST), Deregister webhook: https://api.fillout.com/v1/api/webhook/remove (POST), and Delete submission: https://api.fillout.com/v1/api/forms/{'{formId}'}/submissions/{'{submissionId}'} (DELETE). Fillout's write endpoints accept JSON (application/json) request bodies.

You do not need to include the Authorization header in Request Headers — it is automatically managed by the Fillout credential configuration.

The Fillout API supports a maximum of 10 submissions per request for the Create Submissions endpoint — if enabling record batching, set the Batch Size to 10 or fewer to stay within this limit. Enabling the response webhook option routes the API response from each call — such as the form claim link returned by Create Anonymous Form — to a new Nexla webhook data source.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Fillout endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Fillout endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.