API REFERENCE · GET · STABLE

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.

01 · OVERVIEW

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.
02 · PARAMETERS

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`.
03 · RESPONSE

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.
04 · EXAMPLE

Example response

Truncated but representative example for a real lookup:

Sample response
{
  "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"
  }
}
05 · ERRORS

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.
06 · BEST PRACTICES

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.