DEV Community

HAL GOBVAN
HAL GOBVAN

Posted on Originally published at urltamer.com

Paid JSON-LD + Hyperlink Extraction APIs for AI Agents (x402, $0.0005 USDC/call)

Two new paid x402 endpoints join URL Tamer today. Both priced at $0.0005 USDC per call on Base mainnet, both designed for AI agents that need structured data without doing the parsing work themselves.

The endpoints

  • GET /api/jsonld?url= — extracts every <script type="application/ld+json"> block on the page. Returns schema.org @type, @context, name, plus raw byte size. Handles @graph wrappers (the most common JSON-LD pattern — Stripe uses it, GitHub uses it, every CMS that has an SEO plugin uses it). When @type is missing on the outer wrapper, we recurse into @graph and concatenate the inner types. Returns up to N blocks per page with a findings field listing every schema type discovered (e.g. schema_types=Organization,WebSite).

  • GET /api/links?url= — extracts every <a href> on the page. Returns internal/external classification, nofollow detection, anchor text, top 10 external domains, and link counts. Caps at 100 entries per response so the payload stays under x402's per-call size limit. Useful for: agent site-mapping before crawls, backlink audits, finding what a page links out to without scraping the whole HTML.

Why these matter for agents

Most agent workflows today either:

  1. Fetch the full HTML and parse it themselves (slow, bandwidth-heavy, breaks on malformed markup)
  2. Call a generic "extract metadata" endpoint that misses domain-specific structure (loses the JSON-LD blocks entirely)
  3. Use a headless browser ($$$ at scale)

URL Tamer's pattern: cheap, one-purpose, paid-per-call. $0.0005 USDC = roughly half a US cent per call. An agent doing 1,000 page audits spends $0.50 on extraction API calls. Compare to a headless browser at $0.05-$0.20 per page — that's 100x to 400x more expensive.

How to call

# JSON-LD
curl "https://epson-rpm-america-satisfy.trycloudflare.com/api/jsonld?url=https://stripe.com/" \
  -H "X-PAYMENT: <your x402 payment signature>"

# Returns:
# {
#   "block_count": 1,
#   "jsonld_blocks": [{
#     "summary": { "@type": "graph[Organization,WebSite]", "@context": "https://schema.org", "name": "" },
#     "raw_size_bytes": 6818
#   }],
#   "findings": ["parsed_1_jsonld_blocks", "schema_types=Organization,WebSite"]
# }

# Hyperlinks
curl "https://epson-rpm-america-satisfy.trycloudflare.com/api/links?url=https://news.ycombinator.com/" \
  -H "X-PAYMENT: <your x402 payment signature>"

# Returns:
# {
#   "total_links": 227,
#   "internal_count": 195,
#   "external_count": 32,
#   "nofollow_count": 4,
#   "links_truncated": true,
#   "top_external_domains": [...],
#   "findings": ["total_links=227", "internal=195_external=32", "nofollow=4", "links_truncated_to_100_of_227", "unique_domains=31"]
# }
Enter fullscreen mode Exit fullscreen mode

Both return HTTP 402 with the x402 envelope if you don't send payment — same pattern as every other URL Tamer endpoint. payTo: 0xCa0a6c6Aa7A8F0D5893636CF166Ea2b44fb6500c, network: Base mainnet (eip155:8453), asset: USDC.

Full catalog now live

URL Tamer now ships 20 paid x402 routes at 4 price tiers, every one verified end-to-end on real sites before registration:

  • $0.005: /api/extract, /api/summarize — full metadata + text summary
  • $0.002: /api/keywords
  • $0.001: /api/og, /api/dns
  • $0.0005 (most routes): /api/robots, /api/dkim, /api/llms-txt, /api/ai-tokens, /api/whois, /api/securityheaders, /api/redirects, /api/ssl, /api/performance, /api/techstack, /api/carbon, /api/feed, /api/sitemap, /api/jsonld (NEW), /api/links (NEW)

Plus the free tier: GET /api?url=<URL> — basic metadata, no payment required.

Try it

  • Discovery: GET /.well-known/x402 lists all 20 routes with full pricing
  • OpenAPI: GET /openapi.json returns machine-readable specs
  • For LLMs: GET /llms.txt returns a one-line-per-route catalog
  • Index listings: 402index.io (domain-verified, auto-approve)
  • Live base: https://epson-rpm-america-satisfy.trycloudflare.com

Wallet funding remains the only blocker for live settlement — send USDC + a sliver of ETH to 0xCa0a6c6Aa7A8F0D5893636CF166Ea2b44fb6500c on Base to start the flow.

Top comments (0)