API Documentation
Free REST API for network calculations. JSON responses, no authentication required.
Overview
https://nettools.zybergen.com/apiFormatJSONAuthNone requiredRate Limits30–60 requests/minute per IP per endpointResponse Format
All endpoints return a consistent JSON envelope:
{ "success": true, "data": { ... } }{ "success": false, "error": "..." }Rate limit headers are included on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Exceeded limits return 429 with a Retry-After header.
Endpoints
/api/subnet60 req/minCalculate IPv4 subnet details from a CIDR block.
| Name | Required | Description |
|---|---|---|
| cidr | Yes | CIDR notation (e.g. 10.0.0.0/24) |
curl "https://nettools.zybergen.com/api/subnet?cidr=10.0.0.0/24"
{
"success": true,
"data": {
"version": 4,
"networkAddress": "10.0.0.0",
"broadcastAddress": "10.0.0.255",
"firstUsableIP": "10.0.0.1",
"lastUsableIP": "10.0.0.254",
"totalHosts": 256,
"usableHosts": 254,
"subnetMask": "255.255.255.0",
"cidr": 24,
"ipClass": "A"
}
}/api/vlsm60 req/minAllocate variable-length subnets within a parent CIDR block.
| Name | Required | Description |
|---|---|---|
| parent | Yes | Parent CIDR (e.g. 10.0.0.0/16) |
| subnets | Yes | Comma-separated Name:HostCount pairs (e.g. Servers:500,Users:200) |
curl "https://nettools.zybergen.com/api/vlsm?parent=10.0.0.0/16&subnets=Servers:500,Users:200,IoT:50"
{
"success": true,
"data": {
"parentNetwork": "10.0.0.0",
"parentCidr": 16,
"totalAddresses": 65536,
"allocatedAddresses": 1536,
"allocations": [
{
"name": "Servers",
"networkAddress": "10.0.0.0",
"cidr": 22,
"subnetMask": "255.255.252.0",
"allocatedHosts": 1022,
"requestedHosts": 500,
"utilization": 49
}
],
"unallocated": [...]
}
}/api/supernet60 req/minAggregate a list of prefixes into summary routes.
| Name | Required | Description |
|---|---|---|
| prefixes | Yes | Comma-separated CIDR prefixes (e.g. 192.168.0.0/24,192.168.1.0/24) |
curl "https://nettools.zybergen.com/api/supernet?prefixes=192.168.0.0/24,192.168.1.0/24"
{
"success": true,
"data": {
"originalCount": 2,
"summarizedCount": 1,
"reductionPercent": 50,
"original": [
{ "network": "192.168.0.0", "cidr": 24 },
{ "network": "192.168.1.0", "cidr": 24 }
],
"summarized": [
{ "network": "192.168.0.0", "cidr": 23 }
]
}
}/api/dns30 req/minQuery DNS records for a domain via Google Public DNS.
| Name | Required | Description |
|---|---|---|
| name | Yes | Domain name (e.g. example.com) |
| type | No | Record type: A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR (default: A) |
curl "https://nettools.zybergen.com/api/dns?name=example.com&type=MX"
{
"success": true,
"data": {
"name": "example.com",
"type": "MX",
"status": 0,
"dnssecValidated": true,
"records": [
{ "name": "example.com.", "type": 15, "TTL": 3600, "data": "10 mail.example.com." }
]
}
}/api/whois30 req/minGet IP geolocation, ISP, and ASN information.
| Name | Required | Description |
|---|---|---|
| ip | Yes | IPv4 or IPv6 address (e.g. 8.8.8.8) |
curl "https://nettools.zybergen.com/api/whois?ip=8.8.8.8"
{
"success": true,
"data": {
"ip": "8.8.8.8",
"type": "v4",
"country": "United States",
"city": "Mountain View",
"connection": {
"asn": 15169,
"org": "Google LLC",
"isp": "Google LLC"
}
}
}/api/myip60 req/minReturns the requesting client's public IP address.
curl "https://nettools.zybergen.com/api/myip"
{
"success": true,
"data": {
"ip": "203.0.113.42",
"headers": {
"x-forwarded-for": "203.0.113.42",
"x-real-ip": null
}
}
}/api/maclookup30 req/minLook up the vendor/manufacturer for a MAC address (OUI lookup).
| Name | Required | Description |
|---|---|---|
| mac | Yes | MAC address in any format (e.g. AA:BB:CC:DD:EE:FF) |
curl "https://nettools.zybergen.com/api/maclookup?mac=00:1A:2B:3C:4D:5E"
[
{
"startHex": "001A2B000000",
"endHex": "001A2BFFFFFF",
"company": "Ayecom Technology Co., Ltd.",
"addressL1": "...",
"country": "TW"
}
]/api/config60 req/minGenerate router/firewall interface configuration snippets.
| Name | Required | Description |
|---|---|---|
| cidr | Yes | Subnet in CIDR notation (e.g. 10.0.0.0/24) |
| interface | No | Interface name (default: GigabitEthernet0/1) |
| vendor | No | Filter to one vendor: cisco-ios, junos, fortios (default: all) |
| description | No | Interface description |
curl "https://nettools.zybergen.com/api/config?cidr=10.0.0.0/24&interface=ge-0/0/0&vendor=junos"
{
"success": true,
"data": {
"network": "10.0.0.0",
"cidr": 24,
"subnetMask": "255.255.255.0",
"interfaceName": "ge-0/0/0",
"configs": {
"junos": "set interfaces ge-0/0/0 unit 0 family inet address 10.0.0.1/24\n..."
}
}
}About the NetTools API
The NetTools REST API provides programmatic access to all network calculation tools available on this site. Every endpoint returns JSON and requires no authentication, making it easy to integrate into scripts, CI/CD pipelines, network automation workflows, and custom dashboards.
Use the API to automate subnet calculations during infrastructure provisioning, validate DNS records as part of deployment checks, or generate router configurations from your IP address management (IPAM) system. All computation endpoints run server-side with no external dependencies, ensuring fast and reliable responses.
Frequently Asked Questions
Is the API free to use?
Yes. The NetTools API is completely free with no authentication or API key required. Rate limits are applied per IP address to ensure fair usage — computation endpoints allow 60 requests per minute and proxy endpoints (DNS, Whois, MAC lookup) allow 30 requests per minute.
What happens when I exceed the rate limit?
You will receive a 429 (Too Many Requests) response with a Retry-After header indicating how many seconds to wait before making another request. The X-RateLimit-Reset header on every response tells you when your rate limit window resets (Unix timestamp).
Can I use the API in commercial projects?
Yes. The API is available for both personal and commercial use. However, please respect the rate limits and avoid using it as a critical dependency for high-traffic production systems without reaching out first. For heavy usage, consider running the computation functions locally — they are pure math with no external dependencies.
Do I need CORS headers for browser-side requests?
The API endpoints are designed primarily for server-side usage (scripts, backends, CLI tools). For browser-based applications making cross-origin requests, you may need to proxy the requests through your own backend. Direct browser requests from the same domain (nettools.zybergen.com) work without CORS issues.