MCP server: One MCP server.

Vend API Merchant

@paypercallRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Pay-per-call web intel: extract, search, link check, domain, geo, Nano. Settled via Nano x402.

Web scrapingv1.0.4MITPython
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

What it does

5 read4 other

Grouped by tool name. At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

9 · grouped by tool name · checked 12 Oct 2026

Read · 5Look things up

  • check_link
  • web_search
  • geoip_lookup
  • check_url_status
  • mcp_find

Other · 4Neither hinted nor named

  • extract_url
  • domain_info
  • nano_account_info
  • youtube_transcript
Try it in the Inspector
README2 min read

Vend — Autonomous API Merchant

Pay-per-call APIs settled in Nano (XNO). No signup, no API keys — just HTTP 402 with an x402 v2 challenge.


Endpoints

EndpointPrice (XNO)What it does
GET /api/v1/extract?url=0.0001Extract clean text/markdown from any web page
GET /api/v1/check-link?url=0.0001Check HTTP status, response time, redirect chain
GET /api/v1/status?url=0.0001URL status, redirects, TLS expiry, content-drift
GET /api/v1/domain-info?domain=0.0005Full domain intelligence: DNS, WHOIS, SSL, HTTP headers
GET /api/v1/web-search?q=0.0001Web search via DuckDuckGo — titles, URLs, snippets
GET /api/v1/geoip?ip=0.0001IP geolocation — country, city, coordinates, ISP, ASN
GET /api/v1/youtube-transcript?url=0.0005Captions + timestamped transcript from a YouTube video
GET /api/v1/nano-info?account=0.0005Nano account intelligence — balance, representative, block count, frontier, weight, pending
GET /api/v1/youtube-transcript?url=0.0005Captions/transcript from a YouTube video
GET /api/v1/select?url=&selector=0.0001CSS-selector structured field extraction from a page (prices, headings, links)
GET /api/v1/links?url=0.0001Extract every anchor link on a page as structured JSON (crawl, audit, sitemap)
GET /api/v1/pdf-extract?url=0.0005Extract text from a PDF URL, page-structured, ready for LLM consumption
GET /api/v1/ai-jobs?q=0.0002Search 19,800+ live AI/AI-adjacent job postings with filters
GET /api/v1/arxiv-paper?arxiv_id=0.0001Clean arXiv paper metadata by ID or search: title, authors, primary category, abstract, published, DOI, PDF link

Quick buyer guide

BUYERS_GUIDE.md — full step-by-step walkthrough with curl, Python, JavaScript, and wallet instructions.
The short version: call any endpoint -> get 402 -> send Nano -> retry with block hash.

How it works (buyer flow)

1. GET /api/v1/extract?url=https://example.com
   → HTTP 402 with x402 payment challenge

2. Send 0.0001 XNO to nano_1yo6c1t64ahfjdw1dxizmbbnpdmbrckwhw9phbg5pdkeubrizga4qhnjmnx7
   → Get back a 64-char block hash

3. GET /api/v1/extract?url=https://example.com  -H "X-PAYMENT: <block-hash>"
   → HTTP 200 with the extracted text

Python example

python
import httpx

# Step 1: Probe unpaid
resp = httpx.get("https://search.paypercall.dev/api/v1/web-search?q=nano")
assert resp.status_code == 402
challenge = resp.json()

# Step 2: Extract payment info
accept = challenge["accepts"][0]
print(f"Pay {challenge['price_xno']} XNO to {accept['payTo'][:15]}...")

# Step 3: Send Nano payment, get block hash (use your wallet)
# Step 4: Retry with payment
result = httpx.get(
    "https://search.paypercall.dev/api/v1/web-search?q=nano",
    headers={"X-PAYMENT": "your-64-char-block-hash"}
)
print(result.json())

See examples/python-buyer.py for a full working script with error handling.

Conformance

All endpoints pass the Stelar x402 Doctor at 100.0/A:

x402 v2 challenge in both header and body. Per-endpoint subdomains. Bazaar input schema on every endpoint.

Discovery

Running locally

bash
# Our package is not on PyPI yet (the `vend` name on PyPI is an unrelated packaging tool).
# Run from this repo instead:
uv sync
export VEND_WALLET_ADDRESS="nano_..."
uv run python -m vend

License

MIT

Similar modules

Browse Web scraping