GET
/linksList every link on a page
Returns every anchor on the page, deduplicated, resolved to absolute URLs, with its visible link text and whether it points at the same origin.
Capped at 500 links per response; the counts reflect the full total.
$0.0015 per call60 req/minFree allowance applies
Request
curl -X GET "https://www.twotic.dev/v1/web-extract/links" \
-H "Authorization: Bearer $TWOTIC_KEY"const res = await fetch("https://www.twotic.dev/v1/web-extract/links", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.TWOTIC_KEY}`,
},
})
if (!res.ok) throw new Error(await res.text())
const data = await res.json()
console.log(res.headers.get("X-Twotic-Cost"))import os, requests
res = requests.get(
"https://www.twotic.dev/v1/web-extract/links",
headers={"Authorization": f"Bearer {os.environ['TWOTIC_KEY']}"},
)
res.raise_for_status()
data = res.json()
print(res.headers["X-Twotic-Cost"])package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequest("GET", "https://www.twotic.dev/v1/web-extract/links", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("TWOTIC_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(string(out))
fmt.Println(res.Header.Get("X-Twotic-Cost"))
}<?php
$ch = curl_init("https://www.twotic.dev/v1/web-extract/links");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("TWOTIC_KEY"),
],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);require "net/http"
require "json"
uri = URI("https://www.twotic.dev/v1/web-extract/links")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV.fetch('TWOTIC_KEY')}"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(req)
end
puts JSON.parse(res.body)
puts res["X-Twotic-Cost"]{
"mcpServers": {
"web-extract": {
"type": "http",
"url": "https://www.twotic.dev/api/mcp/web-extract",
"headers": { "Authorization": "Bearer tk_live_your_key" }
}
}
}Parameters
query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | required | The absolute URL to read links from.e.g. https://example.com |
Response
200The links found on the page.
{
"url": "https://example.com",
"count": 42,
"links": [
{
"url": "https://example.com/pricing",
"text": "Pricing",
"internal": true
},
{
"url": "https://github.com/example",
"text": "GitHub",
"internal": false
}
],
"external": 11,
"internal": 31
}As an agent tool
Connect https://www.twotic.dev/api/mcp/web-extract and this endpoint is exposed as the tool web-extract_links.
Return every outbound link on a web page, deduplicated and resolved to absolute URLs, each labelled internal or external. Choose this when you need a page's link graph — crawling, broken-link auditing, or finding where a page points — rather than its readable content. Requires `url`. Use the extract tool instead if you need the article text.