Extract URLs from text and review the link list

Paste text to get HTTP, HTTPS and www link candidates, one per line. Choose whether to remove repeats or sort A–Z, review the list, then copy or download TXT.

Paste text to extract URL candidates

Processed in your browser · saves drafts when allowed Ready
URL candidates to review

Get a link list in three steps

01

Paste text containing links

Paste a passage, notes or copied content containing links into the input. The tool finds strings starting with http://, https:// or www.; links do not need to be on separate lines.

Choose which links to keep and how to order them

Your goalActionWhat to check
Find links inside textPaste text containing http://, https:// or www. and extract.Each match appears on one line. The www. prefix stays as written; https:// is not added.
Remove repeated occurrencesEnable Remove duplicates; it is on by default.Keeps the first spelling and compares the whole string without case, including paths and query values.
Keep discovery order or sort A–ZLeave Sort A–Z off to keep discovery order; enable it to sort the list.Sorting uses the full URL string, without grouping by domain. HTTP, HTTPS and www. forms are not automatically merged into one address.

The list contains link candidates for you to review. The tool does not visit destinations to confirm URL validity, availability or safety, and does not crawl a website for links.

If links are missing or differ from the source

An expected link is missing
Bare domains such as example.com, relative paths such as /article and FTP links are outside the detection patterns. If copying captured only a link label, copy its actual address and paste it. Split very large text into smaller passages.
Two addresses become one
If you need both /A and /a, or query values that differ only by case, disable Remove duplicates and extract again. Review which variants you need to keep before using the list.
A URL ending is trimmed or contains HTML escapes
Trailing closing parentheses, commas, periods, semicolons, ! and ? are removed, even when part of an address. HTML escapes such as & stay as written. Compare with the source, correct the input and extract again; if a meaningful ending is still trimmed, restore it when editing the exported list.

Drafts on this device when available

Text is extracted in the browser. When local storage is available, the input and options are kept for next time. Select Clear to remove this tool’s input, result and draft; copied text and downloaded TXT files stay where you saved them.

Comments & feedback

Rate this tool

Loading ratings…

Write a commentNo account needed

Do not share passwords, sensitive information or the contents of files you are processing.

Reviewed before posting. Email stays private.

Embed this tool on your websiteFree · Copy once, receive tool updates automatically

Paste the iframe into HTML, WordPress or any platform that supports embeds. The tool runs in the visitor’s browser; adjust its height and theme as needed.

View the embed guide and supported platforms →

<div style="max-width:900px">
  <iframe data-kitotool-embed src="https://kitotool.com/embed/en/url-extractor/" title="URL Extractor — KitoTool" width="100%" height="920" style="display:block;width:100%;border:1px solid #dbe3ee;border-radius:12px" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>
  <p style="margin:6px 2px 0;text-align:right;font:12px/1.5 system-ui,sans-serif;color:#64748b">Free tool by <a href="https://kitotool.com/en/url-extractor/" target="_blank" rel="nofollow noopener noreferrer" style="color:#2359d4;text-decoration:underline">KitoTool</a></p>
</div>

The code includes a visible credit below the iframe; its link uses nofollow for a widely distributed widget.

Optional: automatically resize the iframe

Add this script once to the page containing the iframe.

<script>
(function(){var origin="https://kitotool.com";function frames(){return document.querySelectorAll("iframe[data-kitotool-embed]")}function measure(f){if(f.contentWindow&&new URL(f.src).origin===origin)f.contentWindow.postMessage({type:"kitotool:measure"},origin)}window.addEventListener("message",function(e){if(e.origin!==origin||!e.data||e.data.type!=="kitotool:resize"||!Number.isFinite(e.data.height))return;frames().forEach(function(f){if(f.contentWindow===e.source&&new URL(f.src).origin===origin)f.style.height=Math.max(320,Math.min(12000,Math.ceil(e.data.height)))+"px";});});function connect(){frames().forEach(function(f){f.addEventListener("load",function(){measure(f)});measure(f)})}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",connect,{once:true});else connect()})();
</script>