Fillout REST API

Interact with Fillout via a REST API. Access your forms and form submissions from outside the Fillout site. Create new forms and activate, deactivate and publish existing forms.

 
📝
Note: The Fillout API is currently only available on the Enterprise plan. Note that webhooks are available on all plans.

Introduction

The Fillout API lets you access information about your Fillout account programmatically, without using the Fillout site. The Fillout API is primarily for Fillout users and for 3rd party developers that want to build services on top of Fillout.
 
You can access a list of all your forms and the submissions for each form via the API. You can also create new forms and activate, deactivate and publish existing forms.

Authentication

Contact support@fillout.com to generate an API key for your account. Once generated, you can view your API key in the Fillout Enterprise tab of your account. You can revoke or regenerate your API key at any time via the dashboard.
notion image
 
Pass your API key in the Authorization bearer header of each request.
 
You can obtain your API base URL in the API dashboard. Typically, it will be https://api.fillout.com.
 
☑️
Important: If you’re self-hosting Fillout or using the EU agent, a different URL will appear in the dashboard.

API Endpoints

Get forms

GET /v1/api/forms
 
Returns a list of all your forms.
[ { "name": "My example form", "id": "vso9PzRfHQus", }, ... ]
 

Get form metadata

GET /v1/api/metadata
 
Given a formId, returns all the questions in that form.
{ "questions": [ { "key": "5AtgG35AAZVcrSVfRubvp1", "label": "What's your email?" "type": "Email" }, { "key": "gRBWVbE2fut2oiAMprdZpY", "label": "What is your name?" "type": "ShortAnswer" }, { "key": "hP4bHA1CgvyD2LKhBnnGHy", "label": "Pick your favorite color" "type": "MultipleChoice" } ] }
 

Get submissions

To get submissions, look at the Responses API.
 

Activate a form

POST /v1/api/form/activate
 
Given a formId, activates the form.
 

Deactivate a form

POST /v1/api/form/deactivate
 
Given a formId, deactivates the form. Deactivated forms will no long accept submissions.
 

Create a form

POST /v1/api/form/create
 
Given a name in the body of the request, creates a new form. Returns the ID of the newly created form.
{ "questions": [ { "label": "What's your email?" "type": "Email" }, { "label": "What is your name?" "type": "ShortAnswer" }, { "label": "Pick your favorite color" "type": "MultipleChoice" } ] }
 

Publish a form

POST /v1/api/form/publish
 
Given a formId, publishes a form.
 

Create a webhook

POST /v1/api/webhook/create
 
Given a formId and a url, creates a new webhook for that form. Returns the webhookId.
 
The URL you provide will be called with the response data whenever a new submission is received.
 

Remove a webhook

POST /v1/api/webhook/create
 
Given a webhookId, removes the webhook.