{
  "service": "ip2whois",
  "displayName": "IP2WHOIS",
  "categories": [
    "Security",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "IP2WHOIS_API_KEY",
      "description": "IP2WHOIS API key passed with the key query parameter. Register for a free account to get your key: https://www.ip2location.io/ip2whois-documentation"
    }
  ],
  "homepageUrl": "https://www.ip2location.io/ip2whois-documentation",
  "actions": [
    {
      "id": "ip2whois.lookup_domain",
      "service": "ip2whois",
      "name": "lookup_domain",
      "description": "Look up WHOIS registration details for a domain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "The bare domain name to query."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for a domain WHOIS lookup."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "The queried domain name."
          },
          "domain_id": {
            "type": "string",
            "description": "Domain registry identifier returned by IP2WHOIS."
          },
          "status": {
            "type": "string",
            "description": "Domain status returned by the WHOIS record."
          },
          "create_date": {
            "type": "string",
            "description": "Domain creation date in ISO 8601 format."
          },
          "update_date": {
            "type": "string",
            "description": "Domain update date in ISO 8601 format."
          },
          "expire_date": {
            "type": "string",
            "description": "Domain expiration date in ISO 8601 format."
          },
          "domain_age": {
            "type": "integer",
            "description": "Age of the domain in days."
          },
          "whois_server": {
            "type": "string",
            "description": "WHOIS server hostname for the domain."
          },
          "registrar": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the registrar."
              },
              "iana_id": {
                "type": "string",
                "description": "Registrar IANA identifier."
              },
              "url": {
                "type": "string",
                "description": "Registrar website URL."
              }
            },
            "additionalProperties": false,
            "description": "Registrar information for the domain."
          },
          "registrant": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Contact name from the WHOIS record."
              },
              "organization": {
                "type": "string",
                "description": "Organization name from the WHOIS record."
              },
              "street_address": {
                "type": "string",
                "description": "Street address from the WHOIS record."
              },
              "city": {
                "type": "string",
                "description": "City value from the WHOIS record."
              },
              "region": {
                "type": "string",
                "description": "Region, state, or province from the WHOIS record."
              },
              "zip_code": {
                "type": "string",
                "description": "Postal code from the WHOIS record."
              },
              "country": {
                "type": "string",
                "description": "Two-letter country code from the WHOIS record."
              },
              "phone": {
                "type": "string",
                "description": "Phone number from the WHOIS record."
              },
              "fax": {
                "type": "string",
                "description": "Fax number from the WHOIS record."
              },
              "email": {
                "type": "string",
                "description": "Email address from the WHOIS record."
              }
            },
            "additionalProperties": false,
            "description": "Registrant contact details."
          },
          "admin": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Contact name from the WHOIS record."
              },
              "organization": {
                "type": "string",
                "description": "Organization name from the WHOIS record."
              },
              "street_address": {
                "type": "string",
                "description": "Street address from the WHOIS record."
              },
              "city": {
                "type": "string",
                "description": "City value from the WHOIS record."
              },
              "region": {
                "type": "string",
                "description": "Region, state, or province from the WHOIS record."
              },
              "zip_code": {
                "type": "string",
                "description": "Postal code from the WHOIS record."
              },
              "country": {
                "type": "string",
                "description": "Two-letter country code from the WHOIS record."
              },
              "phone": {
                "type": "string",
                "description": "Phone number from the WHOIS record."
              },
              "fax": {
                "type": "string",
                "description": "Fax number from the WHOIS record."
              },
              "email": {
                "type": "string",
                "description": "Email address from the WHOIS record."
              }
            },
            "additionalProperties": false,
            "description": "Administrative contact details."
          },
          "tech": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Contact name from the WHOIS record."
              },
              "organization": {
                "type": "string",
                "description": "Organization name from the WHOIS record."
              },
              "street_address": {
                "type": "string",
                "description": "Street address from the WHOIS record."
              },
              "city": {
                "type": "string",
                "description": "City value from the WHOIS record."
              },
              "region": {
                "type": "string",
                "description": "Region, state, or province from the WHOIS record."
              },
              "zip_code": {
                "type": "string",
                "description": "Postal code from the WHOIS record."
              },
              "country": {
                "type": "string",
                "description": "Two-letter country code from the WHOIS record."
              },
              "phone": {
                "type": "string",
                "description": "Phone number from the WHOIS record."
              },
              "fax": {
                "type": "string",
                "description": "Fax number from the WHOIS record."
              },
              "email": {
                "type": "string",
                "description": "Email address from the WHOIS record."
              }
            },
            "additionalProperties": false,
            "description": "Technical contact details."
          },
          "billing": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Contact name from the WHOIS record."
              },
              "organization": {
                "type": "string",
                "description": "Organization name from the WHOIS record."
              },
              "street_address": {
                "type": "string",
                "description": "Street address from the WHOIS record."
              },
              "city": {
                "type": "string",
                "description": "City value from the WHOIS record."
              },
              "region": {
                "type": "string",
                "description": "Region, state, or province from the WHOIS record."
              },
              "zip_code": {
                "type": "string",
                "description": "Postal code from the WHOIS record."
              },
              "country": {
                "type": "string",
                "description": "Two-letter country code from the WHOIS record."
              },
              "phone": {
                "type": "string",
                "description": "Phone number from the WHOIS record."
              },
              "fax": {
                "type": "string",
                "description": "Fax number from the WHOIS record."
              },
              "email": {
                "type": "string",
                "description": "Email address from the WHOIS record."
              }
            },
            "additionalProperties": false,
            "description": "Billing contact details."
          },
          "nameservers": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Authoritative nameserver hostname."
            },
            "description": "Authoritative nameservers for the domain."
          }
        },
        "additionalProperties": false,
        "required": [
          "domain",
          "status",
          "create_date",
          "update_date",
          "expire_date",
          "domain_age",
          "registrar",
          "registrant",
          "admin",
          "tech",
          "billing",
          "nameservers"
        ],
        "description": "WHOIS lookup result for a domain."
      }
    },
    {
      "id": "ip2whois.lookup_hosted_domains",
      "service": "ip2whois",
      "name": "lookup_hosted_domains",
      "description": "List hosted domains associated with an IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to query."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The result page to fetch."
          }
        },
        "additionalProperties": false,
        "required": [
          "ip"
        ],
        "description": "The input payload for a hosted domains lookup."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The queried IP address."
          },
          "page": {
            "type": "integer",
            "description": "Current page number."
          },
          "per_page": {
            "type": "integer",
            "description": "Number of domains returned per page."
          },
          "total_pages": {
            "type": "integer",
            "description": "Total number of available pages."
          },
          "total_domains": {
            "type": "integer",
            "description": "Total number of domains hosted on the IP."
          },
          "domains": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Hosted domain name."
            },
            "description": "Hosted domain names."
          }
        },
        "additionalProperties": false,
        "description": "Hosted domains lookup result for an IP address."
      }
    }
  ]
}
