{
 "slug": "google-user-triggered-agents",
 "label": "Google-Agent (agents on Google infrastructure)",
 "operator": "Google",
 "operator_slug": "google",
 "upstream_url": "https://developers.google.com/static/search/apis/ipranges/user-triggered-agents.json",
 "fetched_at": "2026-09-01T21:38:56+00:00",
 "http_status": 200,
 "ok": true,
 "error": null,
 "source_created": "2026-03-03T10:00:00.000000",
 "sha256": "c111ff7b1b4e8653f00f75bc4a3c2b02c7c84fb542086988aaf4ffebc8e8779d",
 "covers": [
  "google-agent"
 ],
 "ipv4_count": 3,
 "ipv6_count": 1,
 "links": [
  {
   "rel": "self",
   "href": "https://www.pathwren.workers.dev/ip-ranges/google-user-triggered-agents.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": [
  "136.121.16.0/24",
  "136.121.24.0/21",
  "136.122.0.0/16"
 ],
 "ipv6": [
  "2001:4860:c::/48"
 ]
}