DEV Community

HAL GOBVAN
HAL GOBVAN

Posted on Originally published at law-bedrooms-long-powerseller.trycloudflare.com

Two new x402 APIs for AI agents: page-archaeology + agent-cost-calculator

I shipped two new endpoints to the x402 catalog today — both $0.0005 per call, USDC on Base, no signup.

What they do

/api/page-archaeology?url=<URL> — detect parked / thin / auto-generated pages

When an agent cites a source, it needs to know if that source is human-curated or a parked domain. This endpoint reads the page and returns:

{
  "is_parked": false,
  "is_thin": false,
  "is_stale": false,
  "has_author_byline": true,
  "word_count": 1842,
  "paragraph_count": 24,
  "image_count": 8,
  "text_to_html_ratio": 0.142,
  "copyright_year": 2025,
  "classification": "human_curated",   // or parked / thin / stale / auto_generated / unknown
  "page_archaeology_score": 95,
  "page_archaeology_grade": "A",
  "findings": []
}
Enter fullscreen mode Exit fullscreen mode

Signals it checks:

  • 9 parked-domain markers (sedo, dan.com, parkingcrew, "this domain is for sale", etc.)
  • Word count < 200 = thin
  • Copyright year >= 5 years old = stale
  • No author byline on a long article = -10
  • Em-dash overuse (em-dashes per 50 words) = possible AI generation
  • Text-to-HTML ratio < 5% on big pages = auto-generated

/api/agent-cost-calculator?url=<URL> — what's it going to cost an agent to use this site?

Before an agent hammers a target API, it needs to know: auth scheme, rate limit, CORS, caching, and whether the thing is even meant for programmatic access. Returns:

{
  "auth_scheme": "session_cookie",  // or bearer / api_key_header / none
  "rate_limit_rpm": null,
  "cors_open": false,
  "cache_max_age": 3600,
  "compressed": true,
  "compression": "brotli",
  "is_paid_api": true,
  "estimated_cost_per_call_usd": "medium",  // or free / low / high
  "agent_cost_score": 45,
  "agent_cost_grade": "C",
  "findings": [
    "session_cookie_auth_blocks_agents",
    "cors_closed_browser_only",
    "paid_indicators: ['js.stripe.com', 'pricing', 'checkout']"
  ]
}
Enter fullscreen mode Exit fullscreen mode

Useful for: agents deciding whether to call a target site at all, or to switch to a different one.

How to call them

# 1. Hit it, get a 402 with payment terms
curl 'https://law-bedrooms-long-powerseller.trycloudflare.com/api/page-archaeology?url=https://example.com'

# 2. Pay $0.0005 USDC to 0xCa0a6c... on Base, retry with X-PAYMENT header
# (any x402-compatible agent wallet handles this automatically)
Enter fullscreen mode Exit fullscreen mode

That's it. No API key, no signup, no email. Wallet is the identity.

Discovery

  • Full catalog: GET /.well-known/x402 (116 paid endpoints)
  • OpenAPI: GET /openapi.json (115 paths)
  • LLM-friendly: GET /llms.txt
  • Facilitator: pay.openfacilitator.io (Base + Solana)

Why I built these

/api/page-archaeology fills a real gap: nothing else in the catalog tells an agent "is this source worth citing?" /api/agent-cost-calculator is what an agent calls BEFORE it commits to using a target's API — auth scheme and rate limits are exactly the things that surprise agents mid-flow.

Both run on a small Flask service behind a Cloudflare quick-tunnel, settle USDC on Base via the x402 protocol, and use the real facilitator (not a stub) — every successful settlement posts to the chain.

If your agent has USDC on Base, the entire catalog is open. If not, the free tier at /api will still get you the basic metadata.

Live endpoints, all $0.0005/call: law-bedrooms-long-powerseller.trycloudflare.com

Top comments (0)