CrawlForge MCP
Advanced Tool4 credits

summarize_content

Extractive summarization: sentences are taken from the source, never rewritten. The tool splits the text into sentences, discards fragments shorter than 20 characters, and returns the leading ones in the shape you ask for. No model is called, so the same page always summarizes the same way — and nothing can be invented.

Use Cases

Feed Previews

Generate a one-line teaser for each item in a link feed with summary_type: brief.

Digest Emails

Turn a list of articles into bullet points ready to paste into a newsletter.

Triage Before Reading

Decide whether a long page is worth a full extraction by looking at its first few sentences.

Search Result Snippets

Attach a consistent, quotable snippet to indexed pages, taken verbatim from the source.

Quotable Context

Because sentences are copied rather than paraphrased, the output can be quoted directly and cited.

Cheap Pre-Summaries

Shrink a page before sending it to a language model, so the model pays for fewer tokens.

Endpoint

POST/api/v1/tools/summarize_content
Auth Required
1 req/s on Free plan
4 credits

Parameters

This is a lead-sentence summarizer, not a ranked one: it returns the opening sentences of the text, in order. That works well on news and blog prose, where the point comes first, and poorly on pages that bury the conclusion.
NameTypeRequiredDefaultDescription
url
stringOptional-
Page to fetch and summarize. Scripts, styles, nav, header and footer are stripped first. Provide either `url` or `content`.
Example: https://example.com/blog/crawl-budgets
content
stringOptional-
Text to summarize directly, skipping the fetch. Takes effect only when `url` is omitted — if both are sent, the fetched page wins.
Example: Search engines allocate a finite number of requests...
max_sentences
numberOptional5
How many sentences to keep, 1 to 20. Ignored when `summary_type` is `brief`, which always returns one.
Example: 3
summary_type
stringOptionalextractive
`extractive` joins the sentences into one paragraph string. `key_points` returns them as an array of strings, one per sentence. `brief` returns the first sentence only, as a string.
Example: key_points
include_metadata
booleanOptionalfalse
Add the page's title, description, author and publish date as a `metadata` object. Only has an effect together with `url` — there is no metadata to read when you pass `content`.
Example: true
timeout
numberOptional10000
Fetch timeout in milliseconds, between 1000 and 30000. Only applies when `url` is used.
Example: 10000
respect_robots
booleanOptionaltrue
Respect the target site's robots.txt. Left at `true`, a path disallowed for `CrawlForge` is refused with 403 before anything is fetched and no credits are charged. Set it to `false` only for a target you have your own agreement with — the response then carries a `warnings` entry and the override is recorded against your API key.
Example: true

Request Examples

terminalBash
curl -X POST https://crawlforge.dev/api/v1/tools/summarize_content \
  -H "X-API-Key: cf_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/blog/crawl-budgets",
    "max_sentences": 3,
    "summary_type": "extractive",
    "include_metadata": true
  }'

Response Example

200 OK540ms
{
"success": true,
"data": {
"summary": "Search engines allocate a finite number of requests to each site, and that allowance is what people mean by crawl budget. Large sites hit the ceiling long before small ones do, usually through duplicate URLs rather than genuine pages. Faceted navigation is the classic offender, generating thousands of near-identical addresses from a single catalogue.",
"summary_type": "extractive",
"original_length": 613,
"summary_length": 352,
"compression_ratio": 0.57,
"sentences_used": 3,
"total_sentences": 5,
"metadata": {
"title": "Why crawl budgets matter — Acme Blog",
"description": "How search engines ration requests, and what to do about it.",
"author": "Dana Reyes",
"publish_date": "2026-08-14T09:30:00Z"
}
},
"credits_used": 4,
"credits_remaining": 996,
"processing_time": 540
}
Field Descriptions
data.summaryA string for `extractive` and `brief`, an array of strings for `key_points`. Type your client accordingly
data.original_lengthCharacters of source text after HTML stripping, not the raw page size
data.compression_ratio`summary_length / original_length`, rounded to two decimals. Lower is a tighter summary
data.sentences_usedSentences actually returned — lower than `max_sentences` on a short page
data.total_sentencesSentences found in the source, counting only those over 20 characters. Compare with `sentences_used` to see how much was left behind
data.metadataPresent only when `include_metadata` is true and a `url` was given. Individual fields are undefined when the page does not declare them
credits_usedFixed 4 credits per call, whatever the text length

Error Handling

Neither url nor content (400 Bad Request)

VALIDATION_ERROR. At least one of the two must be present. The same status covers a malformed url, a max_sentences outside 1-20, an unknown summary_type, or a timeout outside 1000-30000.

Page Too Large (413 Payload Too Large)

RESPONSE_TOO_LARGE. The fetched page exceeded the 25MB read limit and was refused rather than buffered.

Target Timed Out (504 Gateway Timeout)

FETCH_TIMEOUT. The page stopped responding while sending its body. Raise timeout, up to 30000ms.

Fetch Failed (502 Bad Gateway)

FETCH_FAILED. The response body could not be read — connection reset, or a body that is not decodable text.

Summarization Failed (500 Internal Server Error)

TOOL_ERROR. Nothing is charged for a failed call; credits are deducted only after the summary is produced.

Blocked by robots.txt (403 Forbidden)

The target site's robots.txt disallows this path for CrawlForge. Set respect_robots: false to override if you have your own agreement with the target — the override is recorded against your API key. The override does not reach a host on CrawlForge's permanent opt-out list, which is refused whatever respect_robots is set to. Only the url form is gated — summarizing content you supply fetches nothing, so it cannot be refused here.

Note: Text with no sentence over 20 characters produces No content to summarize under brief, and an empty result under the other types, rather than an error. Check total_sentences before using the summary.

Credit Cost

4 credits
4 credits per call
Flat rate whether you pass a URL or raw text, and whatever max_sentences you ask for. Failed calls are not charged.

What's Included:

Page fetch and boilerplate stripping when you pass a url

Sentence splitting with short-fragment filtering

Paragraph, bullet-list or single-line output

Length and compression statistics

Optional page metadata (title, description, author, date)

Plan Recommendations:

Free Plan: 1,000 one-time trial credits = 250 summaries

Hobby Plan: 5,000 credits = 1,250 summaries ($19/mo)

Professional Plan: 50,000 credits = 12,500 summaries ($99/mo)

Related Tools

extract_content
Get the article body first, then summarize it (2 credits)
analyze_content
Measure the text instead of shortening it (3 credits)
extract_with_llm
Abstractive summaries and structured output from a model (3 credits)
deep_research
Summarize across many sources instead of one (10 credits)
Ready to try summarize_content? Sign up for free and get 1,000 credits to start building.

Footer

CrawlForge MCP

Enterprise web scraping for AI Agents. 29 specialized MCP tools designed for modern developers building intelligent systems.

Product

  • Features
  • Playground
  • Pricing
  • Use Cases
  • Integrations
  • Alternatives
  • Changelog

Resources

  • Getting Started
  • API Reference
  • Templates
  • Guides
  • Blog
  • Glossary
  • FAQ
  • Sitemap

Developers

  • MCP Protocol
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Company

  • About
  • Contact
  • Privacy
  • Terms
  • Acceptable Use
  • Cookies

Stay updated

Get the latest updates on new tools and features.

Built with Next.js and MCP protocol

© 2025-2026 CrawlForge. All rights reserved.