Skip to main content

Hyper Solutions SDK - Python Library for Bot Protection Bypass (Akamai, Incapsula, Kasada, DataDome)

Python Version License PyPI Version PyPI Downloads

A powerful Python SDK for bypassing modern bot protection systems including Akamai Bot Manager, Incapsula, Kasada, and DataDome. Generate valid cookies, solve anti-bot challenges, and automate protected endpoints with ease.

Perfect for web scraping, automation, and data collection from protected websites.

🔑 Getting API Access

Before using this SDK, you'll need an API key from Hyper Solutions:

  1. Visit hypersolutions.co to create your account
  2. Choose your plan:
    • 💳 Pay-as-you-go: Perfect for testing and small-scale usage
    • 📊 Subscription plans: Cost-effective for high-volume applications
  3. Get your API key from the dashboard
  4. Start bypassing bot protection with this SDK!

🚀 Quick Start

from hyper_sdk import Session, SensorInput

session = Session("your-api-key")

# Generate Akamai sensor data
sensor_data, sensor_context = session.generate_sensor_data(SensorInput(
    # sensor input fields
))

print(f"Generated sensor data: {sensor_data}")
print(f"Sensor context: {sensor_context}")

✨ Features

  • 🛡️ Akamai Bot Manager: Generate sensor data, handle pixel challenges, validate cookies
  • 🔒 Incapsula Protection: Generate Reese84 sensors and UTMVC cookies
  • ⚡ Kasada Bypass: Generate payload data (CT) and POW tokens (CD)
  • 🎯 DataDome Solutions: Solve tags, slider captchas and interstitial challenges
  • 🔧 Easy Integration: Simple Python API with async/await support
  • ⚙️ Flexible Configuration: Custom HTTP clients and session management

📦 Installation

Install the Hyper Solutions SDK for Python using:

pip install hyper-sdk

📋 Table of Contents

🔧 Basic Usage

Creating a Session

Initialize the SDK with your API key to start bypassing bot protection:

from hyper_sdk import Session

# Basic session
session = Session("your-api-key")

# Advanced session with custom configuration
session = Session(
    api_key="your-api-key",
    jwt_key="your-jwt-key",
    app_key="your-app-key",
    app_secret="your-app-secret",
    client=custom_http_client
)

🛡️ Akamai Bot Manager

Bypass Akamai Bot Manager protection with sensor data generation, cookie validation, and challenge solving.

Generating Sensor Data

Generate sensor data for valid Akamai cookies and bot detection bypass:

sensor_data, context = await session.generate_sensor_data({
    # Configure sensor parameters
})

Handling Sec-Cpt Challenges

Solve sec-cpt challenges with built-in parsing and payload generation:

from hyper_sdk.akamai import SecCptChallenge

# Parse sec-cpt challenge from HTML
challenge = SecCptChallenge.parse(html_content)

# Or parse from JSON response
challenge = SecCptChallenge.parse_from_json(json_response)

# Generate challenge response payload
payload = challenge.generate_sec_cpt_payload(sec_cpt_cookie)

# Handle challenge timing requirements
challenge.sleep()

Validate Akamai _abck cookies and session states:

from hyper_sdk.akamai import is_cookie_valid, is_cookie_invalidated

# Check if cookie is valid for the current request count
is_valid = is_cookie_valid(cookie_value, request_count)

# Check if cookie has been invalidated and needs refresh
needs_refresh = is_cookie_invalidated(cookie_value)

Pixel Challenge Solving

Handle Akamai pixel challenges for advanced bot detection bypass:

from hyper_sdk import PixelInput
from hyper_sdk.akamai import parse_pixel_html_var, parse_pixel_script_url, parse_pixel_script_var

# Parse pixel challenge data
html_var = parse_pixel_html_var(html_content)
script_url, post_url = parse_pixel_script_url(html_content)
script_var = parse_pixel_script_var(script_content)

# Generate pixel data
pixel_data = session.generate_pixel_data(PixelInput(
    # pixel input fields
))

🔒 Incapsula Protection

Bypass Incapsula bot detection with Reese84 sensors and UTMVC cookie generation.

Generating Reese84 Sensors

Create Reese84 sensor data for Incapsula bypass:

from hyper_sdk import ReeseInput

sensor_data = session.generate_reese84_sensor("example.com", ReeseInput(
    # reese input fields
))

Generate UTMVC cookies for Incapsula protection bypass:

from hyper_sdk import UtmvcInput

utmvc_cookie, swhanedl = session.generate_utmvc_cookie(UtmvcInput(
    # utmvc input fields
))

Script Path Parsing

Parse UTMVC script paths and generate submit paths:

from hyper_sdk.incapsula import parse_utmvc_script_path, get_utmvc_submit_path

# Parse script path from content
script_path = parse_utmvc_script_path(script_content)

# Generate unique submit path
submit_path = get_utmvc_submit_path()

Dynamic Reese Script Parsing

Parse dynamic Reese84 script paths from interruption pages:

from hyper_sdk.incapsula import parse_dynamic_reese_script

sensor_path, script_path = parse_dynamic_reese_script(html_content, "https://example.com")

⚡ Kasada Bypass

Defeat Kasada Bot Manager with payload generation and POW solving.

Generating Payload Data (CT)

Create x-kpsdk-ct tokens for Kasada bypass:

from hyper_sdk import KasadaPayloadInput

payload, headers = session.generate_kasada_payload(KasadaPayloadInput(
    # kasada payload input fields
))

Generating POW Data (CD)

Solve Kasada Proof-of-Work challenges for x-kpsdk-cd tokens:

from hyper_sdk import KasadaPowInput

pow_payload = session.generate_kasada_pow(KasadaPowInput(
    # kasada pow input fields
))

🤖 Vercel BotID

Bypass Vercel BotID protection by generating the required x-is-human header.

Generating the x-is-human Header

Create the x-is-human header for Vercel BotID bypass:

from hyper_sdk import BotIDHeaderInput

header = session.generate_botid_header(BotIDHeaderInput(
    script=script_body,          # The c.js script content
    user_agent="your-user-agent",
    ip="your-proxy-ip",
    accept_language="en-US,en;q=0.9",
))

# Use the header in your requests
headers = {
    "x-is-human": header,
    # ... other headers
}

Script Path Extraction

Extract Kasada script paths from blocked pages (HTTP 429):

from hyper_sdk.kasada import parse_kasada_script_path

script_path = parse_kasada_script_path(blocked_page_html)
# Returns: /ips.js?timestamp=...

🎯 DataDome Solutions

Solve DataDome captchas including slider challenges and interstitial pages.

Interstitial Challenge Solving

Bypass DataDome interstitial pages:

from hyper_sdk import DataDomeInterstitialInput

result = session.generate_interstitial_payload(DataDomeInterstitialInput(
    # interstitial input fields
))

payload = result["payload"]
headers = result["headers"]
# POST payload to https://geo.captcha-delivery.com/interstitial/

Slider Captcha Solving

Solve DataDome slider captchas automatically:

from hyper_sdk import DataDomeSliderInput

result = session.generate_slider_payload(DataDomeSliderInput(
    # slider input fields
))

check_url = result["payload"]
headers = result["headers"]
# GET request to check_url

Tags Payload Generation

Generate DataDome tags payload:

from hyper_sdk import DataDomeTagsInput

tags_payload = session.generate_tags_payload(DataDomeTagsInput(
    # tags input fields
))

Extract DataDome device check URLs from blocked pages:

from hyper_sdk.datadome import parse_interstitial_device_check_link, parse_slider_device_check_link

# Parse interstitial device links
device_link = parse_interstitial_device_check_link(
    html_content, 
    datadome_cookie, 
    referer_url
)

# Parse slider device links  
device_link = parse_slider_device_check_link(
    html_content, 
    datadome_cookie, 
    referer_url
)

Challenge Script

DataDome sometimes serves a challenge page with the challenge script in its own file instead of inlining it in the page:

<script defer src="https://ct.captcha-delivery.com/interstitial.1.33.0.202609141.js"></script>

It switches between the two forms per request, so check every challenge page. When the page uses a separate file, fetch it with your own client so the request keeps your proxy, TLS fingerprint and headers, then pass the body as script:

from hyper_sdk import DataDomeInterstitialInput
from hyper_sdk.datadome import parse_challenge_script_url

script = ""
script_url = parse_challenge_script_url(html_content)
if script_url is not None:
    script = your_client.get(script_url).text

result = session.generate_interstitial_payload(DataDomeInterstitialInput(
    # other interstitial input fields
    html=html_content,
    script=script,  # empty when the page inlines the script
))

The same applies to DataDomeSliderInput. One helper covers both challenge types, since the captcha page uses the same tag. script is optional and leaving it empty keeps working.

📖 Documentation

For detailed documentation on how to use the SDK, including examples and API reference, please visit our documentation website:

https://docs.justhyped.dev/

Getting Help

🤝 Contributing

If you find any issues or have suggestions for improvement, please open an issue or submit a pull request.

📄 License

This SDK is licensed under the MIT License.


Keywords: Python SDK, bot protection bypass, web scraping, Akamai bypass, Incapsula bypass, Kasada bypass, DataDome bypass, anti-bot, captcha solver, automation, reverse engineering, bot detection, web automation

Metadata

Release files for hyper-sdk 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hyper-sdk 3.0.0
File Size Uploaded
hyper_sdk-3.0.0.tar.gz 23.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hyper-sdk 3.0.0
File Interpreter ABI Platform
hyper_sdk-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 51.2 kB

Release files / hyper_sdk-3.0.0.tar.gz

Download URL hyper_sdk-3.0.0.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d3f8c2bb0b11fa2256f957110df69909519650990c2ab0e153112761cdaaf66b
BLAKE2b-256 checksum
How to use checksums
8864b09e4ba32361a665739206aa2030f0bff7301f985205c0048c24c98243b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / hyper_sdk-3.0.0-py3-none-any.whl

Download URL hyper_sdk-3.0.0-py3-none-any.whl
Size 27.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7e1946de51e6192715e89344215472c290819cd974ca10e52b413626cbc0414
BLAKE2b-256 checksum
How to use checksums
47f32e060ca3d888a062bd170ab68160e773dcd91d4eaef2ad89fb1fdf2a6786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files

2.13.0

2 release files

2.12.5

2 release files

2.12.4

2 release files

2.12.1

2 release files

2.11.0

2 release files

2.10.0

2 release files

2.9.0

2 release files

2.8.0

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page