Extract data from a cluster
extract_from_clusterPull values out of the page source of every website in a cluster: contacts, social profiles, analytics and tag ids, anything a regular expression can match. Easiest: name ready-made presets - email (email addresses from mailto: links), phone (phone numbers from tel: links and schema.org telephone), whatsapp (WhatsApp numbers (wa.me and click-to-chat links)), telegram (Telegram usernames (t.me and tg:// links)), viber (Viber numbers (viber:// links)), line (LINE account links (line.me)), facebook (facebook.com page links), instagram (instagram.com profile links), x (x.com and twitter.com profile links), linkedin (linkedin.com personal and company profile links), youtube (youtube.com channel links and video links (youtu.be, embed)), tiktok (tiktok.com profile links), pinterest (pinterest profile links), threads (threads profile links), bluesky (bsky.app profile links), discord (Discord server invite links), github (github.com user and organization profile links), google_play (Google Play app ids (package names)), app_store (App Store app ids). Or write regex: PCRE in slashes, the first capture group is the value (with no group, the whole match), e.g. /data-site-id="([0-9]+)"/i. Up to 10 expressions, one column each. Works through the cluster in parts of up to 100 domains: call again with offset = next_offset until it is null. Costs extraction points: each website found in the index costs as many points as values found, 0.1 if none; the account tool shows the daily allowance. It reads every indexed page of a website, not only the home page. Every call is paid for, a repeat of the same websites too: keep the answer and go on from next_offset. The REST API gives the same as a file (format=csv). A worked example, from a niche to contacts: the read_docs page clusters/example-contacts.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"cluster": "<cluster>"
},
"name": "extract_from_cluster"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Domains to go through in this call. | |
| regex | No | Your own expressions, e.g. ["/hjid['\"]?\\s*[:=]\\s*([0-9]+)/"]. | |
| offset | No | Where to start in the cluster; next_offset from the previous call. | |
| cluster | Yes | Cluster id, from list_clusters or create_cluster. | |
| presets | No | Ready-made expressions by name, e.g. ["email", "phone"]. Presets and regex together: up to 10. | |
| include_empty | No | Also list websites where nothing matched. |