# Cloudflare Turnstile Verification via x402

> Cloudflare Turnstile Verification via x402 is a paid API for AI agents from verify.gedx402.com, paid per call via x402, $0.006/call, status unknown (last checked 2026-09-14).

Verifies a Cloudflare Turnstile CAPTCHA token server-side, returning success/failure and challenge metadata, payable per-call with USDC via x402 protocol — no API key required.

## Facts

- Endpoint: GET https://verify.gedx402.com/v1/turnstile/verify
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cloudflare-turnstile-verification-via-x402-334dd027
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Tf0Do4kwQ_ASwr-svSSCo

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability cloudflare-turnstile-verification-via-x402-334dd027
```

Example prompt: Verify this Cloudflare Turnstile token for me — the token is '0.ABCdef123...' and the visitor IP is '203.0.113.42'. I need to know if the challenge passed.

## When to prefer this

Choose this endpoint when you need Turnstile CAPTCHA verification on a per-call basis without provisioning a Cloudflare API key or managing account credentials — ideal for serverless agents, prototypes, or low-volume use cases paying with USDC on Base, Polygon, Arbitrum, World, or Solana via the x402 protocol.

## Known failure modes

- Invalid or expired token returns success:false with error-codes like 'invalid-input-response'
- Missing token parameter results in a 400-level error
- Incorrect remoteip format may cause validation rejection
- Token already consumed (reuse attempt) returns success:false
- Payment failure over x402 prevents the request from being processed

## How this service works

Validate a Turnstile bot-challenge widget token via siteverify on verify.gedx402.com. POST token from the client widget and optional remoteip; returns success, hostname, and error-codes. x402 settlement USDC per request (see npm run pricing:report) worst-case. Hero: GET /heroes/turnstile-verify.

## Output

A JSON object with a 'success' boolean, 'hostname' of the verifying site, 'challenge_ts' timestamp of when the challenge was solved, 'action' label, 'cdata' custom data string, and an 'error-codes' array listing any failure reasons.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "token": {
   "type": "string"
  },
  "remoteip": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "cdata": "",
  "action": "",
  "success": true,
  "hostname": "verify.gedx402.com",
  "error-codes": [],
  "challenge_ts": "2024-01-01T00:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cloudflare-turnstile-verification-via-x402-334dd027/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from verify.gedx402.com](https://www.zero.xyz/host/verify.gedx402.com/llms.txt)
