Webpage Summarizer Scraper avatar

Webpage Summarizer Scraper

Pricing

from $2.40 / 1,000 page summarizeds

Go to Apify Store
Webpage Summarizer Scraper

Webpage Summarizer Scraper

Batch-summarize public webpage URLs into deterministic summaries, key points, and cleaned-text provenance for research and content review.

Pricing

from $2.40 / 1,000 page summarizeds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Turn batches of anonymously reachable public links into structured, source-grounded summaries. This webpage summarizer fetches each URL, isolates readable text, and returns a concise deterministic extractive summary, key points, cleaned-text provenance, the final source URL, retrieval status, and timestamp.

It is designed for recurring research triage, editorial review, knowledge ingestion, and compact content-monitoring feeds. Unlike a generative webpage summarizer AI service, it uses source sentences rather than inventing new prose. No model API key is required.

What does Webpage Summarizer Scraper do?

For every unique public HTTP or HTTPS URL, the Actor:

  1. validates that the destination is not a local or private-network address;
  2. fetches server-delivered HTML with bounded redirects and transient retries;
  3. isolates readable main content;
  4. normalizes whitespace;
  5. ranks source sentences deterministically;
  6. builds a concise summary and key-point list;
  7. records text length, word count, extraction method, and SHA-256 hash;
  8. saves one typed success or error record.

The default dataset is ready for Apify API clients, webhooks, Make, Zapier, n8n, Google Sheets, and downstream databases.

Who is it for?

Researchers and analysts

Skim reading lists before deciding which pages deserve deep review. Keep the original URL and cleaned-text hash beside every digest.

Content and editorial teams

Create a repeatable first-pass review feed from public articles, documentation, and landing pages. Use retrieval status to separate unavailable sources from reviewed content.

Knowledge and RAG engineers

Send normalized source text, summaries, and provenance into an indexing pipeline. Disable full cleaned text when only a compact triage record is needed.

Automation builders

Schedule the same Task with a stable URL list. Compare contentSha256 values downstream to detect source-text changes before invoking expensive processing.

Why use deterministic extractive summaries?

Extractive output is auditable. Every summary sentence and key point comes from the extracted source text. Running the same source content with the same settings produces the same summary selection.

This approach offers:

  • no external AI account or model key;
  • no token bill;
  • no prompt variability;
  • source-grounded text suitable for review queues;
  • predictable batch behavior;
  • compact provenance for repeat runs.

It does not rewrite, translate, infer sentiment, or provide a human-quality abstractive interpretation. Use it when traceability and repeatability matter more than generated prose.

What data is returned?

FieldTypeMeaning
requestedUrlstringNormalized URL supplied to the Actor
finalUrlstring or nullFinal URL after bounded redirects
retrievalStatusstringsuccess or error
httpStatusnumber or nullSuccessful HTTP response status
titlestring or nullReadability or page-metadata title
summarystring or nullRanked source sentences in document order
keyPointsstring[]Highest-scoring source-grounded sentences
cleanedTextstring or nullNormalized readable text when enabled
extractionMethodstring or nullreadability or main-content-fallback
sourceContentTypestring or nullSource response Content-Type
sourceBytesnumber or nullDownloaded HTML byte size
cleanedCharacterCountnumber or nullComplete normalized-text character count
wordCountnumber or nullComplete normalized-text word count
contentSha256string or nullHash of complete normalized text
retrievedAtstringISO 8601 retrieval-attempt timestamp
errorstring or nullBounded page-level failure reason

Failed pages are represented explicitly rather than disappearing from the batch. Only successfully summarized pages incur the per-page event charge.

How to summarize webpage URLs

  1. Open the Actor in Apify Console.
  2. Add one or more URLs under Public webpage URLs.
  3. Choose the number of summary sentences and key points.
  4. Leave Include cleaned text enabled for extraction or RAG workflows.
  5. Disable it for a smaller monitoring or triage feed.
  6. Click Start.
  7. Open the Webpage summaries dataset view.
  8. Export JSON, CSV, Excel, XML, or RSS, or consume the dataset API.

The prefilled Wikipedia and Node.js pages are real public examples suitable for a first run.

Input parameters

ParameterDefaultLimitsDescription
startUrlsrequired1–500Public HTML webpage URLs
maxItems201–500Maximum unique URLs processed
summarySentences31–8Source sentences in the summary
keyPointCount51–10Key points returned
includeCleanedTexttruebooleanInclude normalized source text
maxTextCharacters1000001000–500000Text used and optionally returned
maxConcurrency51–10Parallel page requests
requestTimeoutSecs305–120Per-request timeout
maxRequestRetries20–5Retries for transient failures
maxContentBytes300000050000–10000000Maximum HTML response size
continueOnErrortruebooleanContinue and save error rows

Duplicate normalized URLs are processed once. URL fragments are removed because they do not change the HTTP resource.

Example input

{
"startUrls": [
{ "url": "https://en.wikipedia.org/wiki/Web_scraping" },
{ "url": "https://nodejs.org/en/learn/getting-started/introduction-to-nodejs" }
],
"summarySentences": 3,
"keyPointCount": 5,
"includeCleanedText": true,
"maxConcurrency": 2
}

Example output

The exact text and timestamp follow the live source at retrieval time. A successful record has this shape:

{
"requestedUrl": "https://en.wikipedia.org/wiki/Web_scraping",
"finalUrl": "https://en.wikipedia.org/wiki/Web_scraping",
"retrievalStatus": "success",
"httpStatus": 200,
"title": "Web scraping",
"summary": "Web scraping is the process of extracting data from websites. Web scraping software may directly access the World Wide Web using the Hypertext Transfer Protocol or a web browser.",
"keyPoints": [
"Web scraping is the process of extracting data from websites.",
"Web scraping software may directly access the World Wide Web using the Hypertext Transfer Protocol or a web browser."
],
"cleanedText": "Web scraping is the process of extracting data from websites...",
"extractionMethod": "readability",
"sourceContentType": "text/html; charset=utf-8",
"sourceBytes": 485321,
"cleanedCharacterCount": 38640,
"wordCount": 6201,
"contentSha256": "10fdd8e688259fb9464b325d65b08649b4c1f845aff25d4695b9399db5a88a7a",
"retrievedAt": "2026-09-10T12:00:00.000Z",
"error": null
}

How summaries and key points are selected

The Actor splits normalized readable content into sentences. It scores candidate sentences with:

  • capped term frequency across the page;
  • overlap with meaningful title words;
  • a modest early-document position signal;
  • stable source order as the tie breaker.

The highest-scoring sentences become key points. Summary sentences are reordered into document order for readability. The algorithm does not call an LLM and does not create facts absent from the extracted text.

Cleaned-text provenance and change detection

contentSha256 hashes the complete normalized extracted text, even when cleanedText is disabled or limited by maxTextCharacters. cleanedCharacterCount and wordCount also describe the complete extracted text.

A recurring workflow can:

  1. run on a schedule;
  2. upsert records by requestedUrl;
  3. compare the latest contentSha256 with the prior value;
  4. route changed pages to human or AI review;
  5. ignore unchanged pages.

The Actor emits snapshots, not alerts or historical comparisons itself. Store history in your own dataset, database, or automation workflow.

How much does it cost to summarize webpage URLs?

Pricing uses a one-time $0.005 start event plus a tiered charge for each successfully summarized page. At the BRONZE tier, a successful page costs $0.004. Error rows do not incur the page event.

Approximate BRONZE examples:

Successful pagesApproximate total
1$0.009
10$0.045
25$0.105
100$0.405

Apify plan tiers may use lower per-page event prices. The Console displays the active price for your account before a run.

Batch research-triage workflow

Use a URL list collected by a crawler, feed reader, spreadsheet, or analyst. Run this Actor with three to five summary sentences. Export the resulting rows to a review table. Sort or filter by title, status, word count, and retrieval time.

Because output is deterministic, reviewers can focus on source changes rather than model variation.

Compact recurring content-review workflow

Set includeCleanedText to false. Keep summary, keyPoints, contentSha256, lengths, final URL, and timestamp. This reduces dataset size while preserving a useful review record.

Schedule the Task in Apify Console and send results through a webhook. Compare hashes downstream before triggering a more expensive enrichment step.

RAG and knowledge-ingestion workflow

Keep includeCleanedText enabled. Use cleanedText as the source document and retain:

  • requestedUrl and finalUrl as citations;
  • retrievedAt for freshness;
  • contentSha256 for deduplication;
  • summary and keyPoints as triage metadata;
  • extractionMethod for quality diagnostics.

Chunking, embeddings, vector storage, and answer generation remain downstream responsibilities.

API access with cURL

Replace APIFY_TOKEN with your token:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~url-webpage-summarizer/run-sync-get-dataset-items?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://en.wikipedia.org/wiki/Web_scraping"}],
"summarySentences": 3,
"keyPointCount": 5
}'

For larger batches, start an asynchronous run and retrieve the default dataset after completion.

JavaScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/url-webpage-summarizer').call({
startUrls: [
{ url: 'https://nodejs.org/en/learn/getting-started/introduction-to-nodejs' },
],
summarySentences: 4,
keyPointCount: 6,
includeCleanedText: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python API example

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/url-webpage-summarizer').call(run_input={
'startUrls': [
{'url': 'https://docs.apify.com/platform/actors'},
{'url': 'https://crawlee.dev/js/docs/introduction'},
],
'includeCleanedText': False,
'summarySentences': 5,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/url-webpage-summarizer"

Claude Desktop setup

Add this server to Claude Desktop's MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/url-webpage-summarizer"
}
}
}

Cursor setup

Add the same mcpServers.apify.url value to your Cursor MCP configuration.

VS Code setup

Add the same HTTP endpoint to your VS Code MCP server configuration, then select automation-lab/url-webpage-summarizer as the tool.

Example prompts:

  • “Summarize these three public research links and return the key points with source URLs.”
  • “Create compact review records for these documentation pages without full cleaned text.”
  • “Extract clean text and provenance from this public article for my knowledge base.”

Reliability and retry behavior

The Actor retries network failures, HTTP 408/425/429, and temporary 5xx responses with bounded exponential backoff and jitter. It does not blindly retry stable client errors, private addresses, unsupported content types, oversized pages, or recognized challenge shells.

Redirects are limited to five. Every redirect destination is checked again against local and private networks. A batch can continue after page failures, or fail on the first page error with continueOnError: false.

If every URL fails, the run fails after saving diagnostic error records. This prevents an all-empty result from looking successful.

Limits and unsupported pages

This Actor supports anonymously reachable server-delivered HTML. It does not promise:

  • JavaScript-only content requiring a browser;
  • login-gated, paywalled, or private pages;
  • CAPTCHA or anti-bot bypass;
  • PDFs, office files, images, audio, or video;
  • sentiment, translation, fact checking, or abstractive rewriting;
  • semantic understanding equal to an LLM or human editor;
  • alert delivery or built-in snapshot history.

Navigation-heavy pages can produce less focused fallback text than article-like pages. Always inspect source links before making consequential decisions.

Troubleshooting

Why did I receive an error row?

Read the error field. Common causes are HTTP errors, non-HTML content, authentication challenges, response-size limits, private-network destinations, or too little readable text. Confirm that the URL opens anonymously and returns meaningful HTML.

Why is cleanedText null on a successful row?

includeCleanedText was disabled. The summary, key points, hash, text length, word count, extraction method, and source metadata remain available.

Why is the summary not rewritten in simpler language?

This is an extractive summarizer. It deliberately selects source sentences for determinism and auditability. Use a downstream generative model when paraphrasing is required.

Why did a JavaScript application return little text?

The direct HTML response may contain only an application shell. This Actor does not launch a browser. Use a browser-rendering extractor for that source, then summarize the resulting text downstream.

Process only content you are permitted to access and use. Respect website terms, robots guidance, copyright, privacy, and applicable laws. Do not use the Actor to access private systems, bypass authentication, or collect sensitive personal information.

A summary is not a substitute for the source. Retain attribution, verify important claims, and follow the final source URL.

FAQ

Does it use AI?

No external generative model is called. The ranking algorithm is deterministic and extractive.

Yes. Provide up to 500 input URLs and set maxItems to your desired bound.

Are failed pages charged?

No per-page event is charged for an error record. The one-time run start event still applies.

Can it monitor changes?

It supplies timestamps and a cleaned-text hash designed for downstream comparison. Scheduling, history, and alerts are configured in Apify or your automation stack.

Can it summarize PDFs?

No. The source response must be HTML or XHTML.

Does it follow redirects?

Yes, up to five public HTTP(S) destinations. Each destination is validated against private-network access.

Choose this Actor when the primary output is a compact, deterministic summary record with key points and cleaned-text provenance.