agdata

Pay-per-call web data for AI agents: any URL as Markdown, screenshots, YouTube transcripts, Google Maps and Amazon reviews, job listings, news and search. No API key, paid per call with x402 stablecoins.

Hosted MCP Server

npx add-mcp 'https://agdata.shveik.dev/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

What can I ask?

Dedicated endpoints for the questions agents ask most, each with a fixed JSON shape. For everything else, unblocking reads any page.

people & social

Who is saying what

Posts, profiles and search results from the big social platforms. Replies under a post on X. Comments under a YouTube video. Comments under a TikTok video. Comments under an Instagram post.

  • instagram
  • tiktok
  • reddit
  • twitter
  • youtube
  • linkedin
  • x-replies
  • youtube-comments
  • tiktok-comments
  • instagram-comments
POST /x402/reddit
or POST /mpp/reddit
{"limit":5,"mode":"hashtag","query":"programming"}

places & reviews

What customers say

Google Maps places by search and location. Reviews of a place. Reviews of an Amazon product.

  • google-maps
  • google-maps-reviews
  • amazon-reviews
POST /x402/amazon-reviews
or POST /mpp/amazon-reviews
{"limit":10,"product":"B079JLY5M5"}

search & news

What is out there right now

Google Search results for a query. Current news articles for a query, in the language and country edition you pick. Web search with each result's page read as Markdown, in one call. Fast web or news search with up to 30 excerpted results, filterable by site and category.

  • google-search
  • google-news
  • web-search
  • search-plus
POST /x402/google-news
or POST /mpp/google-news
{"limit":10,"query":"openai"}

jobs & products

What is hiring, what is selling

LinkedIn job listings. Indeed job listings with salary and employer details. Amazon product search.

  • linkedin-jobs
  • indeed-jobs
  • amazon
POST /x402/indeed-jobs
or POST /mpp/indeed-jobs
{"country":"us","limit":10,"location":"Austin, TX","query":"nurse"}

unblocking · any page

Everything else: any URL in, clean Markdown out

When there is no dedicated endpoint, unblocking reads the page for you: it renders JavaScript, copes with common bot protection, and returns Markdown, HTML or text with title, language and final URL. Need to see it instead? Capture a screenshot or PDF. Need what a video says? Get its transcript.

  • unblock
  • screenshot
  • youtube-transcript
POST /x402/unblock
or POST /mpp/unblock
{"format":"markdown","url":"https://example.com/"}

→ [{ "finalUrl": "https://example.com/",
     "title": "Example Domain",
     "format": "markdown",
     "content": "# Example Domain ..." }]

Try also agproxy: Need a residential IP of your own? agproxy sells residential proxy traffic by the gigabyte and a raw fetch from a residential address, paid the same way.

Fetch only pages you may access; hosts are blocked on complaint (agdata@shveik.dev).

MCP server

MCP Every endpoint is also an MCP tool

The same routes are also an MCP server (streamable HTTP, stateless, latest and earlier protocol versions): one tool per route, paid with x402 inside the tool call. Point a client at https://agdata.shveik.dev/mcp: it lists the tools and answers a call with the quote. Each tool takes the same JSON as its endpoint, and the answer carries the settlement receipt.

any MCP client that can payshell

$ mcpc connect https://agdata.shveik.dev/mcp @agdata --x402 exact
$ mcpc @agdata tools-list
$ mcpc @agdata tools-call google-news query:=openai limit:=3

Listing the tools and getting a quote works in any MCP client. Paying needs a client that can sign x402 payments: mcpc --x402, Cloudflare Agents, or the x402 MCP SDK. Claude Desktop, Claude Code and Cursor cannot sign payments themselves. Streamable HTTP, stateless, latest and earlier protocol versions.

Two protocols, every endpoint

Pay the way your agent already does. x402 on Base and Polygon (plus Solana on some routes) or MPP on Base.

x402 · exact

The 402 carries a PAYMENT-REQUIRED header. Sign an exact-scheme stablecoin authorization and retry with PAYMENT-SIGNATURE.

Endpoints: /x402/<name>

MPP · evm charge

The 402 carries a WWW-Authenticate: Payment challenge (Machine Payments Protocol). Sign it and retry with Authorization: Payment.

Endpoints: /mpp/<name>

Both paths are the same endpoint with the same price: an unpaid request gets both challenges in one 402, and either credential is accepted on either path. Listed under x402, MPP and the OpenAPI document alike.

Why agents use it

A failed call is free A call that fails, or a page we can't fetch, isn't charged. A search that finds nothing keeps only a small fixed fee, and results you pay for but don't get are refunded unless the amount is too small to send.

No account, no key An unpaid request returns the quote, so you can see the price and what comes back before you sign anything.

Fixed-shape JSON The same fields on every call, with no recruiter, reviewer or executive personal data in the answers.

One bill, any rail x402 on Base and Polygon (plus Solana on some routes) or MPP on Base. Both protocols answer on every endpoint.

How it works

  1. POST a small JSON body. You get 402 with an x402 PAYMENT-REQUIRED header and an MPP WWW-Authenticate: Payment challenge that quote the price for exactly what you asked.
  2. Sign either one with a stablecoin authorization (EIP-3009): x402 exact or MPP evm / authorization.
  3. Retry with PAYMENT-SIGNATURE or Authorization and receive the JSON. The payment settles only once the data is in hand.

step 1 · the 402 challenge

$ curl -i -X POST https://<host>/x402/unblock
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: …
WWW-Authenticate: Payment …

or pay with pay.sh · Solanashell

$ pay curl -X POST https://<host>/x402/google-news \
    -H 'content-type: application/json' \
    -d '{"query":"lithium prices","limit":3}'
pay.sh sees the 402, signs the quote
with your wallet and retries for you.

All endpoints

  1. **POST** /{x402|mpp}/unblock Unblocker: any URL to clean Markdown powered by Apify
  2. **POST** /{x402|mpp}/instagram Instagram posts by profile, tag, search
  3. **POST** /{x402|mpp}/google-maps Google Maps places and businesses
  4. **POST** /{x402|mpp}/tiktok TikTok videos by user, hashtag, search
  5. **POST** /{x402|mpp}/linkedin LinkedIn profile lookup
  6. **POST** /{x402|mpp}/youtube YouTube video search and channel videos
  7. **POST** /{x402|mpp}/twitter X (Twitter) tweets by handle or search
  8. **POST** /{x402|mpp}/reddit Reddit posts by subreddit, user, search
  9. **POST** /{x402|mpp}/amazon Amazon product search
  10. **POST** /{x402|mpp}/google-search Google Search results (SERP)
  11. **POST** /{x402|mpp}/google-maps-reviews Google Maps reviews of a place
  12. **POST** /{x402|mpp}/youtube-transcript YouTube transcript of a video
  13. **POST** /{x402|mpp}/screenshot Website screenshot or PDF of any URL
  14. **POST** /{x402|mpp}/linkedin-jobs LinkedIn job listings for a search
  15. **POST** /{x402|mpp}/indeed-jobs Indeed job listings for a search
  16. **POST** /{x402|mpp}/google-news Google News articles for a search
  17. **POST** /{x402|mpp}/amazon-reviews Amazon customer reviews of a product
  18. **POST** /{x402|mpp}/web-search Web search with page content powered by Apify
  19. **POST** /{x402|mpp}/x-replies Replies to a post on X
  20. **POST** /{x402|mpp}/youtube-comments Comments under a YouTube video
  21. **POST** /{x402|mpp}/tiktok-comments Comments under a TikTok video
  22. **POST** /{x402|mpp}/instagram-comments Comments under an Instagram post
  23. **POST** /{x402|mpp}/search-plus Web or news search with excerpts powered by Firecrawl