How to migrate to Lemin Captcha from reCAPTCHA or hCaptcha?

This guide will help you to switch to Lemin Captcha from reCAPTCHA or hCaptcha effortlessly.

First, sign up to Lemin Captcha as a new user.

2. Click on "My Products", then click add new on the upper right corner of your screen.

Adjust the settings for your first Lemin captcha!

Then, you should get your 'Captcha ID,' and you should set captcha 'Container ID':

Then, click on Advanced Settings from the puzzle captcha of your choice and copy your Container ID from Captcha Div ID.


You can get your Captcha ID from your puzzle's captcha script source. 

Your container ID is:

Here's an example that uses reCAPTCHA enterprise with the checkbox:

To switch to Lemin Captcha, remove the div code block down below,

<div class="form-row" >

<div class="g-recaptcha" data-callback="log" data-sitekey="XXXXYYYYYZZZZZ111122222333333"></div>

and replace it with:

  <div class="form-row" id="lemin-cropped-captcha">

<script src=""></script>


Please make sure to insert the exact same Captcha Div ID (located in Advanced settings) to the div ID in your code. This tag will be used to locate the Lemin Captcha on your page.


Please check related articles down below to learn how to install Lemin Captcha on:





See also:



To verify a Lemin Captcha, your back-end needs to make a POST call with a JSON body to our server, containing the following three parameters: “private_key”, “challenge_id”, and “answer”

Verification requests should not be done in the client and it must be done in the back-end, otherwise, you will expose your private_key.

Private Key

Your private key is used for verifying Lemin Captcha ownership. You can find your unique private key in the “Account” section of your Lemin dashboard.

Generating JavaScript Code for Captcha



Do not use a GET request to call /v1/cropped/validate. Use a POST request, all request bodies should have content-type application/json and be valid JSON.


curl --location --request POST \
--header 'Content-Type: application/json' \
--data-raw '{
"private_key": "f902f944-7009-4764-97a3-c7bab9b5fe85",
"challenge_id": "854374ce-99d7-4721-81f4-8acfc460356d",
"answer": "0xax76x0xax6sx0x0x6sx0x0x6ix0x0x68x0x0x5ux0x0x5kx0xax5kx0xax5ax0xax50x0xax4mx0xax4cx"


Key Description Example
private_key A key for Lemin Captcha ownership verification. This is obtained from your “Account” in the Lemin Dashboard f902f944-7009-4764-97a3-c7bab9b5fe85
challenge_id A key for Lemin Captcha. Our server checks this to identify your Lemin Captcha. This is obtained from the form-data explained in the previous section. 854374ce-99d7-4721-81f4-8acfc460356d
answer The encrypted website visitor's answer for Lemin Captcha verification. This is obtained from the form-data explained in the previous section.





Please note that our server always responds with status code 200.

Possible results and related descriptions:

Result Value Description
"success": true,
"message": null,
"code": null
Answer is correct.
"success": false,
"message": "Incorrect Answer",
"code": "incorrect_answer"
Answer is wrong.
"success": false,
"message": "Invalid Parameters",
"code": "invalid_parameters"
The parameters (private_key, challenge_id, answer) sent are invalid. PARAMETERS
"success": false,
"message": "Invalid challange_id",
"code": "invalid_challenge_id"
There is no challenge with the challenge id sent
"success": false,
"message": "Invalid cropped_captcha",
"code": "invalid_cropped_captcha"
Cropped Captcha is invalid.
"success": false,
"message": "Invalid private_key",
"code": "invalid_private_key"
Private key is invalid or None.
"success": false,
"message": "Challenge Is Not Active",
"code": "challenge_is_not_active"
Challenge is not active.