---
title: Get All Text from Link
description: Get all the text content from a given URL
---

Download a web page by its address and get its readable text, without opening it in a tab.

## What it does

Get All Text from Link downloads the page at **URL** and turns its HTML into plain text: headings, paragraphs and list items are kept with their line breaks, while link and image addresses are left out. Long lines wrap at 120 characters. The text goes into the field named by **Output field name**.

The page is downloaded as the server sends it. Scripts on the page do not run, so text that a site loads afterwards with JavaScript (common on modern apps and feeds) is not included.

## When to use it

* Read an article or documentation page to summarise it or send it to an AI model.
* Watch a simple page for a word or a change, without opening it.
* Read many URLs from a list, one per item.

To read the page you are looking at (including content loaded by scripts), use [Get All Text](/nodes/extension/getalltext/) instead. To get the raw HTML, use [Get HTML from Link](/nodes/builtin/core/gethtmlfromlink/).

## Inputs and settings

* **URL** must be a full address starting with `https://` or `http://`. It can be an expression, such as `{{ $input.linkUrl }}`.
* **Timeout** is in milliseconds (10000 = 10 seconds).
* **Headers** let you send extra request headers, such as a cookie or a language preference (`Accept-Language: fr`).

## Outputs

The item holds the page text under **Output field name**, for example `{ text: "Page title\n\nFirst paragraph..." }`. Turn on **Include input fields** to keep the incoming fields next to it.

## Dependencies and credentials

None. This node needs no connection and has no slots for other nodes.

## Example workflow

Summarise any link you right-click:

1. [Context Menu](/nodes/builtin/trigger/contextmenu/) trigger, **Menu Contexts** `Link`.
2. Get All Text from Link, **URL** `{{ $input.linkUrl }}`, **Output field name** `text`.
3. [Summarize](/nodes/builtin/ai/localai/summarize/), **Text** `{{ $input.text }}`, **Length** Short.
4. [Display Markdown](/nodes/extension/displaymarkdown/) to show the summary.

## Common issues

* **"Invalid URL: …".** The address is malformed, or the request could not be sent at all. Check the address. If it is correct and the node runs in the web app, the site likely refuses requests from other websites; run the workflow from the extension.
* **"HTTP error! status: 403".** The site blocks automated requests or needs you to be signed in. Try adding headers, or use [Get All Text](/nodes/extension/getalltext/) on the page open in your browser.
* **"Request timeout".** The site took longer than **Timeout**. Raise it, for example to `30000`.
* **"No content found", or the text is nearly empty.** The page has no text in its HTML, often because it is built by JavaScript. Open the page and use [Get All Text](/nodes/extension/getalltext/) instead.

## Related nodes

* [Get HTML from Link](/nodes/builtin/core/gethtmlfromlink/): get the raw HTML to pick out specific parts.
* [Get All Text](/nodes/extension/getalltext/): read the text of a page open in a tab.
* [Http Request](/nodes/builtin/core/http-request/): call an API or send a custom request.
* [Summarize](/nodes/builtin/ai/localai/summarize/): shorten the text on your device.