{
  "service": "haveibeenpwned",
  "displayName": "Have I Been Pwned",
  "categories": [
    "Security",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "HIBP_API_KEY",
      "description": "Have I Been Pwned API key sent with the hibp-api-key request header. Buy or view it on the official API key page: https://haveibeenpwned.com/API/Key.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://haveibeenpwned.com/",
  "actions": [
    {
      "id": "haveibeenpwned.get_breach",
      "service": "haveibeenpwned",
      "name": "get_breach",
      "description": "Get one breach by its stable HIBP Name value.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Stable breach Name value to retrieve from HIBP."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input parameters for retrieving one HIBP breach."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breach": {
            "type": "object",
            "properties": {
              "Name": {
                "type": "string",
                "minLength": 1,
                "description": "Stable breach name returned by HIBP."
              },
              "Title": {
                "type": "string",
                "minLength": 1,
                "description": "Display title of the breach returned by HIBP."
              },
              "Domain": {
                "type": "string",
                "minLength": 1,
                "description": "Primary domain associated with the breach."
              },
              "BreachDate": {
                "type": "string",
                "description": "Date when the breach occurred in YYYY-MM-DD format.",
                "format": "date"
              },
              "AddedDate": {
                "type": "string",
                "description": "Timestamp when the breach was added to HIBP.",
                "format": "date-time"
              },
              "ModifiedDate": {
                "type": "string",
                "description": "Timestamp when the breach was last modified in HIBP.",
                "format": "date-time"
              },
              "PwnCount": {
                "type": "integer",
                "minimum": 0,
                "description": "Number of breached accounts loaded into HIBP."
              },
              "Description": {
                "type": "string",
                "minLength": 1,
                "description": "HTML description of the breach returned by HIBP."
              },
              "DataClasses": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "One compromised data class returned by HIBP."
                },
                "description": "Alphabetically ordered list of compromised data classes."
              },
              "IsVerified": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as verified."
              },
              "IsFabricated": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as fabricated."
              },
              "IsSensitive": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as sensitive."
              },
              "IsRetired": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as retired."
              },
              "IsSpamList": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as a spam list."
              },
              "IsMalware": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as malware-sourced."
              },
              "IsSubscriptionFree": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as subscription-free."
              },
              "IsStealerLog": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as sourced from stealer logs."
              },
              "LogoPath": {
                "type": "string",
                "minLength": 1,
                "description": "Logo URI or asset path returned by HIBP for the breached service."
              },
              "Attribution": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Optional attribution string returned by HIBP."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Full breach model returned by Have I Been Pwned."
          }
        },
        "additionalProperties": false,
        "required": [
          "breach"
        ],
        "description": "Single breach returned by Have I Been Pwned."
      }
    },
    {
      "id": "haveibeenpwned.get_latest_breach",
      "service": "haveibeenpwned",
      "name": "get_latest_breach",
      "description": "Get the most recently added breach in Have I Been Pwned.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for retrieving the latest HIBP breach."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breach": {
            "type": "object",
            "properties": {
              "Name": {
                "type": "string",
                "minLength": 1,
                "description": "Stable breach name returned by HIBP."
              },
              "Title": {
                "type": "string",
                "minLength": 1,
                "description": "Display title of the breach returned by HIBP."
              },
              "Domain": {
                "type": "string",
                "minLength": 1,
                "description": "Primary domain associated with the breach."
              },
              "BreachDate": {
                "type": "string",
                "description": "Date when the breach occurred in YYYY-MM-DD format.",
                "format": "date"
              },
              "AddedDate": {
                "type": "string",
                "description": "Timestamp when the breach was added to HIBP.",
                "format": "date-time"
              },
              "ModifiedDate": {
                "type": "string",
                "description": "Timestamp when the breach was last modified in HIBP.",
                "format": "date-time"
              },
              "PwnCount": {
                "type": "integer",
                "minimum": 0,
                "description": "Number of breached accounts loaded into HIBP."
              },
              "Description": {
                "type": "string",
                "minLength": 1,
                "description": "HTML description of the breach returned by HIBP."
              },
              "DataClasses": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "One compromised data class returned by HIBP."
                },
                "description": "Alphabetically ordered list of compromised data classes."
              },
              "IsVerified": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as verified."
              },
              "IsFabricated": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as fabricated."
              },
              "IsSensitive": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as sensitive."
              },
              "IsRetired": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as retired."
              },
              "IsSpamList": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as a spam list."
              },
              "IsMalware": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as malware-sourced."
              },
              "IsSubscriptionFree": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as subscription-free."
              },
              "IsStealerLog": {
                "type": "boolean",
                "description": "Whether HIBP marks the breach as sourced from stealer logs."
              },
              "LogoPath": {
                "type": "string",
                "minLength": 1,
                "description": "Logo URI or asset path returned by HIBP for the breached service."
              },
              "Attribution": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Optional attribution string returned by HIBP."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Full breach model returned by Have I Been Pwned."
          }
        },
        "additionalProperties": false,
        "required": [
          "breach"
        ],
        "description": "Most recently added breach returned by Have I Been Pwned."
      }
    },
    {
      "id": "haveibeenpwned.get_subscription_status",
      "service": "haveibeenpwned",
      "name": "get_subscription_status",
      "description": "Get the current subscription details for the connected HIBP API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for retrieving the current HIBP subscription status."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "subscription": {
            "type": "object",
            "properties": {
              "SubscriptionName": {
                "type": "string",
                "minLength": 1,
                "description": "Current HIBP subscription name."
              },
              "Description": {
                "type": "string",
                "minLength": 1,
                "description": "Human-readable description of the current subscription."
              },
              "SubscribedUntil": {
                "type": "string",
                "description": "Timestamp when the current subscription expires.",
                "format": "date-time"
              },
              "Rpm": {
                "type": "integer",
                "minimum": 0,
                "description": "Allowed requests per minute for breach search APIs."
              },
              "DomainSearchMaxBreachedAccounts": {
                "type": "integer",
                "minimum": 0,
                "description": "Largest domain search size supported by the current subscription."
              },
              "MaxBreachedDomains": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Maximum number of breached domains allowed, or null when unlimited."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "IncludesStealerLogs": {
                "type": "boolean",
                "description": "Whether the subscription includes stealer log APIs."
              },
              "IncludesBulkDomainAdd": {
                "type": "boolean",
                "description": "Whether the subscription includes bulk domain add APIs."
              },
              "IncludesAutoSubdomainVerification": {
                "type": "boolean",
                "description": "Whether the subscription includes automatic subdomain verification."
              },
              "IncludesCustomerDomains": {
                "type": "boolean",
                "description": "Whether the subscription allows adding customer domains."
              },
              "IncludesKAnon": {
                "type": "boolean",
                "description": "Whether the subscription includes the k-anonymity breach search API."
              }
            },
            "additionalProperties": false,
            "description": "Subscription status returned by Have I Been Pwned."
          }
        },
        "additionalProperties": false,
        "required": [
          "subscription"
        ],
        "description": "Subscription details returned by Have I Been Pwned."
      }
    },
    {
      "id": "haveibeenpwned.list_breaches",
      "service": "haveibeenpwned",
      "name": "list_breaches",
      "description": "List breaches in Have I Been Pwned and optionally filter by domain or spam-list flag.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "Optional domain filter passed to the HIBP breaches endpoint."
          },
          "isSpamList": {
            "type": "boolean",
            "description": "Optional spam-list filter passed to the HIBP breaches endpoint."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing breaches from Have I Been Pwned."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breaches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "Name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Stable breach name returned by HIBP."
                },
                "Title": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Display title of the breach returned by HIBP."
                },
                "Domain": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Primary domain associated with the breach."
                },
                "BreachDate": {
                  "type": "string",
                  "description": "Date when the breach occurred in YYYY-MM-DD format.",
                  "format": "date"
                },
                "AddedDate": {
                  "type": "string",
                  "description": "Timestamp when the breach was added to HIBP.",
                  "format": "date-time"
                },
                "ModifiedDate": {
                  "type": "string",
                  "description": "Timestamp when the breach was last modified in HIBP.",
                  "format": "date-time"
                },
                "PwnCount": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Number of breached accounts loaded into HIBP."
                },
                "Description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "HTML description of the breach returned by HIBP."
                },
                "DataClasses": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "description": "One compromised data class returned by HIBP."
                  },
                  "description": "Alphabetically ordered list of compromised data classes."
                },
                "IsVerified": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as verified."
                },
                "IsFabricated": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as fabricated."
                },
                "IsSensitive": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as sensitive."
                },
                "IsRetired": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as retired."
                },
                "IsSpamList": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as a spam list."
                },
                "IsMalware": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as malware-sourced."
                },
                "IsSubscriptionFree": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as subscription-free."
                },
                "IsStealerLog": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as sourced from stealer logs."
                },
                "LogoPath": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Logo URI or asset path returned by HIBP for the breached service."
                },
                "Attribution": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Optional attribution string returned by HIBP."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "description": "Full breach model returned by Have I Been Pwned."
            },
            "description": "Breaches returned by Have I Been Pwned."
          }
        },
        "additionalProperties": false,
        "required": [
          "breaches"
        ],
        "description": "Breach catalogue entries returned by Have I Been Pwned."
      }
    },
    {
      "id": "haveibeenpwned.list_data_classes",
      "service": "haveibeenpwned",
      "name": "list_data_classes",
      "description": "List all data classes currently used by breaches in Have I Been Pwned.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for listing HIBP data classes."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataClasses": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One data class returned by HIBP."
            },
            "description": "Alphabetically ordered HIBP data classes."
          }
        },
        "additionalProperties": false,
        "required": [
          "dataClasses"
        ],
        "description": "Data classes returned by Have I Been Pwned."
      }
    },
    {
      "id": "haveibeenpwned.list_pastes_for_account",
      "service": "haveibeenpwned",
      "name": "list_pastes_for_account",
      "description": "List paste exposures for an email address from Have I Been Pwned.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "emailAddress": {
            "type": "string",
            "description": "Email address to search for paste exposures in HIBP.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "required": [
          "emailAddress"
        ],
        "description": "Input parameters for listing HIBP paste exposures for one email address."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pastes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "Source": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Paste service name returned by HIBP."
                },
                "Id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Paste identifier returned by the source service."
                },
                "Title": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Paste title returned by HIBP when present."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "Date": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Paste timestamp returned by HIBP when present.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "EmailCount": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Number of emails found in the paste."
                }
              },
              "additionalProperties": false,
              "description": "Paste model returned by Have I Been Pwned."
            },
            "description": "Paste exposures returned by HIBP for the requested email address."
          }
        },
        "additionalProperties": false,
        "required": [
          "pastes"
        ],
        "description": "Paste exposures returned by Have I Been Pwned."
      }
    },
    {
      "id": "haveibeenpwned.search_breached_account",
      "service": "haveibeenpwned",
      "name": "search_breached_account",
      "description": "Search full HIBP breach models for an email address, with optional domain and unverified-breach filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "emailAddress": {
            "type": "string",
            "description": "Email address to search in Have I Been Pwned.",
            "format": "email"
          },
          "domain": {
            "type": "string",
            "minLength": 1,
            "description": "Optional domain filter applied to the breached account search."
          },
          "includeUnverified": {
            "type": "boolean",
            "description": "Whether to include breaches flagged as unverified in the HIBP account search."
          }
        },
        "additionalProperties": false,
        "required": [
          "emailAddress"
        ],
        "description": "Input parameters for searching breaches for one email address in HIBP."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breaches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "Name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Stable breach name returned by HIBP."
                },
                "Title": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Display title of the breach returned by HIBP."
                },
                "Domain": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Primary domain associated with the breach."
                },
                "BreachDate": {
                  "type": "string",
                  "description": "Date when the breach occurred in YYYY-MM-DD format.",
                  "format": "date"
                },
                "AddedDate": {
                  "type": "string",
                  "description": "Timestamp when the breach was added to HIBP.",
                  "format": "date-time"
                },
                "ModifiedDate": {
                  "type": "string",
                  "description": "Timestamp when the breach was last modified in HIBP.",
                  "format": "date-time"
                },
                "PwnCount": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Number of breached accounts loaded into HIBP."
                },
                "Description": {
                  "type": "string",
                  "minLength": 1,
                  "description": "HTML description of the breach returned by HIBP."
                },
                "DataClasses": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "description": "One compromised data class returned by HIBP."
                  },
                  "description": "Alphabetically ordered list of compromised data classes."
                },
                "IsVerified": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as verified."
                },
                "IsFabricated": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as fabricated."
                },
                "IsSensitive": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as sensitive."
                },
                "IsRetired": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as retired."
                },
                "IsSpamList": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as a spam list."
                },
                "IsMalware": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as malware-sourced."
                },
                "IsSubscriptionFree": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as subscription-free."
                },
                "IsStealerLog": {
                  "type": "boolean",
                  "description": "Whether HIBP marks the breach as sourced from stealer logs."
                },
                "LogoPath": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Logo URI or asset path returned by HIBP for the breached service."
                },
                "Attribution": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Optional attribution string returned by HIBP."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "description": "Full breach model returned by Have I Been Pwned."
            },
            "description": "Full breach models returned by HIBP for the requested email address."
          }
        },
        "additionalProperties": false,
        "required": [
          "breaches"
        ],
        "description": "Breach search results returned by Have I Been Pwned."
      }
    }
  ]
}
