STEP 01: GET FREE TEST USDC
Get Test USDC
The x402 scraper runs on Base Sepolia testnet. Get free test USDC from the Circle Faucet — no cost, no credit card required. You need ~0.10 USDC per crawl request.
Open Circle Faucet# 1. Get free test USDC from Circle Faucet (Base Sepolia)
open https://faucet.circle.com
# Select "Base Sepolia" + paste your wallet address
# You'll receive 10 USDC for testing
# USDC contract on Base Sepolia:
USDC_ADDRESS=0x036CbD53842c5426634e7929541eC2318f3dCF7e
STEP 02: SIGN EIP-712 PAYLOAD & SUBMIT
Sign & Submit
First POST without payment to receive the 402 challenge. Sign the EIP-712 transferWithAuthorization payload with your wallet, base64-encode it, and include it as the X-PAYMENT header on your second request.
# 2. Build X-PAYMENT header (EIP-712 transferWithAuthorization)
# First, call POST /api/crawl without payment to get 402 body:
curl -X POST https://api.scrvo.com/api/crawl \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
# Response: 402 with accepts[] containing scheme, payTo, maxAmountRequired
# Sign EIP-712 payload, base64-encode, and submit with X-PAYMENT header:
curl -X POST https://api.scrvo.com/api/crawl \
-H "Content-Type: application/json" \
-H "X-PAYMENT: <base64-encoded-signed-payload>" \
-d '{"url":"https://example.com","formats":["markdown","html"]}'
# 202 response body contains jobId and pollUrl [ AWAITING AGENT SIGNATURE ]
PENDING HANDSHAKE WITH DISTRIBUTED EDGE NETWORK
PENDING HANDSHAKE WITH DISTRIBUTED EDGE NETWORK
STEP 03: POLL FOR RESULTS
Poll for Results
After a 202 response, use the jobId to poll GET /api/crawl/:jobId. The first 30-60 seconds may return 404 due to database replication lag — this is expected. Poll until status is completed.
# 3. Poll for results using jobId from 202 response
# Note: First 30-60s may return 404 (D1 eventual consistency -- expected)
curl https://api.scrvo.com/api/crawl/YOUR_JOB_ID
# Keep polling until status = "completed":
# {
# "jobId": "...",
# "status": "completed",
# "total": 1,
# "finished": 1,
# "records": [{ "url": "...", "markdown": "...", "html": "..." }]
# }
# Cancel a running job:
curl -X DELETE https://api.scrvo.com/api/crawl/YOUR_JOB_ID