A Better CAPTCHA Experience
Replace frustrating tests with our intuitive, secure, and easy-to-integrate slider puzzle. Stop bots, not humans.
Why Choose SliderCaptcha?
We focus on the three things that matter most: user experience, security, and simplicity.
User-Friendly
No more guessing blurry text or identifying traffic lights. A simple, intuitive slide is all it takes for legitimate users to pass.
Robust Security
Our dynamic puzzle generation and server-side verification effectively block automated bots while remaining accessible to humans.
Easy Integration
Get up and running in minutes. Add a few lines of code to your website, and you're protected with a modern, elegant solution.
Effortless Integration
Integrate our captcha solution into your forms with just a few lines of code. Choose your preferred method below:
<form method="POST" action="index.php" id="demo-form">
<input type="hidden" name="sc-token" id="cs-token" value="">
<button class="slidercaptcha btn btn-hero"
data-sitekey="SLIDERCAPTCHA_SITE_KEY"
data-callback='onSubmit'
data-action='submit'>Submit</button>
</form>
<script src="//www.slidercaptcha.com/v1/captcha.js"></script>
<script>
function onSubmit(token) {
document.querySelector('#cs-token').value = token;
document.getElementById("demo-form").submit();
}
</script>
<form method="POST">
<input type="hidden" name="sc-token" id="cs-token" value="">
<button class="btn btn-hero" onclick="onClick(event)">Verify</button>
</form>
<script src="//www.slidercaptcha.com/v1/captcha.js"></script>
<script>
function onClick(e) {
/* OPTIONAL CONFIG */
//window.sliderCaptchaConfig = {
// display: 'inline', // or inline
// lang: 'en', // Default is system language, then English
// theme: 'dark', // Default is system or light
// triggerElement: document.querySelector('.btn-hero'), // Only if
//}
e.preventDefault();
slidercaptcha.ready(function() {
slidercaptcha.execute('SLIDERCAPTCHA_SITE_KEY', {action: 'submit'})
.then(function(token) {
console.log("Client-side success! Token received:", token);
document.querySelector('#cs-token').value = token;
// Do a form.submit() or any other action you need
}).catch(error => {
console.error("Client-side error:", error);
});
});
}
</script>
Server-to-Server Validation
After receiving the token on your server, you must verify it by making a POST request to our verification endpoint. This is a critical security step.
curl -X POST \
-d "token=RECV_TOKEN" \
-d "secret=YOUR_SECRET_KEY" \
"http://slidercaptcha.com/v1/site_verify"
<?php
$secretKey = "YOUR_SECRET_KEY";
$token = $_POST['sc-token'] ?? '';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://slidercaptcha.com/v1/site_verify");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['secret' => $secretKey, 'token' => $token]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response_body = curl_exec($ch);
curl_close($ch);
$response = json_decode($response_body);
if ($response && $response->success === true) {
echo "Verification successful!";
} else {
$error = $response->error ?? 'Unknown error';
echo "Verification failed: " . $error;
}
?>
// Requires 'axios': npm install axios
const axios = require('axios');
const querystring = require('querystring');
async function verifyCaptcha(token) {
try {
const secret = 'YOUR_SECRET_KEY';
const url = 'http://slidercaptcha.com/v1/site_verify';
const response = await axios.post(url,
querystring.stringify({ token, secret })
);
if (response.data && response.data.success === true) {
console.log('Verification successful!');
return true;
} else {
const error = response.data.error || 'Unknown error';
console.error(`Verification failed: ${error}`);
return false;
}
} catch (error) {
console.error('Server error:', error.message);
return false;
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
type VerifyResponse struct {
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
func VerifyToken(token string) (bool, error) {
secret := "YOUR_SECRET_KEY"
endpoint := "http://slidercaptcha.com/v1/site_verify"
resp, err := http.PostForm(endpoint, url.Values{
"token": {token},
"secret": {secret},
})
if err != nil {
return false, err
}
defer resp.Body.Close()
var apiResponse VerifyResponse
if err := json.NewDecoder(resp.Body).Decode(&apiResponse); err != nil {
return false, err
}
if !apiResponse.Success {
return false, fmt.Errorf(apiResponse.Error)
}
return true, nil
}
Ready to Ditch Annoying Captchas?
Improve your website's security and user experience today.
Get Your API Key Now