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
Input
| Field | Type | Description |
|---|---|---|
| url * | string | The URL to read and extract content from |
| include_links | boolean = false | If true, include up to 50 links found on the page |
| max_chars | integer = 8000 | Maximum characters of text to return (truncated with …) |
Output
| Field | Type | Description |
|---|---|---|
| url | string | Final URL after any redirects |
| title | string | Page title (from <title> tag) |
| description | string | Meta description or Open Graph description |
| text | string | Clean readable text extracted from the page body (scripts, styles, nav, footer removed) |
| word_count | integer | Approximate number of words in the extracted text |
| links | array | Links found on the page (only when include_links=true) |
| fetched_at | string | ISO 8601 timestamp of when the page was fetched |
| http_status | integer | HTTP 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
}