Back to Home
Previous
Next
中文文档
Aws Waf
Pricing
- Only seamless mode consumes 150 points, requires challenge_url, only_sense
- Inputting proxy gets half price discount (not applicable for seamless mode)
Description
- AWS WAF verification, usually does not require ua/proxy consistency
- When you see aws-waf-token in cookies, it means AWS WAF verification exists, usually in the following cases:
-
- Status code 405 triggers captcha (direct GET request triggers captcha, you can directly pass href; for POST or other cases, please submit the HTML that triggers the verification)

-
- Seamless verification, but challenge.js in HTML and aws-waf-token in cookies (pass challenge_url (redirected address contains .token or challenge.compact.js), only_sense gets discount)

-
- Not triggered by direct homepage request, but appears after clicking a button, and api_key is present in parameters; pass challenge_url (address contains .token), api_key

-
- For www.amazon.com, captcha is triggered but aws-waf-token is not needed, requires captcha-voucher; pass challenge_url containing captcha.js, and captcha_type (problem API problem parameter)

Request URL (POST):
Version |
API URL |
Universal |
http://api.nocaptcha.io/api/wanda/aws/universal |
Parameter Name |
Description |
Required |
User-Token |
User secret, get from homepage |
Yes |
Content-Type |
application/json |
Yes |
Developer-Id |
Developer ID, for developer users, string from homepage invite link (e.g. xxx/register?c=abcdef, then abcdef is Developer ID) |
No |
POST Data (JSON):
Parameter Name |
Type |
Description |
Required |
href |
String |
Page URL that triggers AWS WAF verification |
Yes |
html |
String |
For non-default request triggers, you can pass the captcha page HTML |
No |
user_agent |
String |
Custom user_agent |
No |
challenge_url |
String |
For seamless verification, pass (redirected address contains .token), gets discount |
No |
only_sense |
Boolean |
For seamless verification, pass, gets discount |
No |
api_key |
String |
See case 3 above, required |
No |
captcha_type |
String |
See case 4 above, required |
No |
json example
{
"href": "https://example.com",
"challenge_url": "https://example.com/.token...",
"only_sense": true,
"user_agent": "Mozilla/5.0 ...",
"api_key": "xxxx",
"captcha_type": "problem"
}
{
"href": "https://nft.porsche.com/onboarding@6"
}
{
"href": "https://www.amazon.com/ap/cvf/request?arb=769b3899-80eb-4224-b47b-8af60b009d37&language=zh",
"challenge_url": "https://ait.2608283a.us-east-1.captcha.awswaf.com/ait/ait/ait/captcha.js",
"captcha_type": "toycarcity"
}
Response Data (JSON):
Submit Verification (submit=true)
Parameter Name |
Type |
Description |
status |
Integer |
Whether the call was successful, 1 for success, 0 for failure. Use this value to judge |
msg |
String |
Chinese description of the result |
id |
String |
The unique request ID for this particular request (can be used for subsequent record queries) |
data.aws-waf-token |
String |
The available aws-waf-token cookie returned after successful verification, can be used for subsequent verification APIs |
data.captcha-voucher |
String |
The captcha voucher returned during captcha verification, can be used for subsequent verification APIs |
cost |
String |
Verification time taken (in milliseconds) |
{
"status": 1,
"msg": "验证成功",
"id": "639e056b-49bd-4895-94ab-68d59e00873e",
"cost": "2635.12ms",
"data": {
"aws-waf-token": "xxxx"
}
}
{
"status": 1,
"msg": "验证成功",
"id": "639e056b-49bd-4895-94ab-68d59e00873e",
"cost": "2635.12ms",
"data": {
"captcha-voucher": "xxxx"
}
}
Call Example
Nodejs
const axios = require('axios');
async function verifyAWSWAF() {
const response = await axios.post('http://api.nocaptcha.io/api/wanda/aws/universal', {
href: 'https://example.com',
challenge_url: 'https://example.com/.token...',
only_sense: true,
user_agent: 'Mozilla/5.0 ...',
api_key: 'xxxx',
captcha_type: 'problem'
}, {
headers: {
'User-Token': 'your_user_token',
'Content-Type': 'application/json',
'Developer-Id': 'your_developer_id' // optional
}
});
console.log(response.data);
}
verifyAWSWAF();
Python
import requests
url = "http://api.nocaptcha.io/api/wanda/aws/universal"
payload = {
"href": "https://example.com",
"challenge_url": "https://example.com/.token...",
"only_sense": True,
"user_agent": "Mozilla/5.0 ...",
"api_key": "xxxx",
"captcha_type": "problem"
}
headers = {
"User-Token": "your_user_token",
"Content-Type": "application/json",
"Developer-Id": "your_developer_id" # optional
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())