rdapapi-io · Schema

IpResponse

CompanyRDAPDomainAPIWhois

Properties

Name Type Description
handle stringnull Registry-assigned handle
name stringnull Network name
type stringnull Allocation type
start_address stringnull Start of the IP address range
end_address stringnull End of the IP address range
ip_version stringnull IP version (v4 or v6)
parent_handle stringnull Parent network handle
country stringnull Country code (if provided by registry)
status array Status codes
dates object
entities object Contact entities keyed by role (registrant, administrative, technical, billing, abuse)
cidr array CIDR notation for the network
geofeed stringnull The network's RFC 8805 geofeed URL, as published. `null` when there is none.
remarks array Remarks from the registry (network description, abuse info, etc.)
port43 stringnull Legacy WHOIS server hostname
redacted object
meta object
View JSON Schema on GitHub

JSON Schema

rdapapi-io-ip-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/rdapapi-io/json-schema/rdapapi-io-ip-response-schema.json",
  "title": "IpResponse",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/rdapapi-io-openapi.yaml#/components/schemas/IpResponse",
  "type": "object",
  "required": [
    "handle",
    "name",
    "type",
    "start_address",
    "end_address",
    "ip_version",
    "parent_handle",
    "country",
    "status",
    "dates",
    "entities",
    "cidr",
    "geofeed",
    "remarks",
    "port43"
  ],
  "properties": {
    "handle": {
      "type": [
        "string",
        "null"
      ],
      "description": "Registry-assigned handle"
    },
    "name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Network name"
    },
    "type": {
      "type": [
        "string",
        "null"
      ],
      "description": "Allocation type"
    },
    "start_address": {
      "type": [
        "string",
        "null"
      ],
      "description": "Start of the IP address range"
    },
    "end_address": {
      "type": [
        "string",
        "null"
      ],
      "description": "End of the IP address range"
    },
    "ip_version": {
      "type": [
        "string",
        "null"
      ],
      "description": "IP version (v4 or v6)"
    },
    "parent_handle": {
      "type": [
        "string",
        "null"
      ],
      "description": "Parent network handle"
    },
    "country": {
      "type": [
        "string",
        "null"
      ],
      "description": "Country code (if provided by registry)"
    },
    "status": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Status codes"
    },
    "dates": {
      "$ref": "#/$defs/Dates"
    },
    "entities": {
      "type": "object",
      "description": "Contact entities keyed by role (registrant, administrative, technical, billing, abuse)",
      "properties": {
        "registrant": {
          "$ref": "#/$defs/Contact"
        },
        "administrative": {
          "$ref": "#/$defs/Contact"
        },
        "technical": {
          "$ref": "#/$defs/Contact"
        },
        "abuse": {
          "$ref": "#/$defs/Contact"
        },
        "billing": {
          "$ref": "#/$defs/Contact"
        }
      }
    },
    "cidr": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "CIDR notation for the network"
    },
    "geofeed": {
      "type": [
        "string",
        "null"
      ],
      "description": "The network's RFC 8805 geofeed URL, as published. `null` when there is none.\n"
    },
    "remarks": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Remark"
      },
      "description": "Remarks from the registry (network description, abuse info, etc.)"
    },
    "port43": {
      "type": [
        "string",
        "null"
      ],
      "description": "Legacy WHOIS server hostname"
    },
    "redacted": {
      "$ref": "#/$defs/Redaction"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "$defs": {
    "Contact": {
      "type": "object",
      "description": "One contact. Any field may be null or withheld.\n",
      "required": [
        "handle",
        "name",
        "organization",
        "email",
        "phone",
        "address",
        "contact_url",
        "country_code"
      ],
      "properties": {
        "handle": {
          "type": [
            "string",
            "null"
          ],
          "description": "Registry handle for this entity"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "organization": {
          "type": [
            "string",
            "null"
          ]
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "phone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Voice telephone number in E.164, with a `;ext=42` suffix when the registry supplies an extension."
        },
        "address": {
          "type": [
            "string",
            "null"
          ]
        },
        "contact_url": {
          "type": [
            "string",
            "null"
          ],
          "description": "Where a server withholds `email` and publishes a web form instead, this carries it."
        },
        "country_code": {
          "type": [
            "string",
            "null"
          ],
          "description": "ISO 3166-1 alpha-2 country code from the address. Unlike the text fields, a redaction placeholder here is dropped to `null` rather than passed through — it is not a country code."
        }
      }
    },
    "Dates": {
      "type": "object",
      "required": [
        "registered",
        "expires",
        "updated"
      ],
      "properties": {
        "registered": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "expires": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "updated": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      }
    },
    "Meta": {
      "type": "object",
      "description": "Where the answer came from, and how it was served.\n",
      "required": [
        "server",
        "source"
      ],
      "properties": {
        "server": {
          "type": [
            "string",
            "null"
          ],
          "description": "Host that answered, as `/tlds` reports it (usable as `?server=`). May be null on old cached records."
        },
        "source": {
          "type": "string",
          "enum": [
            "rdap",
            "whois"
          ],
          "description": "Which protocol answered. Always `rdap` except on domain lookups, where a TLD with no RDAP server is answered over [WHOIS](#tag/whois-fallback)."
        },
        "rdap_server": {
          "type": "string",
          "deprecated": true,
          "description": "Base URL of the RDAP server, present only when `source` is `rdap`. Use `server` for the host that answered, or `raw_rdap_url` for the exact endpoint queried."
        },
        "raw_rdap_url": {
          "type": "string",
          "description": "Direct URL to the raw RDAP response. Absent when `source` is `whois`, which has no URL form, or when a stored snapshot answered."
        },
        "cached": {
          "type": "boolean",
          "description": "Whether the response was served from cache. Omitted from the partial `meta` of a failed bulk entry."
        },
        "cache_expires": {
          "type": "string",
          "format": "date-time",
          "description": "Cache expiration time (ISO 8601). Omitted from the partial `meta` of a failed bulk entry."
        },
        "followed": {
          "type": "boolean",
          "description": "Whether the registrar's RDAP server was queried for richer data. Only present when `?follow=true` is used and `source` is `rdap`."
        },
        "registrar_rdap_server": {
          "type": [
            "string",
            "null"
          ],
          "description": "URL of the registrar's RDAP record the registry linked to. Only present when `?follow=true` is used."
        },
        "follow_error": {
          "type": [
            "string",
            "null"
          ],
          "description": "Error message if the follow request failed. Only present when `?follow=true` is used and the request fails."
        }
      }
    },
    "Redaction": {
      "type": "object",
      "minProperties": 1,
      "description": "Fields the server declared withheld, at the same path as in the record. See [Redaction](#tag/terminology).\n",
      "properties": {
        "handle": {
          "$ref": "#/$defs/RedactionMethod"
        },
        "registrar": {
          "type": "object",
          "description": "Claims about the top-level `registrar` object. Domain lookups only.",
          "additionalProperties": {
            "$ref": "#/$defs/RedactionMethod"
          }
        },
        "entities": {
          "type": "object",
          "description": "Claims keyed by contact role, then by field within that contact.",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/$defs/RedactionMethod"
            }
          }
        }
      }
    },
    "RedactionMethod": {
      "type": "string",
      "description": "`removal`, `emptyValue`, `partialValue` or `replacementValue`; see [Redaction](#tag/terminology).\n"
    },
    "Remark": {
      "type": "object",
      "required": [
        "title",
        "description"
      ],
      "properties": {
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": "string"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/rdapapi-io-ip-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.