{
 "slug": "ahrefs-crawler",
 "label": "AhrefsBot and AhrefsSiteAudit",
 "operator": "Ahrefs",
 "operator_slug": "ahrefs",
 "upstream_url": "https://api.ahrefs.com/v3/public/crawler-ip-ranges",
 "fetched_at": "2026-09-01T21:38:57+00:00",
 "http_status": 200,
 "ok": true,
 "error": null,
 "source_created": null,
 "sha256": "4246eee9407d58fb030ee9f12776f974f628db4b4f91f8111847dd565fc63d45",
 "covers": [
  "ahrefsbot",
  "ahrefssiteaudit"
 ],
 "ipv4_count": 81,
 "ipv6_count": 0,
 "links": [
  {
   "rel": "self",
   "href": "https://www.pathwren.workers.dev/ip-ranges/ahrefs-crawler.json",
   "type": "application/json"
  },
  {
   "rel": "changes",
   "href": "https://www.pathwren.workers.dev/changes.json?since=105",
   "type": "application/json",
   "title": "What changed since your cursor — poll this instead of re-downloading this document",
   "cursor_param": "since",
   "head_cursor": 105,
   "min_poll_seconds": 21600,
   "how": "Read `cursor` from the response and send it back as `since`. It advances only when something really changed, so an unchanged answer is proof rather than luck — about 700 bytes, or a 304 with no body if you send back the ETag."
  },
  {
   "rel": "related",
   "href": "https://www.pathwren.workers.dev/ip-ranges/all.json",
   "type": "application/json",
   "title": "Every operator-published prefix, unioned and grouped by source"
  },
  {
   "rel": "related",
   "href": "https://www.pathwren.workers.dev/status.json",
   "type": "application/json",
   "title": "Freshness of every upstream IP-range source"
  },
  {
   "rel": "service-desc",
   "href": "https://www.pathwren.workers.dev/openapi.json",
   "type": "application/json",
   "title": "Every read endpoint, described formally"
  }
 ],
 "ipv4": [
  "142.44.220.0/24",
  "142.44.225.0/24",
  "142.44.228.0/24",
  "142.44.233.0/24",
  "148.113.128.0/24",
  "148.113.130.0/24",
  "15.235.27.0/24",
  "15.235.96.0/24",
  "15.235.98.0/24",
  "167.114.139.0/24",
  "168.100.149.0/24",
  "176.31.139.0/27",
  "198.244.168.0/24",
  "198.244.183.0/24",
  "198.244.186.193/32",
  "198.244.186.194/31",
  "198.244.186.196/30",
  "198.244.186.200/31",
  "198.244.186.202/32",
  "198.244.226.0/24",
  "198.244.240.0/24",
  "198.244.242.0/24",
  "202.8.40.0/22",
  "202.94.84.110/31",
  "202.94.84.112/31",
  "37.59.204.128/27",
  "5.39.1.224/27",
  "5.39.109.160/27",
  "51.161.37.0/24",
  "51.161.65.0/24",
  "51.195.183.0/24",
  "51.195.215.0/24",
  "51.195.244.0/24",
  "51.222.168.0/24",
  "51.222.253.0/26",
  "51.222.95.0/24",
  "51.68.247.192/27",
  "51.75.236.128/27",
  "51.81.103.240/28",
  "51.81.104.32/28",
  "51.81.105.16/28",
  "51.81.110.16/28",
  "51.81.110.48/28",
  "51.81.110.80/28",
  "51.81.111.0/28",
  "51.81.111.112/28",
  "51.81.111.128/28",
  "51.81.111.64/28",
  "51.81.163.16/28",
  "51.81.163.48/28",
  "51.81.163.64/28",
  "51.81.164.144/28",
  "51.81.164.192/28",
  "51.81.165.208/28",
  "51.81.165.80/28",
  "51.81.169.112/28",
  "51.81.169.192/28",
  "51.81.170.0/28",
  "51.89.129.0/24",
  "51.89.38.128/28",
  "51.89.39.48/28",
  "51.89.59.32/28",
  "51.89.69.32/28",
  "51.89.69.96/28",
  "51.89.71.144/28",
  "51.89.71.80/28",
  "51.89.72.0/28",
  "51.89.74.192/28",
  "51.89.83.48/28",
  "54.36.148.0/23",
  "54.37.118.64/27",
  "54.38.147.0/24",
  "54.39.0.0/24",
  "54.39.136.0/24",
  "54.39.203.0/24",
  "54.39.210.0/24",
  "54.39.6.0/24",
  "54.39.89.0/24",
  "92.222.104.192/27",
  "92.222.108.96/27",
  "94.23.188.192/27"
 ],
 "ipv6": []
}