Fillout
App · Forms & Surveys · 8 actions · 2 triggers
Read Fillout forms and their submissions, record and delete submissions, and manage the webhooks that announce new responses.
Triggers
Start a workflow when something happens in Fillout. See how triggers work.
New submission
Runs when a Fillout form receives a completed response.
Filters
Narrow which events start a run.
form_idRequiredsearch
Event fields
What a run starts with. Later steps read each field with an @ reference.
form_idtextsubmission_idtextsubmitted_attextlast_updated_attextedit_linktextanswersobjectquestionslistcalculationslisturl_parameterslistschedulinglistpaymentslistquiz_scorenumberquiz_max_scorenumberlogin_emailtext
Submission updated
Runs when a response to a Fillout form is edited.
Filters
Narrow which events start a run.
form_idRequiredsearch
Event fields
What a run starts with. Later steps read each field with an @ reference.
form_idtextsubmission_idtextsubmitted_attextlast_updated_attextedit_linktextanswersobjectquestionslistcalculationslisturl_parameterslistschedulinglistpaymentslistquiz_scorenumberquiz_max_scorenumberlogin_emailtext
Actions
| Action | What it does |
|---|---|
| Create a submission | Record a submission against a form without going through the form itself: useful for importing responses collected elsewhere. |
| Create a webhook | Subscribe a URL to a form's new submissions. |
| Delete a submission | Permanently delete one submission from a form. |
| Get a form | Fetch one form's structure (its questions, calculations, URL parameters, scheduling and payment fields), so you know which IDs to send when creating a submission. |
| Get a submission | Fetch one submission and all of its answers. |
| List forms | List the forms on your Fillout account. |
| List submissions | List the submissions a form has received, newest first. |
| Remove a webhook | Stop a webhook from receiving submissions, using the ID Create a webhook returned. |
Create a submission
Record a submission against a form without going through the form itself: useful for importing responses collected elsewhere.
Inputs
- Form ID
form_idtextRequired - The ID of the form, as returned by List forms. It's also the last part of the form's public URL.
- Answers
answersobjectRequired - The answers to record, keyed by question ID -- for example {"kj4Q": "Ada Lovelace"}. Use Get a form to look up the question IDs.
- URL parameters
url_parametersobject - Optional. Tracking values to record alongside the answers, keyed by URL parameter ID -- for example {"utm_source": "newsletter"}. Use Get a form to look up the IDs.
- Submitted at
submitted_atdate and time - Optional. When the response was originally collected. Defaults to now.
- Last updated at
last_updated_atdate and time - Optional. When the response was last changed. Defaults to the submitted time.
Outputs
answersobject- The answers keyed by question text -- for example {'Email': 'ada@example.com'}. The quickest way to read one known answer.
calculationslist- What the form's calculations worked out for this submission
edit_linktext- A link that reopens this submission for editing. Empty unless the action was asked to include it.
last_updated_attext- When the submission was last changed
login_emailtext- The verified email address, when the form is behind a login page
paymentslist- Payments taken through the form's Fillout Payments fields
questionslist- Every answer in form order, with the question IDs needed to write a submission back
quiz_max_scorenumber- The highest score the quiz can award
quiz_scorenumber- The score this submission earned, when the form is a quiz
schedulinglist- Meetings booked through the form's Fillout Scheduling fields
submission_idtext- Submission ID. Use with Get a submission.
submitted_attext- When the submission was completed
url_parameterslist- The URL parameters the form was opened with -- where a tracking code such as utm_source arrives
Example output
{
"answers": {
"Email": "ada@example.com",
"Name": "Ada Lovelace"
},
"calculations": [
{
"calculation_id": "c1Xz",
"name": "Lead score",
"type": "number",
"value": "42"
}
],
"edit_link": "https://forms.fillout.com/t/vf1JqPvhSGus?fillout_submission=abc123",
"last_updated_at": "2026-07-29T17:04:11.000Z",
"login_email": "ada@example.com",
"payments": [
{
"currency": "usd",
"discount_code": "EARLYBIRD",
"email": "ada@example.com",
"name": "Ticket",
"payment_field_id": "p3Kd",
"payment_id": "pi_3PkQ2xHs",
"payment_status": "succeeded",
"stripe_customer_id": "cus_Qf8s1Yb",
"stripe_customer_url": "https://dashboard.stripe.com/customers/cus_Qf8s1Yb",
"stripe_payment_url": "https://dashboard.stripe.com/payments/pi_3PkQ2xHs",
"stripe_subscription_id": "",
"total_amount": 4900
}
],
"questions": [
{
"name": "Name",
"question_id": "kj4Q",
"type": "ShortAnswer",
"value": "Ada Lovelace"
},
{
"name": "Email",
"question_id": "9Fk2",
"type": "EmailInput",
"value": "ada@example.com"
}
],
"quiz_max_score": 10,
"quiz_score": 8,
"scheduling": [
{
"email": "ada@example.com",
"event_end_time": "2026-08-04T15:30:00.000Z",
"event_id": "evt_9c2f",
"event_start_time": "2026-08-04T15:00:00.000Z",
"event_url": "https://calendar.google.com/calendar/event?eid=evt_9c2f",
"full_name": "Ada Lovelace",
"meeting_notes": "Wants a demo of the reporting tab.",
"name": "Pick a time",
"reschedule_or_cancel_url": "https://forms.fillout.com/scheduling/evt_9c2f",
"scheduled_user_email": "sales@example.com",
"scheduling_id": "s7Bq",
"timezone": "America/New_York"
}
],
"submission_id": "abc123",
"submitted_at": "2026-07-29T17:04:11.000Z",
"url_parameters": [
{
"name": "utm_source",
"parameter_id": "utm_source",
"value": "newsletter"
}
]
}Create a webhook
Subscribe a URL to a form's new submissions. Fillout POSTs each new response to it in the same shape List submissions returns.
Inputs
- Form ID
form_idtextRequired - The ID of the form, as returned by List forms. It's also the last part of the form's public URL.
- Endpoint URL
urltextRequired - The HTTPS endpoint Fillout should POST each new submission to.
Outputs
form_idtext- The form the webhook listens to
urltext- The endpoint submissions are sent to
webhook_idtext- Webhook ID. Use with Remove a webhook.
Example output
{
"form_id": "vf1JqPvhSGus",
"url": "https://example.com/hooks/fillout",
"webhook_id": "84213"
}Delete a submission
Permanently delete one submission from a form. This cannot be undone, and the response stops counting toward the form's results.
Inputs
- Form ID
form_idtextRequired - The ID of the form, as returned by List forms. It's also the last part of the form's public URL.
- Submission ID
submission_idtextRequired - The ID of the submission, as returned by List submissions or Create a submission.
Outputs
deletedtrue/false- True once Fillout has removed the submission
form_idtext- The form the submission was deleted from
submission_idtext- The submission that was deleted
Example output
{
"deleted": true,
"form_id": "vf1JqPvhSGus",
"submission_id": "abc123"
}Get a form
Fetch one form's structure (its questions, calculations, URL parameters, scheduling and payment fields), so you know which IDs to send when creating a submission.
Inputs
- Form ID
form_idtextRequired - The ID of the form, as returned by List forms. It's also the last part of the form's public URL.
Outputs
calculationslist- The form's calculations
form_idtext- The form's ID
nametext- The form's name
paymentslist- The form's Fillout Payments fields
questionslist- The form's questions, in the order they appear
quiz_enabledtrue/false- Whether the form is scored as a quiz
schedulinglist- The form's Fillout Scheduling fields
url_parameterslist- The URL parameters the form accepts
Example output
{
"calculations": [
{
"calculation_id": "c1Xz",
"name": "Lead score",
"type": "number"
}
],
"form_id": "vf1JqPvhSGus",
"name": "Customer feedback",
"payments": [
{
"name": "Ticket",
"payment_field_id": "p3Kd"
}
],
"questions": [
{
"name": "Name",
"question_id": "kj4Q",
"type": "ShortAnswer"
},
{
"name": "Email",
"question_id": "9Fk2",
"type": "EmailInput"
}
],
"quiz_enabled": false,
"scheduling": [
{
"name": "Pick a time",
"scheduling_id": "s7Bq"
}
],
"url_parameters": [
{
"name": "utm_source",
"parameter_id": "utm_source"
}
]
}Get a submission
Fetch one submission and all of its answers.
Inputs
- Form ID
form_idtextRequired - The ID of the form, as returned by List forms. It's also the last part of the form's public URL.
- Submission ID
submission_idtextRequired - The ID of the submission, as returned by List submissions or Create a submission.
- Include edit link
include_edit_linktrue/false - Optional. Also return a link that reopens each submission for editing.Default:
false.
Outputs
answersobject- The answers keyed by question text -- for example {'Email': 'ada@example.com'}. The quickest way to read one known answer.
calculationslist- What the form's calculations worked out for this submission
edit_linktext- A link that reopens this submission for editing. Empty unless the action was asked to include it.
last_updated_attext- When the submission was last changed
login_emailtext- The verified email address, when the form is behind a login page
paymentslist- Payments taken through the form's Fillout Payments fields
questionslist- Every answer in form order, with the question IDs needed to write a submission back
quiz_max_scorenumber- The highest score the quiz can award
quiz_scorenumber- The score this submission earned, when the form is a quiz
schedulinglist- Meetings booked through the form's Fillout Scheduling fields
submission_idtext- Submission ID. Use with Get a submission.
submitted_attext- When the submission was completed
url_parameterslist- The URL parameters the form was opened with -- where a tracking code such as utm_source arrives
Example output
{
"answers": {
"Email": "ada@example.com",
"Name": "Ada Lovelace"
},
"calculations": [
{
"calculation_id": "c1Xz",
"name": "Lead score",
"type": "number",
"value": "42"
}
],
"edit_link": "https://forms.fillout.com/t/vf1JqPvhSGus?fillout_submission=abc123",
"last_updated_at": "2026-07-29T17:04:11.000Z",
"login_email": "ada@example.com",
"payments": [
{
"currency": "usd",
"discount_code": "EARLYBIRD",
"email": "ada@example.com",
"name": "Ticket",
"payment_field_id": "p3Kd",
"payment_id": "pi_3PkQ2xHs",
"payment_status": "succeeded",
"stripe_customer_id": "cus_Qf8s1Yb",
"stripe_customer_url": "https://dashboard.stripe.com/customers/cus_Qf8s1Yb",
"stripe_payment_url": "https://dashboard.stripe.com/payments/pi_3PkQ2xHs",
"stripe_subscription_id": "",
"total_amount": 4900
}
],
"questions": [
{
"name": "Name",
"question_id": "kj4Q",
"type": "ShortAnswer",
"value": "Ada Lovelace"
},
{
"name": "Email",
"question_id": "9Fk2",
"type": "EmailInput",
"value": "ada@example.com"
}
],
"quiz_max_score": 10,
"quiz_score": 8,
"scheduling": [
{
"email": "ada@example.com",
"event_end_time": "2026-08-04T15:30:00.000Z",
"event_id": "evt_9c2f",
"event_start_time": "2026-08-04T15:00:00.000Z",
"event_url": "https://calendar.google.com/calendar/event?eid=evt_9c2f",
"full_name": "Ada Lovelace",
"meeting_notes": "Wants a demo of the reporting tab.",
"name": "Pick a time",
"reschedule_or_cancel_url": "https://forms.fillout.com/scheduling/evt_9c2f",
"scheduled_user_email": "sales@example.com",
"scheduling_id": "s7Bq",
"timezone": "America/New_York"
}
],
"submission_id": "abc123",
"submitted_at": "2026-07-29T17:04:11.000Z",
"url_parameters": [
{
"name": "utm_source",
"parameter_id": "utm_source",
"value": "newsletter"
}
]
}List forms
List the forms on your Fillout account.
Inputs
None.
Outputs
formslist- The forms on the account
Example output
{
"forms": [
{
"form_id": "vf1JqPvhSGus",
"name": "Customer feedback"
},
{
"form_id": "kR7mTnQbXe2p",
"name": "Event signup"
}
]
}List submissions
List the submissions a form has received, newest first.
Inputs
- Form ID
form_idtextRequired - The ID of the form, as returned by List forms. It's also the last part of the form's public URL.
- Maximum submissions
limitnumber - How many submissions to return (1-150).From 1 to 150. Default:
50. - Skip
offsetnumber - Optional. Skip this many submissions before returning any -- page two of a 50-per-page list starts at 50.At least 0. Default:
0. - Status
statustext - Optional. Return only completed submissions, or only ones still in progress. Defaults to completed.One of:
finished(Completed),in_progress(In progress). - Search term
searchtext - Optional. Only return submissions containing this text.
- Submitted after
after_datedate and time - Optional. Only return submissions made after this moment.
- Submitted before
before_datedate and time - Optional. Only return submissions made before this moment.
- Order
sorttext - Which end of the list to start from.One of:
desc(Newest first),asc(Oldest first). Default:desc. - Include edit link
include_edit_linktrue/false - Optional. Also return a link that reopens each submission for editing.Default:
false. - Include test responses
include_previewtrue/false - Optional. Also return the responses submitted while previewing the form.Default:
false.
Outputs
page_countnumber- How many pages those submissions fill at this page size. Walk them with Skip.
submissionslist- The matching submissions
total_responsesnumber- How many submissions match in total
Example output
{
"page_count": 3,
"submissions": [
{
"answers": {
"Email": "ada@example.com",
"Name": "Ada Lovelace"
},
"calculations": [
{
"calculation_id": "c1Xz",
"name": "Lead score",
"type": "number",
"value": "42"
}
],
"edit_link": "https://forms.fillout.com/t/vf1JqPvhSGus?fillout_submission=abc123",
"last_updated_at": "2026-07-29T17:04:11.000Z",
"login_email": "ada@example.com",
"payments": [
{
"currency": "usd",
"discount_code": "EARLYBIRD",
"email": "ada@example.com",
"name": "Ticket",
"payment_field_id": "p3Kd",
"payment_id": "pi_3PkQ2xHs",
"payment_status": "succeeded",
"stripe_customer_id": "cus_Qf8s1Yb",
"stripe_customer_url": "https://dashboard.stripe.com/customers/cus_Qf8s1Yb",
"stripe_payment_url": "https://dashboard.stripe.com/payments/pi_3PkQ2xHs",
"stripe_subscription_id": "",
"total_amount": 4900
}
],
"questions": [
{
"name": "Name",
"question_id": "kj4Q",
"type": "ShortAnswer",
"value": "Ada Lovelace"
},
{
"name": "Email",
"question_id": "9Fk2",
"type": "EmailInput",
"value": "ada@example.com"
}
],
"quiz_max_score": 10,
"quiz_score": 8,
"scheduling": [
{
"email": "ada@example.com",
"event_end_time": "2026-08-04T15:30:00.000Z",
"event_id": "evt_9c2f",
"event_start_time": "2026-08-04T15:00:00.000Z",
"event_url": "https://calendar.google.com/calendar/event?eid=evt_9c2f",
"full_name": "Ada Lovelace",
"meeting_notes": "Wants a demo of the reporting tab.",
"name": "Pick a time",
"reschedule_or_cancel_url": "https://forms.fillout.com/scheduling/evt_9c2f",
"scheduled_user_email": "sales@example.com",
"scheduling_id": "s7Bq",
"timezone": "America/New_York"
}
],
"submission_id": "abc123",
"submitted_at": "2026-07-29T17:04:11.000Z",
"url_parameters": [
{
"name": "utm_source",
"parameter_id": "utm_source",
"value": "newsletter"
}
]
}
],
"total_responses": 128
}Remove a webhook
Stop a webhook from receiving submissions, using the ID Create a webhook returned.
Inputs
- Webhook ID
webhook_idtextRequired - The ID of the webhook to remove, as returned by Create a webhook.
Outputs
deletedtrue/false- True once Fillout has removed the webhook
webhook_idtext- The webhook that was removed
Example output
{
"deleted": true,
"webhook_id": "84213"
}