Welcome and thanks for the interest of using Captcha for Forms (Google Forms Captcha).

Captcha for Forms is a free Google forms addon that aims to fight spams. It verifies the human identity by requesting the correct input of a constantly changing challenge code (captcha). It significantly decreases bot spamming your forms. The following screenshot illustrates a bot fails to meet the code challenge.

Expired captcha code in form submission
Expired captcha code in form submission

Of course, there are other hacks to reduce spams. Check out 3 Ways To Protect Google Forms From Spamming.

Step 1. Setup Captcha for Forms

First of all, due to some technical limitations of this application, we decided to release this add-on as a free apps script, instead of posting it on the Chrome web store.

  1. Make sure you have single Google Account sign-in. The add-on may dysfunction under multiple Google Account sign-in.
  2. Download the Captcha for Forms apps script. The zip file contains a bundle.js file.
  3. Open your forms.
  4. Copy bundle.js to your form's script editor. If you have no idea how to add them, follow this article, How to Add an Apps Script to Your Google Docs.
  5. Once you are done with the script editor, go back to your form. Refresh the page.
  6. Now you will see and click the add-on icon , then click Captcha for Forms > Start.
  7. At the first time of running the script, you would be prompted with a Authorization Dialog, accept the permissions. And click Captcha for Forms > Start again.
  8. Turn on Enable Captcha.
  9. You will see a captcha code question being generated and refreshed in every minute.
Captcha for forms adds a code challenge to respondents to protect forms from spams
Captcha for forms adds a code challenge to respondents to protect forms from spams

Each time you turn off and on the Captcha, a new question column is added to your response sheet. This is inevitable. So I suggest to toggle the Captcha only after you finished polishing your form.

Step 2. Test it

Now share the form with your audience in public. If they tried to submit garbage responses, this captcha challenge will block them away.

Bots cannot easily get through a dynamic challenge
Bots cannot easily get through a dynamic challenge

Release updates

Version 1.3.2

Added a Factory reset button in About tab in case of screwing up.

Version 1.3.1

Fix an issue of captcha code not refreshing.

Version 1.3.0

In this version, you only need to copy bundle.js rather than bundle.js and index.html. As other users reported copying the index.html file hangs the computer, this version move this HTML file to the cloud storage. As a downside, it will request from you an extra permission of connecting external service.

Version 1.2.0

This version added major updates on the interface.

  • Support configurable languages. Write in your language to make it native and formal.
    • In the Settings tab, you will be able to customize the title, the description and the error text when the captcha code is expired or wrong.
    • Note that Captcha for Forms is a free add-on, so you agreed that the description must contain the words Protected by xfanatical.
  • Support configurable captcha code expiration. The expiration window for a captcha window can be set in 1, 5, 10, 15 or 30 minutes. There is no correct answer for this expiration value. Test different numbers to see which one is best for your audiences' convenience and your form's security. This option is in the Settings tab too.
Configurable Captcha for Forms
Configurable Captcha for Forms


We'd like to know how it works for you and keep improving on this tool. We hope you have a clean and organic response spreadsheet . Thanks for reading and please leave any comment below or contact [email protected] if you encountered any issues.