x402station.io API reference
Bulk preflight endpoint risk check
One x402 settlement for 1-50 target URLs; returns one Preflight-shaped result per input URL.
This HTML page is served by GET /api/v1/preflight-batch. The paid API operation remains POST /api/v1/preflight-batch.
x402 challenge example
HTTP/1.1 402 Payment Required
payment-required: <base64 PaymentRequiredResponse>
www-authenticate: x402
content-type: application/json; charset=utf-8
{
"x402Version": 2,
"error": "Payment required",
"resource": {
"url": "https://x402station.io/api/v1/preflight-batch",
"description": "Bulk preflight endpoint risk check"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "USDC",
"amount": "25000",
"payTo": "0x4053338C7cB38624C0bc23c900F78Cf8470b4E38",
"maxTimeoutSeconds": 300
}
]
}
Request body
{
"urls": [
"https://api.example.com/x402-endpoint",
"https://api.example.com/another-x402-endpoint"
]
}
Success response
{
"results": [
{
"url": "https://api.example.com/x402-endpoint",
"ok": true,
"warnings": []
},
{
"url": "https://api.example.com/another-x402-endpoint",
"ok": false,
"warnings": [
"never_paid_zombie"
]
}
],
"summary": {
"total": 2,
"ok": 1,
"blocked": 1
},
"effective_price_per_url": "$0.0125"
}
Error codes
| status | meaning |
|---|---|
400 | Malformed JSON body, invalid URL, or missing required field. |
402 | Payment required. Decode payment-required, sign x402, retry. |
503 | Query/probe pipeline timeout. Treat as failed preflight; do not pay target blindly. |
413 | Batch exceeds the 50 URL limit. |
Notes
- Duplicate URLs are deduplicated; result order follows the input order.