API Documentation

Free REST API for network calculations. JSON responses, no authentication required.

Overview

Base URLhttps://nettools.zybergen.com/apiFormatJSONAuthNone requiredRate Limits30–60 requests/minute per IP per endpoint

Response Format

All endpoints return a consistent JSON envelope:

Success
{ "success": true, "data": { ... } }
Error
{ "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

GET/api/subnet60 req/min

Calculate IPv4 subnet details from a CIDR block.

Parameters
NameRequiredDescription
cidrYesCIDR notation (e.g. 10.0.0.0/24)
Example request
curl "https://nettools.zybergen.com/api/subnet?cidr=10.0.0.0/24"
Example response
{
  "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"
  }
}
GET/api/vlsm60 req/min

Allocate variable-length subnets within a parent CIDR block.

Parameters
NameRequiredDescription
parentYesParent CIDR (e.g. 10.0.0.0/16)
subnetsYesComma-separated Name:HostCount pairs (e.g. Servers:500,Users:200)
Example request
curl "https://nettools.zybergen.com/api/vlsm?parent=10.0.0.0/16&subnets=Servers:500,Users:200,IoT:50"
Example response
{
  "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": [...]
  }
}
GET/api/supernet60 req/min

Aggregate a list of prefixes into summary routes.

Parameters
NameRequiredDescription
prefixesYesComma-separated CIDR prefixes (e.g. 192.168.0.0/24,192.168.1.0/24)
Example request
curl "https://nettools.zybergen.com/api/supernet?prefixes=192.168.0.0/24,192.168.1.0/24"
Example response
{
  "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 }
    ]
  }
}
GET/api/dns30 req/min

Query DNS records for a domain via Google Public DNS.

Parameters
NameRequiredDescription
nameYesDomain name (e.g. example.com)
typeNoRecord type: A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR (default: A)
Example request
curl "https://nettools.zybergen.com/api/dns?name=example.com&type=MX"
Example response
{
  "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." }
    ]
  }
}
GET/api/whois30 req/min

Get IP geolocation, ISP, and ASN information.

Parameters
NameRequiredDescription
ipYesIPv4 or IPv6 address (e.g. 8.8.8.8)
Example request
curl "https://nettools.zybergen.com/api/whois?ip=8.8.8.8"
Example response
{
  "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"
    }
  }
}
GET/api/myip60 req/min

Returns the requesting client's public IP address.

Example request
curl "https://nettools.zybergen.com/api/myip"
Example response
{
  "success": true,
  "data": {
    "ip": "203.0.113.42",
    "headers": {
      "x-forwarded-for": "203.0.113.42",
      "x-real-ip": null
    }
  }
}
GET/api/maclookup30 req/min

Look up the vendor/manufacturer for a MAC address (OUI lookup).

Parameters
NameRequiredDescription
macYesMAC address in any format (e.g. AA:BB:CC:DD:EE:FF)
Example request
curl "https://nettools.zybergen.com/api/maclookup?mac=00:1A:2B:3C:4D:5E"
Example response
[
  {
    "startHex": "001A2B000000",
    "endHex": "001A2BFFFFFF",
    "company": "Ayecom Technology Co., Ltd.",
    "addressL1": "...",
    "country": "TW"
  }
]
GET/api/config60 req/min

Generate router/firewall interface configuration snippets.

Parameters
NameRequiredDescription
cidrYesSubnet in CIDR notation (e.g. 10.0.0.0/24)
interfaceNoInterface name (default: GigabitEthernet0/1)
vendorNoFilter to one vendor: cisco-ios, junos, fortios (default: all)
descriptionNoInterface description
Example request
curl "https://nettools.zybergen.com/api/config?cidr=10.0.0.0/24&interface=ge-0/0/0&vendor=junos"
Example response
{
  "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.