Subnet Calculator API — /api/v1/ip/subnet
Returns network address, broadcast, wildcard, usable hosts, binary representations, next/prev subnets, and classification (private vs public). IPv4 only.
What Subnet Calculator does
Returns network address, broadcast, wildcard, usable hosts, binary representations, next/prev subnets, and classification (private vs public). IPv4 only.
- Method GET
- Path /api/v1/ip/subnet
- Stability STABLE
- Version v2026-05-15
- Summary CIDR / subnet math for any IP + mask combination.
Request parameters
Pass these as query-string parameters (or, where indicated, in the request headers). Required params marked required.
- ip (required) — string IPv4 or IPv6 address.
- subnet — integer, default 8 CIDR prefix length (0–32).
- reverse_ip — boolean, default false Also resolve PTR for `network_address`.
Response schema
All successful responses follow the standard `{ success: true, data: {...} }` envelope. Notable fields on the data object for this endpoint:
- data.cidr — string Canonical CIDR (e.g. `192.168.1.0/24`).
- data.cidr_ip_range — string First — last host range.
- data.network_address — string Network address.
- data.broadcast_address — string Broadcast address.
- data.wildcard_mask — string Inverse subnet mask.
- data.subnet_class — string Class A/B/C/D/E.
- data.subnet_mask — string Dotted-decimal mask.
- data.usable_ips — integer Host count (excludes network + broadcast).
- data.binary_ip — string Binary IP.
- data.binary_mask — string Binary mask.
- data.next_subnet — string Next /N block.
- data.previous_subnet — string Previous /N block.
- data.ip_classification — string `Private`, `Public`, `Loopback`, `Multicast`, etc.
- data.ipv6_equivalent — string IPv4-mapped IPv6.
Example response
Truncated but representative example for a real lookup:
{
"success": true,
"data": {
"input": "192.168.1.0/24",
"cidr": "192.168.1.0/24",
"cidr_ip_range": "192.168.1.0 - 192.168.1.255",
"network_address": "192.168.1.0",
"broadcast_address": "192.168.1.255",
"wildcard_mask": "0.0.0.255",
"subnet_class": "Class C",
"subnet_mask": "255.255.255.0",
"usable_ips": 254,
"next_subnet": "192.168.2.0/24",
"previous_subnet": "192.168.0.0/24",
"ip_classification": "Private",
"ipv6_equivalent": "::ffff:C0.A8.01.00"
}
}Error codes
Errors return HTTP status codes paired with stable machine-readable codes. Match on the code field rather than the human-readable message.
- 400 INVALID_SUBNET `subnet` outside 0–32.
Implementation tips
Patterns we recommend when integrating this endpoint:
- Use `subnet=24` as default for typical home networks; `/22` and below for org-scale planning.