[{"data":1,"prerenderedAt":183},["ShallowReactive",2],{"doc:\u002Fapi-reference\u002Fendpoints\u002Fasn":3},{"page":4,"toc":180},{"path":5,"title":6,"description":7,"blocks":8},"\u002Fapi-reference\u002Fendpoints\u002Fasn","Network CIDR lookup","Inspect canonical routing prefix intelligence by split CIDR (\u002Fv1\u002Fnetworks\u002F:prefix\u002F:length) or URL-encoded CIDR (\u002Fv1\u002Fnetworks\u002F:cidr).",[9,15,17,20,36,41,69,72],{"type":10,"method":11,"path":12,"auth":13,"plan":14},"endpoint","GET","\u002Fv1\u002Fnetworks\u002F{prefix}\u002F{length}","key","scope: lookup",{"type":10,"method":11,"path":16,"auth":13,"plan":14},"\u002Fv1\u002Fnetworks\u002F{cidr}",{"type":18,"text":19},"p","Queries the active snapshot for a canonical network prefix record. `LookupController` supports both **split path parameters** (`\u002Fv1\u002Fnetworks\u002F198.51.100.0\u002F24`) and **URL-encoded CIDR notation** (`\u002Fv1\u002Fnetworks\u002F198.51.100.0%2F24`) so reverse proxies that disallow encoded slashes (`%2F`) work without special configuration.",{"type":21,"title":22,"fields":23},"fields","Path parameters",[24,29,33],{"name":25,"type":26,"text":27,"required":28},"prefix","string","IPv4 or IPv6 network address (`\"198.51.100.0\"` or `\"2606:4700:4700::\"`).",true,{"name":30,"type":31,"text":32,"required":28},"length","integer","Prefix mask length: `0..32` for IPv4 or `0..128` for IPv6. Host bits are automatically masked to the canonical network address.",{"name":34,"type":26,"text":35},"cidr","Alternative single-parameter URL-encoded CIDR (`\"198.51.100.0%2F24\"`). Used automatically by `client.lookupNetwork(\"198.51.100.0\u002F24\")` in all official SDKs.",{"type":37,"level":38,"text":39,"id":40},"heading",2,"Code examples","code-examples",{"type":42,"samples":43},"code",[44,49,54,59,64],{"label":45,"lang":46,"code":47,"html":48},"curl","bash","curl -sS \"https:\u002F\u002Fapi.ipscope.io\u002Fv1\u002Fnetworks\u002F198.51.100.0\u002F24\" \\\n  -H \"Authorization: Bearer $IPSCOPE_KEY\"","\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-function)\">curl\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string)\"> -sS\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"https:\u002F\u002Fapi.ipscope.io\u002Fv1\u002Fnetworks\u002F198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-string)\">  -H\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"Authorization: Bearer $IPSCOPE_KEY\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":50,"lang":51,"code":52,"html":53},"Python","python","import asyncio, os\nfrom ipscope import AsyncIpScopeClient\n\nasync def main() -> None:\n    async with AsyncIpScopeClient(api_key=os.environ[\"IPSCOPE_KEY\"]) as client:\n        prefix = await client.lookup_network(\"198.51.100.0\u002F24\")\n        print(prefix[\"queried_cidr\"], prefix[\"record\"][\"asn\"], prefix[\"record\"][\"organization\"])\n\nasyncio.run(main())","\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">import\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> asyncio\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> os\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">from\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> ipscope \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">import\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> AsyncIpScopeClient\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">async\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> def\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\"> main\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">() \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">->\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> None\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    async\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> with\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\"> AsyncIpScopeClient\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">(api_key\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">os.environ[\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"IPSCOPE_KEY\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">])\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> as\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> client\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">        prefix \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> await\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> client\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">lookup_network\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-function)\">        print\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">(prefix[\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"queried_cidr\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">], prefix[\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"record\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">][\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"asn\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">], prefix[\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"record\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">][\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"organization\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">])\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">asyncio\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">run\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">main\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">())\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":55,"lang":56,"code":57,"html":58},"Node.js","ts","import { IpScopeClient } from '@ipscope\u002Fsdk-node';\n\nconst client = new IpScopeClient({ apiKey: process.env.IPSCOPE_KEY });\nconst prefix = await client.lookupNetwork('198.51.100.0\u002F24');\nconsole.log(prefix.queried_cidr, prefix.record?.asn, prefix.record?.organization);","\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">import\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> { IpScopeClient } \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">from\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> '@ipscope\u002Fsdk-node'\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">const\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> client\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> =\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> new\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\"> IpScopeClient\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">({ apiKey\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> process\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\">env\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\">IPSCOPE_KEY\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> });\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">const\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> prefix\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> =\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\"> await\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> client\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">.lookupNetwork\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">'198.51.100.0\u002F24'\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-constant)\">console\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">.log\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\">prefix\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">.queried_cidr\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> prefix\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\">record\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">?.asn\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> prefix\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\">record\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">?.organization);\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":60,"lang":61,"code":62,"html":63},"Go","go","client := ipscope.NewClient(ipscope.Config{APIKey: os.Getenv(\"IPSCOPE_KEY\")})\ndefer client.Close()\n\nprefix, err := client.LookupNetwork(ctx, \"198.51.100.0\u002F24\")\nif err != nil {\n\treturn err\n}\nfmt.Println(prefix.QueriedCIDR, prefix.Record.ASN, prefix.Record.Organization)","\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">client \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">:=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> ipscope.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">NewClient\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">ipscope\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">Config\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">{APIKey: os.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">Getenv\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"IPSCOPE_KEY\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">)})\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">defer\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> client.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">Close\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">prefix, err \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">:=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> client.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">LookupNetwork\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(ctx, \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">if\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> err \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">!=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">\treturn\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> err\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">fmt.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">Println\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(prefix.QueriedCIDR, prefix.Record.ASN, prefix.Record.Organization)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":65,"lang":66,"code":67,"html":68},"Rust","rust","use ipscope::{AsyncIpScopeClient, ClientConfig};\n\nlet client = AsyncIpScopeClient::new(ClientConfig::new(std::env::var(\"IPSCOPE_KEY\")?))?;\nlet prefix = client.lookup_network(\"198.51.100.0\u002F24\").await?;\nprintln!(\"{} ASN={:?}\", prefix.queried_cidr, prefix.record.asn);","\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">use\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> ipscope\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">::\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">{\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">AsyncIpScopeClient\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">, \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">ClientConfig\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">};\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">let\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> client \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\"> AsyncIpScopeClient\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">::\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">new\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(ClientConfig\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">::\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">new\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(std\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">::\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">env\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">::\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">var\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"IPSCOPE_KEY\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">)\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">?\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">))\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">?\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">let\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> prefix \u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">=\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> client\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-function)\">lookup_network\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">)\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">.await?\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-function)\">println!\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">(\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\">\"{} ASN={:?}\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">, prefix\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">queried_cidr, prefix\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">record\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-keyword)\">.\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\">asn);\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"type":37,"level":38,"text":70,"id":71},"Responses","responses",{"type":71,"responses":73},[74,149,168],{"code":75,"name":76,"description":77,"schema":78,"example":146,"defaultOpen":28,"exampleHtml":148},"200","NetworkPrefixLookupResponse","Canonical network prefix record from the active routing snapshot.",[79,83,89,93],{"name":80,"type":26,"description":81,"required":28,"format":34,"example":82},"queried_cidr","Normalized canonical CIDR block.","198.51.100.0\u002F24",{"name":84,"type":31,"description":85,"required":28,"enum":86,"example":87},"family","IP address family (`4` or `6`).",[87,88],4,6,{"name":90,"type":26,"description":91,"required":28,"example":92},"dataset_version","Active dataset snapshot version.","2026-10-27T00:00:00Z.crawl-1793088000000",{"name":94,"type":95,"description":96,"required":28,"isRef":28,"children":97},"record","NetworkPrefixRecord","Matched prefix record in the routing snapshot.",[98,100,103,107,111,115,119,128,132,135,139,142],{"name":25,"type":26,"description":99,"required":28,"example":82},"Matched CIDR prefix in the routing table.",{"name":84,"type":31,"description":101,"required":28,"enum":102,"example":87},"Address family (`4` or `6`).",[87,88],{"name":104,"type":31,"description":105,"nullable":28,"example":106},"asn","Origin Autonomous System Number.",64501,{"name":108,"type":26,"description":109,"nullable":28,"example":110},"organization","Registered autonomous system organization name.","Example Cloud LLC",{"name":112,"type":26,"description":113,"nullable":28,"example":114},"countryCode","ISO 3166-1 alpha-2 country code.","US",{"name":116,"type":26,"description":117,"nullable":28,"example":118},"city","Resolved city name.","Ashburn",{"name":120,"type":26,"description":121,"required":28,"enum":122,"example":123},"locationType","Location resolution classification.",[123,124,125,126,127],"physical","declared","virtual","anycast","unknown",{"name":129,"type":130,"description":131,"required":28,"example":28},"isVpn","boolean","Whether the prefix is classified as a VPN exit range.",{"name":133,"type":130,"description":134,"required":28,"example":28},"isHosting","Whether the prefix belongs to a hosting\u002Fcloud ASN.",{"name":136,"type":130,"description":137,"required":28,"example":138},"isTorExit","Whether the prefix contains active Tor exit nodes.",false,{"name":140,"type":130,"description":141,"required":28,"example":138},"isProxy","Whether the prefix contains active proxy relays.",{"name":143,"type":26,"description":144,"required":28,"example":145},"anonymizerType","Primary anonymizer classification (`\"vpn\"`, `\"none\"`, etc.).","vpn",{"queried_cidr":82,"family":87,"dataset_version":92,"record":147},{"prefix":82,"family":87,"asn":106,"organization":110,"countryCode":114,"city":118,"locationType":123,"isVpn":28,"isHosting":28,"isTorExit":138,"isProxy":138,"anonymizerType":145},"\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"queried_cidr\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"family\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> 4\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"dataset_version\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"2026-10-27T00:00:00Z.crawl-1793088000000\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"record\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"prefix\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"family\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> 4\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"asn\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> 64501\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"organization\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"Example Cloud LLC\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"countryCode\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"US\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"city\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"Ashburn\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"locationType\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"physical\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"isVpn\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> true\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"isHosting\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> true\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"isTorExit\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> false\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"isProxy\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> false\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"anonymizerType\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"vpn\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"code":150,"name":151,"description":152,"schema":153,"example":166,"exampleHtml":167},"400","ApiError","Invalid IPv4\u002FIPv6 network address or prefix length outside 0..32 (IPv4) \u002F 0..128 (IPv6).",[154,158,162],{"name":155,"type":31,"description":156,"required":28,"example":157},"statusCode","HTTP status code returned by the API gateway.",400,{"name":159,"type":26,"description":160,"required":28,"example":161},"message","Human-readable diagnostic message describing the error condition.","Invalid CIDR prefix length: 33 for IPv4",{"name":163,"type":26,"description":164,"required":28,"example":165},"error","Canonical HTTP error classification.","Bad Request",{"statusCode":157,"message":161,"error":165},"\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"statusCode\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> 400\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"message\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"Invalid CIDR prefix length: 33 for IPv4\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"error\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"Bad Request\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"code":169,"name":151,"description":170,"schema":171,"example":178,"exampleHtml":179},"404","No network prefix record found for the queried CIDR in the active snapshot.",[172,174,176],{"name":155,"type":31,"description":156,"required":28,"example":173},404,{"name":159,"type":26,"description":160,"required":28,"example":175},"No network record found for prefix 198.51.100.0\u002F24",{"name":163,"type":26,"description":164,"required":28,"example":177},"Not Found",{"statusCode":173,"message":175,"error":177},"\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"statusCode\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-constant)\"> 404\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"message\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"No network record found for prefix 198.51.100.0\u002F24\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"error\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"Not Found\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",[181,182],{"id":40,"text":39,"level":38},{"id":71,"text":70,"level":38},1793226505660]