# Pwned Password Check (k-Anonymity SHA-1)

> Pwned Password Check (k-Anonymity SHA-1) is a paid API for AI agents from dev-utils.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-11-02).

Checks whether a password has appeared in known data breaches using k-anonymity: you send only the first 5 hex chars of its SHA-1 hash, and the service returns a breach count and verdict.

## Facts

- Endpoint: GET https://dev-utils.x402tookit.com/pwned-password?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pwned-password-check-k-anonymity-sha-1-99e2f491
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0udc6Buu77Fnzi65fag4T

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability pwned-password-check-k-anonymity-sha-1-99e2f491
```

Example prompt: Check if the password 'CorrectHorseBatteryStaple' has ever shown up in a data breach — compute its SHA-1 hash yourself and use the k-anonymity lookup so the actual password never leaves my machine.

## When to prefer this

Choose this endpoint when you need to check password breach exposure without transmitting the raw password — it implements k-anonymity by design (only 5 hex chars go upstream), making it safe for privacy-sensitive workflows. Prefer it over full-hash or plaintext submission APIs whenever user password privacy is a requirement. Ideal for registration flows, security audits, and password manager integrations where compliance or trust matters.

## Known failure modes

- Invalid or malformed SHA-1 hash (not 40 hex characters) returns an error
- Non-hex characters in the sha1 query param cause a bad request
- Upstream breach database unavailable may return degraded=true or an error
- Missing required sha1 query parameter returns a validation error
- Rate limiting or payment failure returns 402 or 429 responses

## How this service works

Seen in breaches? Send the password's SHA-1 (never the password); only 5 hex chars go upstream. Count and verdict.

## Output

Returns a JSON object with: 'found' (boolean indicating breach presence), 'count' (number of times seen in breach data), 'verdict' (short risk label), 'summary' (human-readable explanation), 'source' and 'sourceUrl' (data source attribution), 'hashPrefixSentUpstream' (the 5 hex chars actually transmitted), 'rowsInRange' (how many hashes were in the k-anonymity range), 'asOf' (data freshness timestamp), 'reasons' (list of explanatory strings), 'disclaimer', 'degraded' flag, 'inputMode', and 'notChecked' list if any checks were skipped.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "sha1"
     ],
     "properties": {
      "sha1": {
       "type": "string",
       "description": "40-hex SHA-1 of the password, computed by you, so the password itself never reaches this service"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "count": {
       "type": [
        "null",
        "number"
       ]
      },
      "found": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "verdict": {
       "type": [
        "null",
        "string"
       ]
      },
      "degraded": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "inputMode": {
       "type": [
        "null",
        "string"
       ]
      },
      "sourceUrl": {
       "type": [
        "null",
        "string"
       ]
      },
      "disclaimer": {
       "type": [
        "null",
        "string"
       ]
      },
      "notChecked": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "rowsInRange": {
       "type": [
        "null",
        "number"
       ]
      },
      "hashPrefixSentUpstream": {
       "type": [
        "null",
        "string"
       ]
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pwned-password-check-k-anonymity-sha-1-99e2f491/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from dev-utils.x402tookit.com](https://www.zero.xyz/host/dev-utils.x402tookit.com/llms.txt)
