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