{
  "service": "abuseipdb",
  "displayName": "AbuseIPDB",
  "categories": [
    "Security",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "ABUSEIPDB_API_KEY",
      "description": "AbuseIPDB API key sent with the Key header. Get it from your account page under API Settings: https://www.abuseipdb.com/api.html."
    }
  ],
  "homepageUrl": "https://www.abuseipdb.com/",
  "actions": [
    {
      "id": "abuseipdb.blacklist",
      "service": "abuseipdb",
      "name": "blacklist",
      "description": "Read the structured AbuseIPDB blacklist feed in JSON format.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of blacklist entries to return."
          },
          "ipVersion": {
            "anyOf": [
              {
                "const": 4,
                "type": "number"
              },
              {
                "const": 6,
                "type": "number"
              }
            ],
            "description": "Optional IP version filter for blacklist results."
          },
          "confidenceMinimum": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Minimum abuse confidence score required for returned entries."
          },
          "onlyCountries": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "ISO 3166-1 alpha-2 country code to include."
            },
            "description": "Optional allowlist of countries to include in the blacklist response."
          },
          "exceptCountries": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "description": "ISO 3166-1 alpha-2 country code to exclude."
            },
            "description": "Optional denylist of countries to exclude from the blacklist response."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading the AbuseIPDB blacklist feed."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Single AbuseIPDB blacklist entry."
            },
            "description": "Structured blacklist entries returned by AbuseIPDB."
          },
          "generatedAt": {
            "type": "string",
            "description": "Timestamp when the blacklist feed was generated."
          }
        },
        "additionalProperties": false,
        "required": [
          "entries",
          "generatedAt"
        ],
        "description": "Structured AbuseIPDB blacklist output."
      }
    },
    {
      "id": "abuseipdb.check_block",
      "service": "abuseipdb",
      "name": "check_block",
      "description": "Inspect a CIDR block for reported addresses with AbuseIPDB.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "network": {
            "type": "string",
            "pattern": "^\\S+/\\d{1,3}$",
            "description": "CIDR network to inspect with the AbuseIPDB block endpoint."
          },
          "maxAgeInDays": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365,
            "description": "Look-back window in days for AbuseIPDB report matching."
          }
        },
        "additionalProperties": false,
        "required": [
          "network"
        ],
        "description": "Input parameters for checking a CIDR block with AbuseIPDB."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "block": {
            "type": "object",
            "properties": {
              "networkAddress": {
                "type": "string",
                "description": "Network address returned for the block."
              },
              "netmask": {
                "type": "string",
                "description": "Netmask returned for the block."
              },
              "minAddress": {
                "type": "string",
                "description": "Minimum IP address within the block."
              },
              "maxAddress": {
                "type": "string",
                "description": "Maximum IP address within the block."
              },
              "numPossibleHosts": {
                "type": "integer",
                "description": "Number of possible hosts contained in the block."
              },
              "addressSpaceDesc": {
                "type": "string",
                "description": "Address space description returned by AbuseIPDB."
              }
            },
            "additionalProperties": false,
            "required": [
              "networkAddress",
              "netmask",
              "minAddress",
              "maxAddress",
              "numPossibleHosts",
              "addressSpaceDesc"
            ],
            "description": "Normalized AbuseIPDB network block summary."
          },
          "reportedAddresses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ipAddress": {
                  "type": "string",
                  "description": "Reported IP address inside the requested network block."
                },
                "numReports": {
                  "type": "integer",
                  "description": "Number of reports recorded for the reported address."
                },
                "mostRecentReport": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Timestamp of the most recent report for the reported address."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "abuseConfidenceScore": {
                  "type": "integer",
                  "description": "Abuse confidence score for the reported address."
                },
                "countryCode": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Country code associated with the reported address when available."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "ipAddress",
                "numReports",
                "mostRecentReport",
                "abuseConfidenceScore",
                "countryCode"
              ],
              "description": "Single reported address returned by the AbuseIPDB block endpoint."
            },
            "description": "Reported addresses returned for the requested network block."
          }
        },
        "additionalProperties": false,
        "required": [
          "block",
          "reportedAddresses"
        ],
        "description": "AbuseIPDB block inspection result."
      }
    },
    {
      "id": "abuseipdb.check_ip",
      "service": "abuseipdb",
      "name": "check_ip",
      "description": "Check the abuse reputation of a single IP address with AbuseIPDB.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ipAddress": {
            "type": "string",
            "description": "IPv4 or IPv6 address to inspect.",
            "format": "ip"
          },
          "maxAgeInDays": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365,
            "description": "Look-back window in days for AbuseIPDB report matching."
          },
          "verbose": {
            "type": "boolean",
            "description": "Whether to include detailed abuse reports in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "ipAddress"
        ],
        "description": "Input parameters for checking a single IP address with AbuseIPDB."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ip": {
            "type": "object",
            "properties": {
              "ipAddress": {
                "type": "string",
                "description": "IP address returned by AbuseIPDB."
              },
              "isPublic": {
                "type": "boolean",
                "description": "Whether AbuseIPDB considers the IP publicly routable."
              },
              "ipVersion": {
                "type": "integer",
                "description": "IP protocol version reported by AbuseIPDB."
              },
              "abuseConfidenceScore": {
                "type": "integer",
                "description": "Abuse confidence score returned by AbuseIPDB."
              },
              "totalReports": {
                "type": "integer",
                "description": "Total number of reports recorded for the IP."
              },
              "numDistinctUsers": {
                "type": "integer",
                "description": "Number of distinct reporters that submitted reports for the IP."
              },
              "countryCode": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Country code associated with the IP when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "usageType": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Usage classification associated with the IP when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isp": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Internet service provider associated with the IP."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "domain": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Domain associated with the IP when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hostnames": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Hostname associated with the IP."
                },
                "description": "Hostnames associated with the IP."
              },
              "lastReportedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Timestamp of the most recent abuse report when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "ipAddress",
              "isPublic",
              "ipVersion",
              "abuseConfidenceScore",
              "totalReports",
              "numDistinctUsers",
              "countryCode",
              "usageType",
              "isp",
              "domain",
              "hostnames",
              "lastReportedAt"
            ],
            "description": "Normalized AbuseIPDB IP summary."
          },
          "reports": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "reportedAt": {
                      "type": "string",
                      "description": "Timestamp when the abuse report was submitted."
                    },
                    "comment": {
                      "type": "string",
                      "description": "Reporter-supplied comment for the abuse report."
                    },
                    "categories": {
                      "type": "array",
                      "items": {
                        "type": "integer",
                        "description": "Abuse category identifier attached to the report."
                      },
                      "description": "Abuse category identifiers associated with the report."
                    },
                    "reporterId": {
                      "type": "integer",
                      "description": "Reporter identifier assigned by AbuseIPDB."
                    },
                    "reporterCountryCode": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Reporter country code when AbuseIPDB includes it."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "reporterCountryName": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "Reporter country name when AbuseIPDB includes it."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "reportedAt",
                    "comment",
                    "categories",
                    "reporterId",
                    "reporterCountryCode",
                    "reporterCountryName"
                  ],
                  "description": "Single AbuseIPDB report entry."
                },
                "description": "Detailed abuse reports when verbose mode is enabled."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "ip",
          "reports"
        ],
        "description": "Abuse reputation summary returned for a single IP address."
      }
    },
    {
      "id": "abuseipdb.get_reports",
      "service": "abuseipdb",
      "name": "get_reports",
      "description": "List detailed AbuseIPDB reports for a single IP address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ipAddress": {
            "type": "string",
            "description": "IPv4 or IPv6 address to inspect.",
            "format": "ip"
          },
          "maxAgeInDays": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365,
            "description": "Look-back window in days for AbuseIPDB report matching."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from the AbuseIPDB reports endpoint."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of reports to request per page from AbuseIPDB."
          }
        },
        "additionalProperties": false,
        "required": [
          "ipAddress"
        ],
        "description": "Input parameters for listing AbuseIPDB reports for an IP address."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "reports": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "reportedAt": {
                  "type": "string",
                  "description": "Timestamp when the abuse report was submitted."
                },
                "comment": {
                  "type": "string",
                  "description": "Reporter-supplied comment for the abuse report."
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "description": "Abuse category identifier attached to the report."
                  },
                  "description": "Abuse category identifiers associated with the report."
                },
                "reporterId": {
                  "type": "integer",
                  "description": "Reporter identifier assigned by AbuseIPDB."
                },
                "reporterCountryCode": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Reporter country code when AbuseIPDB includes it."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "reporterCountryName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Reporter country name when AbuseIPDB includes it."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "reportedAt",
                "comment",
                "categories",
                "reporterId",
                "reporterCountryCode",
                "reporterCountryName"
              ],
              "description": "Single AbuseIPDB report entry."
            },
            "description": "Detailed reports returned by AbuseIPDB."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Total number of reports matching the request."
              },
              "page": {
                "type": "integer",
                "description": "Current report page number."
              },
              "count": {
                "type": "integer",
                "description": "Number of reports returned in the current page."
              },
              "perPage": {
                "type": "integer",
                "description": "Requested page size for the report list."
              },
              "lastPage": {
                "type": "integer",
                "description": "Last available page number for the report list."
              },
              "nextPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next page URL returned by AbuseIPDB when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "previousPageUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Previous page URL returned by AbuseIPDB when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "total",
              "page",
              "count",
              "perPage",
              "lastPage",
              "nextPageUrl",
              "previousPageUrl"
            ],
            "description": "Pagination metadata returned by the AbuseIPDB reports endpoint."
          }
        },
        "additionalProperties": false,
        "required": [
          "reports",
          "pagination"
        ],
        "description": "Detailed AbuseIPDB reports returned for a single IP address."
      }
    }
  ]
}
