{
  "service": "ipinfo_io",
  "displayName": "IPinfo",
  "categories": [
    "Location",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "ipinfo_token",
      "description": "IPinfo access token used to authenticate API requests. Get it from the IPinfo dashboard: https://ipinfo.io/dashboard/lite."
    }
  ],
  "homepageUrl": "https://ipinfo.io",
  "actions": [
    {
      "id": "ipinfo_io.batch_lite_lookup",
      "service": "ipinfo_io",
      "name": "batch_lite_lookup",
      "description": "Look up multiple Lite API IPs or field paths in a single batch request.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "queries": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "An IP address or field path item for the Lite batch endpoint."
            },
            "description": "The Lite API queries to send to the batch lookup endpoint.",
            "minItems": 1,
            "maxItems": 1000
          }
        },
        "additionalProperties": false,
        "description": "The input payload for the Lite batch lookup endpoint."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": true,
        "description": "A map from each Lite batch query string to the corresponding IPinfo result."
      }
    },
    {
      "id": "ipinfo_io.batch_lookup",
      "service": "ipinfo_io",
      "name": "batch_lookup",
      "description": "Look up multiple IPinfo legacy or Lite-compatible paths in a single batch request through the legacy batch endpoint.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ips": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "An IP address or batch lookup path item."
            },
            "description": "The IP addresses or field paths to send to the batch lookup endpoint.",
            "minItems": 1,
            "maxItems": 1000
          },
          "filter": {
            "type": "boolean",
            "description": "Whether null results should be omitted from the returned map."
          }
        },
        "additionalProperties": false,
        "required": [
          "ips"
        ],
        "description": "The input payload for the legacy batch lookup endpoint."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": true,
        "description": "A map from each batch query string to the corresponding IPinfo batch result."
      }
    },
    {
      "id": "ipinfo_io.get_abuse_contact",
      "service": "ipinfo_io",
      "name": "get_abuse_contact",
      "description": "Retrieve abuse contact data for a specific IP address when the token includes that dataset.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "abuse": {
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "description": "The postal address of the abuse contact."
              },
              "country": {
                "type": "string",
                "description": "The country code of the abuse contact."
              },
              "email": {
                "type": "string",
                "description": "The abuse contact email address."
              },
              "name": {
                "type": "string",
                "description": "The abuse contact name."
              },
              "network": {
                "type": "string",
                "description": "The network range in CIDR notation."
              },
              "phone": {
                "type": "string",
                "description": "The abuse contact phone number."
              }
            },
            "additionalProperties": true,
            "description": "Abuse contact data returned by IPinfo when the token has access to it."
          }
        },
        "additionalProperties": false,
        "description": "The abuse contact payload for the requested IP address."
      }
    },
    {
      "id": "ipinfo_io.get_carrier_info",
      "service": "ipinfo_io",
      "name": "get_carrier_info",
      "description": "Retrieve carrier enrichment data for a specific IP address when the token includes that dataset.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "carrier": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The mobile carrier or network organization name."
              },
              "mcc": {
                "type": "string",
                "description": "The mobile country code."
              },
              "mnc": {
                "type": "string",
                "description": "The mobile network code."
              }
            },
            "additionalProperties": true,
            "description": "Carrier data returned by IPinfo for mobile network IP addresses."
          }
        },
        "additionalProperties": false,
        "description": "The carrier enrichment payload for the requested IP address."
      }
    },
    {
      "id": "ipinfo_io.get_city_by_ip",
      "service": "ipinfo_io",
      "name": "get_city_by_ip",
      "description": "Retrieve the city name for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "The city name returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_company_info",
      "service": "ipinfo_io",
      "name": "get_company_info",
      "description": "Retrieve company enrichment data for a specific IP address when the token includes that dataset.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The company or organization name."
          },
          "domain": {
            "type": "string",
            "description": "The primary domain associated with the company."
          },
          "type": {
            "type": "string",
            "description": "The organization type, such as business, ISP, education, or hosting."
          }
        },
        "additionalProperties": true,
        "description": "Company data returned by IPinfo when the token has access to business enrichment."
      }
    },
    {
      "id": "ipinfo_io.get_core_field_by_me",
      "service": "ipinfo_io",
      "name": "get_core_field_by_me",
      "description": "Retrieve a single Lookup API core field for the caller's current IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "enum": [
              "ip",
              "hostname",
              "geo",
              "geo/city",
              "geo/region",
              "geo/region_code",
              "geo/country",
              "geo/country_code",
              "geo/continent",
              "geo/continent_code",
              "geo/latitude",
              "geo/longitude",
              "geo/timezone",
              "geo/postal_code",
              "as",
              "as/asn",
              "as/name",
              "as/domain",
              "as/type",
              "is_anonymous",
              "is_anycast",
              "is_hosting",
              "is_mobile",
              "is_satellite"
            ],
            "description": "The Lookup API field path to retrieve for the caller's current IP."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a specific Lookup API core field."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "string",
                "description": "A string field value."
              },
              {
                "type": "number",
                "description": "A numeric field value."
              },
              {
                "type": "boolean",
                "description": "A boolean field value."
              },
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string property value."
                    },
                    {
                      "type": "number",
                      "description": "A numeric property value."
                    },
                    {
                      "type": "boolean",
                      "description": "A boolean property value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": "An object field value."
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "The returned value for a specific IPinfo field lookup."
      }
    },
    {
      "id": "ipinfo_io.get_country_by_ip",
      "service": "ipinfo_io",
      "name": "get_country_by_ip",
      "description": "Retrieve the ISO 3166-1 alpha-2 country code for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "country_code": {
            "type": "string",
            "description": "The ISO 3166-1 alpha-2 country code returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_current_ip",
      "service": "ipinfo_io",
      "name": "get_current_ip",
      "description": "Retrieve the caller's current public IP address as plain text.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The caller's current public IP address."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_current_ip_info",
      "service": "ipinfo_io",
      "name": "get_current_ip_info",
      "description": "Retrieve the full legacy IPinfo profile for the caller's current IP address, including location, ASN, company, privacy, carrier, abuse, and hosted domain data when available.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The IP address that was looked up."
          },
          "hostname": {
            "type": "string",
            "description": "The reverse DNS hostname when available."
          },
          "bogon": {
            "type": "boolean",
            "description": "Whether the IP address is a bogon or private address."
          },
          "anycast": {
            "type": "boolean",
            "description": "Whether the IP address is identified as anycast."
          },
          "city": {
            "type": "string",
            "description": "The city name."
          },
          "region": {
            "type": "string",
            "description": "The region or state name."
          },
          "country": {
            "type": "string",
            "description": "The ISO 3166-1 alpha-2 country code returned by the legacy API."
          },
          "loc": {
            "type": "string",
            "description": "The latitude and longitude pair in latitude,longitude format."
          },
          "org": {
            "type": "string",
            "description": "The organization summary returned by the legacy API."
          },
          "postal": {
            "type": "string",
            "description": "The postal or ZIP code."
          },
          "timezone": {
            "type": "string",
            "description": "The IANA timezone name."
          },
          "asn": {
            "type": "object",
            "properties": {
              "asn": {
                "type": "string",
                "description": "The autonomous system number."
              },
              "name": {
                "type": "string",
                "description": "The autonomous system organization name."
              },
              "domain": {
                "type": "string",
                "description": "The autonomous system organization domain."
              },
              "route": {
                "type": "string",
                "description": "The route associated with the IP-specific ASN summary."
              },
              "type": {
                "type": "string",
                "description": "The autonomous system organization type, such as ISP, hosting, or business."
              },
              "country": {
                "type": "string",
                "description": "The country code registered for the autonomous system."
              },
              "allocated": {
                "type": "string",
                "description": "The allocation date for the autonomous system."
              },
              "registry": {
                "type": "string",
                "description": "The regional internet registry for the autonomous system."
              },
              "num_ips": {
                "type": "integer",
                "description": "The number of IP addresses announced by the autonomous system."
              },
              "prefixes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Additional object fields returned by IPinfo."
                },
                "description": "A list of objects returned by IPinfo."
              },
              "prefixes6": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Additional object fields returned by IPinfo."
                },
                "description": "A list of objects returned by IPinfo."
              },
              "peers": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "The peer ASNs."
              },
              "upstreams": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "The upstream ASNs."
              },
              "downstreams": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "The downstream ASNs."
              }
            },
            "additionalProperties": true,
            "description": "ASN data returned by IPinfo, enriched with the standalone ASN endpoint when available."
          },
          "company": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The company or organization name."
              },
              "domain": {
                "type": "string",
                "description": "The primary domain associated with the company."
              },
              "type": {
                "type": "string",
                "description": "The organization type, such as business, ISP, education, or hosting."
              }
            },
            "additionalProperties": true,
            "description": "Company data returned by IPinfo when the token has access to business enrichment."
          },
          "carrier": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The mobile carrier or network organization name."
              },
              "mcc": {
                "type": "string",
                "description": "The mobile country code."
              },
              "mnc": {
                "type": "string",
                "description": "The mobile network code."
              }
            },
            "additionalProperties": true,
            "description": "Carrier data returned by IPinfo for mobile network IP addresses."
          },
          "privacy": {
            "type": "object",
            "properties": {
              "vpn": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a VPN exit node."
              },
              "proxy": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a proxy."
              },
              "tor": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a Tor exit node."
              },
              "relay": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a relay service such as iCloud Private Relay."
              },
              "hosting": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a hosting or datacenter network."
              },
              "service": {
                "type": "string",
                "description": "The detected privacy service provider name."
              }
            },
            "additionalProperties": true,
            "description": "Privacy detection data returned by IPinfo when the token has access to it."
          },
          "abuse": {
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "description": "The postal address of the abuse contact."
              },
              "country": {
                "type": "string",
                "description": "The country code of the abuse contact."
              },
              "email": {
                "type": "string",
                "description": "The abuse contact email address."
              },
              "name": {
                "type": "string",
                "description": "The abuse contact name."
              },
              "network": {
                "type": "string",
                "description": "The network range in CIDR notation."
              },
              "phone": {
                "type": "string",
                "description": "The abuse contact phone number."
              }
            },
            "additionalProperties": true,
            "description": "Abuse contact data returned by IPinfo when the token has access to it."
          },
          "domains": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "description": "The IP address used for the hosted domains lookup."
              },
              "total": {
                "type": "integer",
                "description": "The total number of hosted domains returned by IPinfo."
              },
              "domains": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "A sample of hosted domains associated with the IP address."
              }
            },
            "additionalProperties": true,
            "description": "Hosted domain data returned by IPinfo when the token has access to it."
          }
        },
        "additionalProperties": true,
        "description": "The full legacy IPinfo response, enriched with standalone ASN details when the response includes an ASN."
      }
    },
    {
      "id": "ipinfo_io.get_current_loc",
      "service": "ipinfo_io",
      "name": "get_current_loc",
      "description": "Retrieve the caller's current coordinates in latitude,longitude format.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The coordinates returned by IPinfo in latitude,longitude format."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_current_region",
      "service": "ipinfo_io",
      "name": "get_current_region",
      "description": "Retrieve the caller's current region or state name.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "The current region or state name."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_geo_by_ip",
      "service": "ipinfo_io",
      "name": "get_geo_by_ip",
      "description": "Retrieve Lookup API geolocation data for a specific IP address, including city, region, country, coordinates, timezone, and postal metadata.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "The city name."
          },
          "region": {
            "type": "string",
            "description": "The region or state name."
          },
          "region_code": {
            "type": "string",
            "description": "The region or state code."
          },
          "country": {
            "type": "string",
            "description": "The country name."
          },
          "country_code": {
            "type": "string",
            "description": "The ISO 3166-1 alpha-2 country code."
          },
          "continent": {
            "type": "string",
            "description": "The continent name."
          },
          "continent_code": {
            "type": "string",
            "description": "The two-letter continent code."
          },
          "latitude": {
            "type": "number",
            "description": "The latitude coordinate."
          },
          "longitude": {
            "type": "number",
            "description": "The longitude coordinate."
          },
          "timezone": {
            "type": "string",
            "description": "The IANA timezone name."
          },
          "postal_code": {
            "type": "string",
            "description": "The postal or ZIP code."
          },
          "dma_code": {
            "type": "string",
            "description": "The designated market area code."
          },
          "geoname_id": {
            "type": "integer",
            "description": "The GeoNames identifier."
          },
          "radius": {
            "type": "integer",
            "description": "The estimated location radius in kilometers."
          },
          "last_changed": {
            "type": "string",
            "description": "The date when the geolocation data last changed."
          }
        },
        "additionalProperties": true,
        "description": "Geolocation data returned by the IPinfo Lookup API."
      }
    },
    {
      "id": "ipinfo_io.get_hostname_by_ip",
      "service": "ipinfo_io",
      "name": "get_hostname_by_ip",
      "description": "Retrieve the reverse DNS hostname for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "description": "The reverse DNS hostname returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_ip_by_ip",
      "service": "ipinfo_io",
      "name": "get_ip_by_ip",
      "description": "Retrieve the requested IP address as plain text through the field filtering endpoint.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The requested IP address as returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_ip_info",
      "service": "ipinfo_io",
      "name": "get_ip_info",
      "description": "Retrieve Lite IP information for a specific IP address or for the caller's current IP when no IP is provided.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up. Omit this field to use the caller's current IP."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving lite IP information."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The IP address that was looked up."
          },
          "bogon": {
            "type": "boolean",
            "description": "Whether the IP address is a bogon or private address."
          },
          "asn": {
            "type": "string",
            "description": "The autonomous system number."
          },
          "as_name": {
            "type": "string",
            "description": "The autonomous system organization name."
          },
          "as_domain": {
            "type": "string",
            "description": "The autonomous system organization domain."
          },
          "country": {
            "type": "string",
            "description": "The country name."
          },
          "country_code": {
            "type": "string",
            "description": "The ISO 3166-1 alpha-2 country code."
          },
          "continent": {
            "type": "string",
            "description": "The continent name."
          },
          "continent_code": {
            "type": "string",
            "description": "The two-letter continent code."
          },
          "hostname": {
            "type": "string",
            "description": "The reverse DNS hostname when available."
          }
        },
        "additionalProperties": true,
        "description": "Lite IP data returned by IPinfo with an optional hostname enrichment."
      }
    },
    {
      "id": "ipinfo_io.get_ip_info_by_ip",
      "service": "ipinfo_io",
      "name": "get_ip_info_by_ip",
      "description": "Retrieve the full legacy IPinfo profile for a specific IP address, including location, ASN, company, privacy, carrier, abuse, and hosted domain data when available.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The IP address that was looked up."
          },
          "hostname": {
            "type": "string",
            "description": "The reverse DNS hostname when available."
          },
          "bogon": {
            "type": "boolean",
            "description": "Whether the IP address is a bogon or private address."
          },
          "anycast": {
            "type": "boolean",
            "description": "Whether the IP address is identified as anycast."
          },
          "city": {
            "type": "string",
            "description": "The city name."
          },
          "region": {
            "type": "string",
            "description": "The region or state name."
          },
          "country": {
            "type": "string",
            "description": "The ISO 3166-1 alpha-2 country code returned by the legacy API."
          },
          "loc": {
            "type": "string",
            "description": "The latitude and longitude pair in latitude,longitude format."
          },
          "org": {
            "type": "string",
            "description": "The organization summary returned by the legacy API."
          },
          "postal": {
            "type": "string",
            "description": "The postal or ZIP code."
          },
          "timezone": {
            "type": "string",
            "description": "The IANA timezone name."
          },
          "asn": {
            "type": "object",
            "properties": {
              "asn": {
                "type": "string",
                "description": "The autonomous system number."
              },
              "name": {
                "type": "string",
                "description": "The autonomous system organization name."
              },
              "domain": {
                "type": "string",
                "description": "The autonomous system organization domain."
              },
              "route": {
                "type": "string",
                "description": "The route associated with the IP-specific ASN summary."
              },
              "type": {
                "type": "string",
                "description": "The autonomous system organization type, such as ISP, hosting, or business."
              },
              "country": {
                "type": "string",
                "description": "The country code registered for the autonomous system."
              },
              "allocated": {
                "type": "string",
                "description": "The allocation date for the autonomous system."
              },
              "registry": {
                "type": "string",
                "description": "The regional internet registry for the autonomous system."
              },
              "num_ips": {
                "type": "integer",
                "description": "The number of IP addresses announced by the autonomous system."
              },
              "prefixes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Additional object fields returned by IPinfo."
                },
                "description": "A list of objects returned by IPinfo."
              },
              "prefixes6": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Additional object fields returned by IPinfo."
                },
                "description": "A list of objects returned by IPinfo."
              },
              "peers": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "The peer ASNs."
              },
              "upstreams": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "The upstream ASNs."
              },
              "downstreams": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "The downstream ASNs."
              }
            },
            "additionalProperties": true,
            "description": "ASN data returned by IPinfo, enriched with the standalone ASN endpoint when available."
          },
          "company": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The company or organization name."
              },
              "domain": {
                "type": "string",
                "description": "The primary domain associated with the company."
              },
              "type": {
                "type": "string",
                "description": "The organization type, such as business, ISP, education, or hosting."
              }
            },
            "additionalProperties": true,
            "description": "Company data returned by IPinfo when the token has access to business enrichment."
          },
          "carrier": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The mobile carrier or network organization name."
              },
              "mcc": {
                "type": "string",
                "description": "The mobile country code."
              },
              "mnc": {
                "type": "string",
                "description": "The mobile network code."
              }
            },
            "additionalProperties": true,
            "description": "Carrier data returned by IPinfo for mobile network IP addresses."
          },
          "privacy": {
            "type": "object",
            "properties": {
              "vpn": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a VPN exit node."
              },
              "proxy": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a proxy."
              },
              "tor": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a Tor exit node."
              },
              "relay": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a relay service such as iCloud Private Relay."
              },
              "hosting": {
                "type": "boolean",
                "description": "Whether the IP address is identified as a hosting or datacenter network."
              },
              "service": {
                "type": "string",
                "description": "The detected privacy service provider name."
              }
            },
            "additionalProperties": true,
            "description": "Privacy detection data returned by IPinfo when the token has access to it."
          },
          "abuse": {
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "description": "The postal address of the abuse contact."
              },
              "country": {
                "type": "string",
                "description": "The country code of the abuse contact."
              },
              "email": {
                "type": "string",
                "description": "The abuse contact email address."
              },
              "name": {
                "type": "string",
                "description": "The abuse contact name."
              },
              "network": {
                "type": "string",
                "description": "The network range in CIDR notation."
              },
              "phone": {
                "type": "string",
                "description": "The abuse contact phone number."
              }
            },
            "additionalProperties": true,
            "description": "Abuse contact data returned by IPinfo when the token has access to it."
          },
          "domains": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string",
                "description": "The IP address used for the hosted domains lookup."
              },
              "total": {
                "type": "integer",
                "description": "The total number of hosted domains returned by IPinfo."
              },
              "domains": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "A sample of hosted domains associated with the IP address."
              }
            },
            "additionalProperties": true,
            "description": "Hosted domain data returned by IPinfo when the token has access to it."
          }
        },
        "additionalProperties": true,
        "description": "The full legacy IPinfo response, enriched with standalone ASN details when the response includes an ASN."
      }
    },
    {
      "id": "ipinfo_io.get_lite_field_by_ip",
      "service": "ipinfo_io",
      "name": "get_lite_field_by_ip",
      "description": "Retrieve a single field from the Lite API for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          },
          "field": {
            "type": "string",
            "enum": [
              "ip",
              "asn",
              "as_name",
              "as_domain",
              "country_code",
              "country",
              "continent_code",
              "continent"
            ],
            "description": "The Lite API field path to retrieve for the requested IP address."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a specific Lite API field."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "string",
                "description": "A string field value."
              },
              {
                "type": "number",
                "description": "A numeric field value."
              },
              {
                "type": "boolean",
                "description": "A boolean field value."
              },
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string property value."
                    },
                    {
                      "type": "number",
                      "description": "A numeric property value."
                    },
                    {
                      "type": "boolean",
                      "description": "A boolean property value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": "An object field value."
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "The returned value for a specific IPinfo field lookup."
      }
    },
    {
      "id": "ipinfo_io.get_location_by_ip",
      "service": "ipinfo_io",
      "name": "get_location_by_ip",
      "description": "Retrieve coordinates for a specific IP address in latitude,longitude format.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The coordinates returned by IPinfo in latitude,longitude format."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_org_by_ip",
      "service": "ipinfo_io",
      "name": "get_org_by_ip",
      "description": "Retrieve the organization summary for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "org": {
            "type": "string",
            "description": "The organization summary returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_plus_field_by_me",
      "service": "ipinfo_io",
      "name": "get_plus_field_by_me",
      "description": "Retrieve a single Lookup API plus field for the caller's current IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "enum": [
              "ip",
              "geo",
              "geo/city",
              "geo/region",
              "geo/region_code",
              "geo/country",
              "geo/country_code",
              "geo/continent",
              "geo/continent_code",
              "geo/latitude",
              "geo/longitude",
              "geo/timezone",
              "geo/postal_code",
              "geo/dma_code",
              "geo/geoname_id",
              "geo/radius",
              "geo/last_changed",
              "as",
              "as/asn",
              "as/name",
              "as/domain",
              "as/type",
              "as/last_changed",
              "mobile",
              "mobile/name",
              "mobile/mcc",
              "mobile/mnc",
              "anonymous",
              "anonymous/name",
              "anonymous/is_proxy",
              "anonymous/is_relay",
              "anonymous/is_tor",
              "anonymous/is_vpn",
              "is_anonymous",
              "is_anycast",
              "is_hosting",
              "is_mobile",
              "is_satellite"
            ],
            "description": "The Lookup API field path to retrieve for the caller's current IP."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving a specific Lookup API plus field."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "string",
                "description": "A string field value."
              },
              {
                "type": "number",
                "description": "A numeric field value."
              },
              {
                "type": "boolean",
                "description": "A boolean field value."
              },
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A string property value."
                    },
                    {
                      "type": "number",
                      "description": "A numeric property value."
                    },
                    {
                      "type": "boolean",
                      "description": "A boolean property value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": "An object field value."
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "The returned value for a specific IPinfo field lookup."
      }
    },
    {
      "id": "ipinfo_io.get_postal_by_ip",
      "service": "ipinfo_io",
      "name": "get_postal_by_ip",
      "description": "Retrieve the postal or ZIP code for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "postal": {
            "type": "string",
            "description": "The postal or ZIP code returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_privacy_details",
      "service": "ipinfo_io",
      "name": "get_privacy_details",
      "description": "Retrieve privacy detection flags for a specific IP address when the token includes privacy enrichment.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "vpn": {
            "type": "boolean",
            "description": "Whether the IP address is identified as a VPN exit node."
          },
          "proxy": {
            "type": "boolean",
            "description": "Whether the IP address is identified as a proxy."
          },
          "tor": {
            "type": "boolean",
            "description": "Whether the IP address is identified as a Tor exit node."
          },
          "relay": {
            "type": "boolean",
            "description": "Whether the IP address is identified as a relay service such as iCloud Private Relay."
          },
          "hosting": {
            "type": "boolean",
            "description": "Whether the IP address is identified as a hosting or datacenter network."
          },
          "service": {
            "type": "string",
            "description": "The detected privacy service provider name."
          }
        },
        "additionalProperties": true,
        "description": "Privacy detection data returned by IPinfo when the token has access to it."
      }
    },
    {
      "id": "ipinfo_io.get_region_by_ip",
      "service": "ipinfo_io",
      "name": "get_region_by_ip",
      "description": "Retrieve the region or state name for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "region": {
            "type": "string",
            "description": "The region or state name returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_timezone_by_ip",
      "service": "ipinfo_io",
      "name": "get_timezone_by_ip",
      "description": "Retrieve the IANA timezone name for a specific IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "string",
            "minLength": 1,
            "description": "The IPv4 or IPv6 address to look up."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "timezone": {
            "type": "string",
            "description": "The IANA timezone name returned by IPinfo."
          }
        },
        "additionalProperties": false,
        "description": "The output payload for this action."
      }
    },
    {
      "id": "ipinfo_io.get_token_info",
      "service": "ipinfo_io",
      "name": "get_token_info",
      "description": "Retrieve account and usage metadata for the current IPinfo token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The token echoed by the token information endpoint."
          },
          "name": {
            "type": "string",
            "description": "The account or token label when available."
          },
          "email": {
            "type": "string",
            "description": "The account email when available."
          },
          "requests": {
            "type": "object",
            "properties": {
              "day": {
                "type": "integer",
                "description": "The number of requests used today."
              },
              "month": {
                "type": "integer",
                "description": "The number of requests used this month."
              },
              "limit": {
                "type": "integer",
                "description": "The request limit associated with the token."
              },
              "remaining": {
                "type": "integer",
                "description": "The remaining request budget."
              }
            },
            "additionalProperties": true,
            "description": "Usage counters returned for the IPinfo token."
          },
          "features": {
            "type": "object",
            "additionalProperties": true,
            "description": "The feature access map returned for the token."
          }
        },
        "additionalProperties": true,
        "description": "Account and usage metadata returned for the current IPinfo token."
      }
    },
    {
      "id": "ipinfo_io.map_ips",
      "service": "ipinfo_io",
      "name": "map_ips",
      "description": "Upload up to 500,000 IP addresses to the IPinfo map tool and return the generated report URL.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ipAddresses": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "An IP address to include in the map upload."
            },
            "description": "The IP addresses to upload to the IPinfo map tool.",
            "minItems": 1,
            "maxItems": 500000
          },
          "cli": {
            "type": "integer",
            "description": "The optional CLI mode flag accepted by the IPinfo map tool."
          }
        },
        "additionalProperties": false,
        "required": [
          "ipAddresses"
        ],
        "description": "The input payload for creating an IPinfo map report."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "The status returned by the IPinfo map endpoint."
          },
          "reportUrl": {
            "type": "string",
            "description": "The generated IPinfo map report URL.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "description": "The generated map report metadata returned by IPinfo."
      }
    }
  ]
}
