F
FreeConvertingTools

Free Extract URLs Online

Extract all URLs from any text. Filters valid links and removes duplicates.

FreeNo SignupAPI Available

Ad space

Ad space

How to use the Extract URLs

  1. 1

    Open the Extract URLs tool

  2. 2

    Enter your data or upload your file

  3. 3

    Adjust settings if needed

  4. 4

    Get instant results

  5. 5

    Download or copy your output

Available as API

Integrate this tool into your app.

View documentation

Frequently asked questions

Is the Extract URLs free?

Yes, our extract urls is 100% free with no limits, no signup, and no watermarks.

Do I need to create an account?

No. You can use the extract urls without any registration. Just open it and start using it.

Is my data safe?

Yes. Any files you upload are automatically deleted after 5 minutes. We never store, share, or access your data.

Does this work on mobile?

Yes. The extract urls is fully responsive and works on phones, tablets, and desktops.

Is there an API for this?

Yes. All our tools are available as API endpoints for developers. Check our API documentation for details.

When a document, chat export, or scraped page has links scattered through it in no particular pattern, the quickest way to get a usable list is to extract urls automatically rather than clicking through the text hunting for http:// and https:// by hand. Paste the source in, and every recognizable link gets isolated, optionally deduplicated, and returned as a plain list ready to copy or save. This page explains what the tool actually treats as a URL, how the mailto and tel options change what gets picked up, where pulling links out this way genuinely beats the alternatives, and what a pattern-based approach can and can't catch.

How the Extract URLs Tool Works

The interface is one text box on the left and a running results list on the right, updating live:

  • Paste any block of text into the input area — an article, a chat log export, raw HTML source, a spreadsheet dump, anything with links buried in it.
  • The core match looks for anything starting with http:// or https:// followed by a continuous run of non-whitespace characters, which covers the overwhelming majority of links you'll encounter in ordinary text.
  • Flip on Include mailto: to also capture mailto-style links, which is on by default and picks up email links embedded as clickable references rather than plain addresses.
  • Flip on Include tel: if the source text has clickable phone number links you want pulled out alongside the web addresses — this one is off by default since it's a narrower use case.
  • Toggle Remove duplicates to collapse repeated links to one instance, which is useful for anything with the same link repeated across multiple mentions, like a footer link appearing on every page of a scraped site.
  • Copy any single result with the button next to it, copy the whole list at once, or download the results as a .txt file or a .csv file, depending on what you need next.

If you're pulling links out of text as a repeated, automated step rather than a manual paste, the identical extraction logic is available as an API endpoint at /docs, letting a script submit text and get the link list back directly.

Why Pull Links Out of Text

Isolating every link in a document turns out to be useful across a wide range of everyday tasks:

  • Auditing a page before publishing. Pasting a draft's raw content in surfaces every outbound link at once, which makes it far easier to spot a broken URL, a leftover staging link, or an affiliate link that shouldn't be there before it goes live.
  • Collecting sources from research notes. When you've been copying quotes and citations into a single notes document while researching, extracting every link at the end recovers the full source list without having to track each one down as you went.
  • Rebuilding a reading list from a saved chat or email thread. Group chats and long email threads accumulate shared links throughout the conversation, and pulling them all out in one pass beats scrolling back through the whole history looking for them.
  • Checking what a scraped page actually links to. Pasting a page's raw HTML source reveals every link on the page, including ones buried in navigation menus or footers that aren't obvious from just reading the rendered page.
  • Migrating content between platforms. When moving a document or set of notes to a new tool, extracting every link first gives you a checklist to verify against once the content lands in its new home, so nothing gets silently dropped in the move.

There's also a straightforward SEO angle to this that's easy to overlook: pulling every outbound link from a page's raw HTML source is a fast way to get a rough sense of how heavily a page links out, and to whom, without needing a full crawler or a paid audit tool for what's often just a quick sanity check on a single page.

Technical Deep Dive: What Counts as a URL Match

The underlying pattern is built around the scheme prefix — http:// or https:// — followed by everything up to the next whitespace character or one of a small set of characters that commonly end a URL in running prose, like a closing angle bracket, quote mark, or curly brace. That last part matters more than it might seem: without excluding those characters, a URL sitting inside an HTML attribute or wrapped in angle brackets would swallow the surrounding markup into the match itself.

This approach intentionally does not attempt scheme-less matching. A bare domain typed without http:// or https:// in front of it — something like example.com/page written in casual prose — will not be picked up, because distinguishing a genuine bare-domain reference from an unrelated string containing a dot is unreliable without a lot of false positives creeping in. The tradeoff is deliberate: catching every scheme-prefixed link with high precision beats catching some bare domains at the cost of also catching things that only look like domains.

Trailing punctuation is one of the more common sources of imperfect matches. A URL that ends a sentence, followed immediately by a period, will sometimes include that period as part of the match depending on what follows it in the source text. It's worth a quick glance at results ending in stray punctuation before using the list downstream, particularly if you're feeding the output straight into another system.

Protocol-relative links — written as //example.com/page without an explicit http or https in front — are another case the pattern doesn't catch, since the match specifically requires the scheme prefix to be present. These show up occasionally in older HTML source, where a page deliberately omits the protocol so the browser reuses whichever one loaded the current page. Similarly, a raw IP address used in place of a domain name, like http://192.168.1.1/admin, matches without any trouble at all, since the pattern only cares about the scheme prefix and doesn't inspect what comes after it beyond the terminating characters.

FactorScheme-prefixed matchingBare-domain matching
PrecisionHighLower — many false positives
Recall on casual textMisses unprefixed mentionsCatches more, at a cost
Handles mailto:/tel: linksYes, as separate togglesNot applicable
Risk of swallowing markupLow, with delimiter exclusionsHigher
Typical source materialArticles, chats, HTML, exportsInformal notes mentioning sites by name

Extract URLs vs Manual Review or Browser Extensions

A few other approaches exist for the same underlying task, each with a real cost attached:

  • Scanning the text visually. Workable for a short message, but slow and unreliable for anything longer than a paragraph, especially when links are visually similar or wrapped across multiple lines by the source formatting.
  • Browser extensions that list page links. These work well for a currently open web page, but they can't process arbitrary pasted text, a saved chat export, or a document that isn't loaded as an actual page in the browser.
  • Command-line matching with grep or a similar tool. Fast and scriptable once you know the syntax, but it requires the text to already exist as a file on disk and comfort writing a working pattern from memory.
  • A browser-based extractor built for this. Works on pasted text directly, with mailto and tel handling and deduplication already built in as switches rather than something you configure by hand each time.

For a one-off cleanup task, the browser tool is simply less setup. For a recurring job — say, pulling links from every new support ticket as it comes in — the API route removes the manual paste step from the loop entirely. Both routes apply the exact same scheme-prefixed matching rules described above, so switching from manual paste to an automated API call won't change which links get picked up.

How Your Text Is Processed

The matching runs entirely inside your browser using JavaScript, which means the text you paste is never transmitted to a server to get a result back — the whole extraction happens on your own device. That holds whether you're pasting a short paragraph or an entire page's HTML source. Nothing about what you paste here gets stored, logged, or seen by us, which matters if the source material includes anything you'd rather not send off your own machine. It also means there's no upload progress bar or processing delay to wait through — the results list updates the moment you stop typing or finish pasting, since there's no network round trip involved at any point.

Common Questions About Extracting URLs From Text

Does it catch shortened links like bit.ly or t.co?

Yes, as long as they start with http:// or https:// in the source text, which shortened links almost always do when they're presented as clickable references. The tool doesn't try to expand or resolve them — it just captures the shortened form as written.

What happens with a URL that contains query parameters and special characters?

Those are captured in full, since the match continues until it hits whitespace or a small set of terminating characters, not at the first ampersand or equals sign. A long URL with several tracking parameters comes through as one complete string.

Will it pull links out of a Word document if I paste the text in?

Yes, as long as the pasted text preserves the visible URL string, which is typically the case when copying from Word into a plain text box. Formatting like hyperlink styling is lost in the paste, but the underlying link text usually comes through intact.

Can I extract only mailto links and skip regular web addresses?

Not directly — the tool always looks for standard web links as the base case, with mailto and tel as additional toggles layered on top rather than a replacement mode. You'd need to filter the combined results afterward if you only want the mailto entries.

Why do some results include a trailing slash and others don't?

That reflects exactly how the link was written in the source text — the extractor doesn't normalize or add a trailing slash, it just captures the string as it appears. If the source is inconsistent, the output will be too.

Is there a practical limit on how many links it can find in one pass?

No fixed limit is enforced, though very large documents with thousands of links will take a moment longer to render in the results panel, since every match gets its own row in the list.

Related Tools

When a document mixes web links with contact details, Extract Emails handles the address side using the same paste-and-scan approach described here. Once you have a raw link list, Sort Lines and Duplicate Line Remover give you finer control over ordering and cleanup than the built-in toggles alone. Find and Replace is useful for stripping a common prefix or tracking parameter across every link at once before you use the list elsewhere. And if you're sizing up how much content you're working through in the first place, Word Counter gives a fast read on the source document's length.

Ad space

Related tools

Ad space