Website Form - ReCaptcha

Provides a ReCaptcha field for Website Forms

Technical Name:
Tecnativa, LasLabs
  • Odoo Version

Website Form - ReCaptcha

Beta License: AGPL-3 OCA/website Translate me on Weblate Try me on Runbot

Adds a ReCaptcha field widget for website forms (extends the website_form module).


This module will try to use the language of your website. If it can't find it for any reason, it will default to google API and use the language of the browser or your location.

Table of contents


First of all you must obtain a ReCaptcha key from Google

Global setup

  • Add site key to system parameter
  • Add secret key to recaptcha.key.secret system parameter

Single website setup

  • Go to website settings
  • Set site key and secret key


To use this module, you need to:

  • Already have a form-enabled model (refer to website_form docs)
  • Set website_form_recaptcha to True on that model (similar to enabling forms)
  • Add an element with the o_website_form_recaptcha class anywhere in the form

Look at website_crm_recaptcha module for example implementation.

Known issues / Roadmap

  • Add domain validation
  • Split recaptcha APIs from website_form dependency (ie: new module website_recaptcha_base)

Changelog (Unreleased)

  • Fix handling of request attribute

  • Add backward compatibility for recent API refactoring

    [simahawk] (2019-01-10)

  • Refactor APIs and allow per-website config

    • API keys can now be configured via website settings which in turn allow to customize the values per website in a multi-website instance;
    • move all internal APIs to the model website.form.recaptcha so that we do not depend anymore on the controller if we need to integrate it into other pieces of code.
    • Use readme fragments

    [simahawk] (2019-01-10)

  • Improve JS and enforce translations

    Make JS modular and pass language parameter according to website lang.


  • Fix duplicated calls

    When website_crm_phone_validation is installed, the captcha validation is called twice so the form always fail as with a 'timeout-or-duplicate' error.

  • Fix JS LINT errors

  • Improve error handling to show all error messages at the same time

    [chienandalu] (2017-10-30)

  • Migrate to v11


Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • LasLabs
  • Tecnativa



This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/website project on GitHub.

You are welcome to contribute. To learn how please visit