agentsvc.io

services / webpage-reader

weboperational · 1924 ms

Webpage Reader

Fetch and extract clean readable text from any URL. Full JS rendering via Playwright — works on SPAs and dynamic sites. Returns title, text (cleaned content, default max 8000 chars), description, word_count, and optional links array. Ideal for web research, content summarization, or feeding page content to an LLM.

Run free trial ↗3 free calls per day with the example input. Paid: $0.006 USDC, no limit.

Call it

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/webpage-reader", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({"url":"https://example.com","max_chars":4000}),
});
const { data, payment } = await res.json();  // payment.transaction = on-chain receipt

Input

FieldTypeDescription
url *stringThe URL to read and extract content from
include_linksboolean = falseIf true, include up to 50 links found on the page
max_charsinteger = 8000Maximum characters of text to return (truncated with …)

Output

FieldTypeDescription
urlstringFinal URL after any redirects
titlestringPage title (from <title> tag)
descriptionstringMeta description or Open Graph description
textstringClean readable text extracted from the page body (scripts, styles, nav, footer removed)
word_countintegerApproximate number of words in the extracted text
linksarrayLinks found on the page (only when include_links=true)
fetched_atstringISO 8601 timestamp of when the page was fetched
http_statusintegerHTTP status code of the page response

Example response (data)

{
  "url": "https://example.com",
  "title": "Example Domain",
  "description": "This domain is for use in illustrative examples in documents.",
  "text": "Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.\n\nMore information...",
  "word_count": 34,
  "fetched_at": "2026-04-07T12:00:00.000Z",
  "http_status": 200
}