<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohamed Shiyam</title>
    <description>The latest articles on DEV Community by Mohamed Shiyam (@sham435).</description>
    <link>https://dev.to/sham435</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1320809%2Fc834b9cb-222b-460c-8220-53a3a1a806b9.png</url>
      <title>DEV Community: Mohamed Shiyam</title>
      <link>https://dev.to/sham435</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sham435"/>
    <language>en</language>
    <item>
      <title>What is hCaptcha?</title>
      <dc:creator>Mohamed Shiyam</dc:creator>
      <pubDate>Thu, 06 Mar 2025 06:54:26 +0000</pubDate>
      <link>https://dev.to/sham435/what-is-hcaptcha-29b8</link>
      <guid>https://dev.to/sham435/what-is-hcaptcha-29b8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Understanding the Usage of hCaptcha's API Script with onLoad Parameter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In today's digital landscape, securing your website from bots and spam is crucial. One popular tool for this is &lt;strong&gt;hCaptcha&lt;/strong&gt;, a privacy-focused alternative to reCAPTCHA. In this blog post, we'll explore the usage of the hCaptcha API script, specifically the URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://js.hcaptcha.com/1/api.js?onload=onLoad
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This script is essential for integrating hCaptcha into your website to verify human users while enhancing security.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;What is hCaptcha?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;hCaptcha is a CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) service designed to prevent automated bots from accessing forms, sign-up pages, and other sensitive areas on websites. Unlike reCAPTCHA, hCaptcha emphasizes privacy and does not track users across the web.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Understanding the hCaptcha API Script&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The script URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://js.hcaptcha.com/1/api.js?onload=onLoad
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;serves two primary purposes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Loads hCaptcha’s JavaScript API&lt;/strong&gt;: This enables rendering of the CAPTCHA widget and handling user responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executes a Custom Callback Function (&lt;code&gt;onLoad&lt;/code&gt;)&lt;/strong&gt;: The &lt;code&gt;onload&lt;/code&gt; parameter allows you to define a function that runs once hCaptcha is fully loaded.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;How to Use hCaptcha with onLoad Parameter&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To integrate hCaptcha into your website, follow these steps:&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1. Basic HTML Integration&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Here’s a simple example of embedding hCaptcha in a form:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;hCaptcha Example&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
        &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;onLoad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hCaptcha script has loaded successfully!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://js.hcaptcha.com/1/api.js?onload=onLoad"&lt;/span&gt; &lt;span class="na"&gt;async&lt;/span&gt; &lt;span class="na"&gt;defer&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"/submit"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"h-captcha"&lt;/span&gt; &lt;span class="na"&gt;data-sitekey=&lt;/span&gt;&lt;span class="s"&gt;"your-site-key"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;&amp;lt;div class="h-captcha" data-sitekey="your-site-key"&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt; element loads the hCaptcha widget.&lt;/li&gt;
&lt;li&gt;The script is loaded asynchronously, and once it's ready, the &lt;code&gt;onLoad&lt;/code&gt; function is triggered, logging a message.&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  &lt;strong&gt;2. Dynamically Rendering hCaptcha&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;If you need to load hCaptcha dynamically (e.g., inside a modal or after user interaction), you can manually render it using JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;onLoad&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;hcaptcha&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;captcha-container&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;sitekey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-site-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure your HTML has a placeholder for the CAPTCHA:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"captcha-container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method ensures that the CAPTCHA only loads when needed, improving page performance.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The hCaptcha API script with the &lt;code&gt;onLoad&lt;/code&gt; parameter provides developers with greater control over CAPTCHA rendering and execution. Whether you're embedding it directly in forms or loading it dynamically, this approach enhances security while optimizing the user experience.&lt;/p&gt;

&lt;p&gt;By leveraging hCaptcha, you not only protect your site from bots but also maintain user privacy. Implement it today to enhance security on your website!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Have Questions?&lt;/strong&gt;&lt;br&gt;
Let us know in the comments below or explore &lt;a href="https://www.hcaptcha.com" rel="noopener noreferrer"&gt;hCaptcha’s official documentation&lt;/a&gt; for more details!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
