agentsvc.io

x402 · USDC on Base · no API keys

Web services your agent can buy per call.

27 endpoints from $0.002. Scrape pages to Markdown, take screenshots, search, read PDFs, validate emails, fetch prices. Your agent hits HTTP 402, pays USDC on Base through x402 and gets JSON back. No account, no key, nothing to cancel.

Try any service freellms.txt for your agent
checking services

Charged only on success · on-chain receipt with every response · x402 v1 and v2

one paid call, end to end
$ curl -X POST https://agentsvc.io/api/v1/proxy/web-scrape \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com"}'

HTTP/2 402 Payment Required
{ "error": "payment_required",
  "accepts": [{ "scheme": "exact", "network": "eip155:8453",
                "amount": "4000", "asset": "USDC", "payTo": "0x622e…4F27" }],
  "hint": "This call costs $0.004 USDC. Use @x402/fetch or x402 (python)…",
  "try_free": "https://agentsvc.io/api/v1/try/web-scrape" }

$ # an x402 client signs $0.004 USDC and retries automatically

HTTP/2 200 OK
{ "success": true,
  "data": { "title": "Example Domain", "markdown": "# Example Domain\n\nThis domain is…",
            "word_count": 21 },
  "payment": { "settled": true, "transaction": "0x8f3a…c21e", "payer": "0x51b…9a0" } }

27 services

Everything a working agent needs, priced per call.

GET /api/v1/services ↗

Web

ServiceWhat you getPriceLatencyTry
webpage-readerFetch and extract clean readable text from any URL.$0.006~3.2 sfree ↗
web-searchSearch for factual information via DuckDuckGo + Wikipedia.$0.003~600 msfree ↗
news-searchSearch recent news articles by keyword.$0.003~1.2 sfree ↗
web-scrapeFetch any public URL and return the page as clean Markdown for LLM consumption (title, meta description, main content with headings/lists/links preserved).$0.004~3.5 sfree ↗
rss-fetchFetch an RSS 2.0, RSS 1.0 or Atom feed and return normalized JSON items (title, link, published_at ISO 8601, summary without HTML, author, guid).$0.002~1.5 sfree ↗

Visual

ServiceWhat you getPriceLatencyTry
screenshotCapture any URL as a PNG screenshot.$0.005~2.8 sfree ↗
html-to-pdfRender a URL or raw HTML string to PDF.$0.008~3.5 sfree ↗
image-resizeResize, crop-fit and convert images (PNG, JPEG, WebP, AVIF, GIF, TIFF, SVG input) to webp, png, jpeg or avif.$0.003~1.5 sfree ↗

Text & files

ServiceWhat you getPriceLatencyTry
translateTranslate text between 100+ languages.$0.002~500 msfree ↗
pdf-extractExtract all text from a PDF.$0.004~1.5 sfree ↗
ocrExtract text from images using Tesseract OCR.$0.008~4.0 sfree ↗

Data

ServiceWhat you getPriceLatencyTry
weatherReal-time weather + 3-day forecast.$0.002~400 msfree ↗
timezoneResolve a city name or coordinates to its IANA timezone and return the current local time, UTC offset, DST flag and weekday.$0.002~800 msfree ↗

Validation & infra

ServiceWhat you getPriceLatencyTry
ip-lookupResolve any IPv4 or IPv6 address to location and network data.$0.002~150 msfree ↗
dns-lookupResolve DNS records for any domain.$0.002~300 msfree ↗
qr-codeGenerate a QR code for any text or URL.$0.002~100 msfree ↗
email-validateValidate an email address: RFC 5322 format check, domain MX record lookup, disposable provider detection, and role address detection (e.g.$0.002~400 msfree ↗
ssl-checkInspect SSL/TLS certificate for any domain.$0.002~800 msfree ↗
whoisDomain registration lookup via RDAP (modern WHOIS).$0.002~700 msfree ↗
phone-validateParse and validate any phone number worldwide using libphonenumber.$0.002~50 msfree ↗
geocodeForward geocoding: address string → lat/lon.$0.002~600 msfree ↗
url-statusCheck whether a URL is reachable and what it returns: final status code, full redirect chain, response time, content-type, server header and content length.$0.002~1.2 sfree ↗
barcodeGenerate a barcode as PNG (base64): code128 (default), ean13, ean8, upca, upce, code39, itf14, gs1_128, isbn, datamatrix, pdf417, aztec or qr.$0.002~300 msfree ↗

Finance & crypto

ServiceWhat you getPriceLatencyTry
exchange-ratesLive forex rates from European Central Bank (ECB), updated hourly.$0.002~300 msfree ↗
crypto-pricesReal-time crypto prices, market caps, and 24h % changes via CoinGecko.$0.002~500 msfree ↗
stock-pricesReal-time stock data via Yahoo Finance.$0.002~800 msfree ↗
evm-balanceRead the ETH and USDC balance of any address on Base mainnet (chain 8453) straight from the chain, plus transaction count and how many x402 calls the USDC covers.$0.002~900 msfree ↗

How a purchase works

Two requests. No signup in between.

The first request returns the price. An x402 client signs a USDC transfer for exactly that amount and sends the same request again. We verify, run, settle, answer.

  1. 01

    Ask POST /api/v1/proxy/{slug}

    JSON body per input_schema. Response 402 with price, asset, network, payTo (body for x402 v1, PAYMENT-REQUIRED header for v2) and a plain-language hint.

  2. 02

    Pay PAYMENT-SIGNATURE: <base64>

    The client signs an EIP-3009 TransferWithAuthorization for the amount to our wallet and retries. Nothing leaves the wallet yet.

  3. 03

    Get 200 · payment.transaction: 0x…

    We verify with the facilitator, run the service, settle on Base and return data plus the transaction hash. If the service fails, the authorization is never used.

Client code

Eight lines, then every service is a paid function call.

npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agentsvc.io/api/v1/proxy/web-scrape", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ url: "https://example.com" }) });
console.log(await res.json());

Receiving wallet 0x622efA6Ceb83a5b6EdBC931332f4db68B7f74F27 · USDC contract 0x8335…2913 · chain 8453. Full reference in the docs.

Before you spend a cent

Straight answers.

Which wallet does my agent need?
Any EVM private key with USDC on Base mainnet (chain 8453). No ETH: the facilitator pays the gas. $1 USDC is roughly 300 to 500 calls.
What happens when a call fails?
Nothing is charged. We verify the payment, run the service, and only then settle on-chain. A 400 or 500 leaves your signed authorization unused.
x402 v1 or v2?
Both. v2 clients get the PAYMENT-REQUIRED header and send PAYMENT-SIGNATURE; v1 clients read the JSON body and send X-PAYMENT. Same price, same wallet.
Can my agent check quality before paying?
Yes. Every service has a free trial endpoint with the identical output (3 calls per service per day, heavy services 1).
Is there a rate limit on paid calls?
No fixed limit. Heavy browser services (screenshot, PDF, OCR) queue when the server is busy and return 503 without charging you.
How do I know a payment went through?
Every 200 response contains payment.transaction, a Base transaction hash you can open on basescan.org, plus the PAYMENT-RESPONSE header.