TLS Bypass
Make HTTP requests with TLS fingerprinting and bypass protections
TLS Bypass API
The TLS Bypass endpoint allows you to make HTTP requests with customized TLS fingerprints, helping you bypass anti-bot protections.
Endpoint
POST https://castlebreaker.cc/tls
Authentication
Requires X-API-Key header with your API key.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The target URL to make the request to |
method | string | Yes | HTTP method: GET, POST, PUT, DELETE, etc. |
tls_config | string | No | TLS configuration: CLOUDFLARE, AKAMAI, or CUSTOM (default: CUSTOM) |
headers | object | No | Custom HTTP headers to include in the request |
body | string | No | Request body for POST/PUT requests |
timeout | number | No | Request timeout in seconds (default: 30) |
TLS Configuration Options
CLOUDFLARE
Mimics Cloudflare's TLS fingerprint. Best for sites behind Cloudflare protection.
AKAMAI
Mimics Akamai's TLS fingerprint. Optimized for Akamai-protected endpoints.
CUSTOM
Our proprietary TLS fingerprint. Works for most general use cases.
Example Requests
Basic GET Request
curl -X POST "https://castlebreaker.cc/tls" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://api.example.com/data",
"method": "GET",
"tls_config": "CUSTOM"
}'
POST Request with Headers
curl -X POST "https://castlebreaker.cc/tls" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://api.example.com/submit",
"method": "POST",
"tls_config": "CLOUDFLARE",
"headers": {
"Content-Type": "application/json",
"User-Agent": "Custom-Agent/1.0"
},
"body": "{\"data\": \"value\"}"
}'
With Cloudflare Protection
curl -X POST "https://castlebreaker.cc/tls" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://protected-site.com/api",
"method": "GET",
"tls_config": "CLOUDFLARE"
}'
Response Format
Success Response
{
"status": true,
"msg": "Success",
"data": {
"response": {
"status": true,
"status_code": 200,
"text": "Response body content",
"headers": {
"content-type": "application/json",
"server": "nginx"
},
"tls": {
"ja3": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513,29-23-24,0",
"ja3_hash": "e7d705a3286e19ea42f587b344ee6865",
"akamai": "1:65536,2:0,3:1000,4:6291456,6:262144|15663105|0|m,a,s,p",
"akamai_hash": "90224459f8bf70b7d0a8797eb916dbc9"
}
}
}
}
Error Response
{
"status": false,
"msg": "Error message description",
"error": "TIMEOUT"
}
Error Codes
| Error Code | Description |
|---|---|
INVALID_URL | The provided URL is malformed or invalid |
TIMEOUT | Request exceeded the timeout limit |
CONNECTION_ERROR | Failed to establish connection to target |
TLS_ERROR | TLS handshake failed |
RATE_LIMIT | Too many requests, please slow down |
INSUFFICIENT_CREDITS | Not enough credits in account |
TLS Fingerprint Details
The response includes detailed TLS fingerprint information:
- JA3 Hash: Client TLS fingerprint identifier
- Akamai Hash: Akamai-specific fingerprint
- Full JA3 String: Complete TLS parameters used
This allows you to verify the TLS configuration being used and track fingerprint consistency.
Pricing
- $0.002 per request (0.2ยข)
- Billed per successful request
- Failed requests are not charged
Best Practices
- Choose the Right Config: Use CLOUDFLARE for Cloudflare-protected sites, AKAMAI for Akamai protection
- Handle Timeouts: Set appropriate timeout values based on expected response time
- Retry Logic: Implement exponential backoff for transient errors
- Header Matching: Include appropriate headers that match the target site's expectations
Python Example
import requests
API_KEY = "your_api_key"
headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"}
payload = {
"url": "https://httpbin.org/get",
"method": "GET",
"tls_config": "CUSTOM"
}
response = requests.post(
"https://castlebreaker.cc/tls",
headers=headers,
json=payload
)
data = response.json()
if data.get("status"):
print("Success!")
print("Response:", data["data"]["response"]["text"])
print("JA3 Hash:", data["data"]["response"]["tls"]["ja3_hash"])
else:
print("Error:", data.get("msg"))
Node.js Example
const fetch = require('node-fetch');
const API_KEY = 'your_api_key';
const payload = {
url: 'https://httpbin.org/get',
method: 'GET',
tls_config: 'CUSTOM'
};
fetch('https://castlebreaker.cc/tls', {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
})
.then(res => res.json())
.then(data => {
if (data.status) {
console.log('Success!');
console.log('Response:', data.data.response.text);
console.log('JA3 Hash:', data.data.response.tls.ja3_hash);
} else {
console.log('Error:', data.msg);
}
});
Need more help? Check out our Error Handling Guide or Python Examples.