Skip to main content

Confirm

Are you sure?

Summarize

Get a concise, AI-generated summary of a page's main content, formatted as Markdown. Useful for previews, digests, newsletters and triaging long articles.

This is an AI operation, metered against your AI allowance.

POST/summarize

Summarize a page

Body parameters

  • Name
    url
    Type
    string
    Required
    Required
    Description
    The absolute URL of the page to process. Rendered with headless Chrome, so JavaScript runs and redirects are followed.
  • Name
    report_to
    Type
    string
    Description
    Webhook URL — an http or https address URLpipe POSTs the result to when it's ready. Required for async requests (the default); omit it only when you send sync=true. A missing or invalid value returns 422.
  • Name
    sync
    Type
    boolean
    Description
    Process the request synchronously, returning the result inline in the response. Defaults to false (async: return a token now, deliver the result to report_to via webhook). See Async & sync modes for the full contract.
  • Name
    max_age
    Type
    string | integer
    Description
    How fresh a cached result must be to be accepted. Either an integer number of seconds (3600) or a duration string of the form "<number> <unit>" — units s/min/h/d/w (e.g. "2 hours", "3 days", "30m"). Defaults to 7 days, clamped to a max of 30 days; 0 always bypasses the cache. See Caching for all accepted units.

Response

Content type text/plain — a Markdown summary, typically three to five short paragraphs.

POST/summarize
curl -X POST https://urlpipe.dev/summarize \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
Response
The page introduces the Example Domain, a reserved domain name set
aside for use in documentation and illustrative examples.

It explains that the domain can be referenced in articles and other
literature without needing prior permission or coordination, and links
to further information maintained by IANA.
AI endpoints accept up to 1 MB of HTML. For the full content rather than a summary, use /markdown.

Responses

Status
When
Body
200 OK
The request succeeded.
Sync: the result, in this endpoint's format (see Response above). Async: a job token — { "token": "…", "status": "accepted" }.
422 Unprocessable Entity
The analysis failed, or a parameter was invalid (a bad max_age, or a missing/invalid report_to in async mode).
{ "error": "<message>" }
429 Too Many Requests
You've hit your monthly quota for this operation's category (checked only on a cache miss).
{ "error": "quota_exceeded", "category", "limit", "used", "resets_at" }
504 Gateway Timeout
Sync only: the analysis didn't finish within 60s. It keeps running — fetch it via GET /result/:token.
{ "error": "processing_timeout", "token": "…" }
401 Unauthorized
Missing or invalid API key.

Try it live — no API key needed

Run this endpoint against any URL right in your browser.

Open tool