# Mekler AI Package Registry Identity Checker

> Mekler AI Package Registry Identity Checker is a paid API for AI agents from api.mekler.ai, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-30).

Checks whether a PyPI or npm package name and optional version exist in the public registry, and compares up to five candidate names for normalized-name equality and typosquat-level edit-distance confusion.

## Facts

- Endpoint: POST https://api.mekler.ai/v1/data/packages/check-registry-identity?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mekler-ai-package-registry-identity-checker-643d5d4e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JcZ0zPHi-WDr7s2vz9xtn

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 mekler-ai-package-registry-identity-checker-643d5d4e -d '<json body>'
```

Example prompt: Can you check if the npm package 'lodash' at version '4.17.21' actually exists in the registry, and compare it against 'iodash', 'Iodash', and 'lodaash' to see if any of those could be confused with it?

## When to prefer this

Use this endpoint when you need a lightweight, non-downloading existence and identity check against PyPI or npm — especially when evaluating whether a package name could be a typosquat or impersonation of a known package. Prefer this over full vulnerability or malware scanners when you only need to confirm existence and name similarity without executing or fetching package code.

## Known failure modes

- Package not found in registry — exists: false returned, not an error
- Requested version not present — version_exists: false, package_exists may still be true
- Invalid ecosystem value — validation error returned
- compare_names array exceeds 5 items — rejected by schema
- Malformed request_id (not matching pattern) — validation error
- Registry temporarily unavailable — upstream fetch failure
- Package deleted or transferred since observation — stale result possible

## How this service works

Check public PyPI or npm package identity and a requested version. Compare up to five supplied candidate names for normalized-name equality and bounded edit-distance confusion. Return sourced existence and version evidence without downloading code. No malware, vulnerability, publisher-authenticity or installation-safety guarantee.

## Output

Returns a JSON object with the primary package's existence, version existence, and registry source URL; plus per-candidate comparison results showing edit distance, normalized-name equality, and whether possible name confusion exists. Also includes a list of limitations and an observed_at timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "name": {
   "type": "string",
   "maxLength": 128
  },
  "version": {
   "type": [
    "string",
    "null"
   ],
   "maxLength": 80
  },
  "ecosystem": {
   "enum": [
    "pypi",
    "npm"
   ],
   "type": "string"
  },
  "request_id": {
   "type": "string",
   "pattern": "^[A-Za-z0-9_-]{16,64}$"
  },
  "compare_names": {
   "type": "array",
   "items": {
    "type": "string",
    "maxLength": 128
   },
   "default": [],
   "maxItems": 5
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "status": "ok",
  "identity": {
   "name": "pip",
   "exists": true,
   "version": "1.0.0",
   "source_url": "https://pypi.org/pypi/pip/json",
   "package_exists": true,
   "version_exists": null,
   "requested_version": null
  },
  "ecosystem": "pypi",
  "comparisons": [
   {
    "name": "pip-tools",
    "exists": true,
    "version": "1.0.0",
    "source_url": "https://pypi.org/pypi/pip-tools/json",
    "edit_distance": 6,
    "package_exists": true,
    "version_exists": null,
    "requested_version": null,
    "same_normalized_name": false,
    "possible_name_confusion": false
   }
  ],
  "limitations": [
   "Public PyPI and npm registry lookup at observation time; no package is downloaded or executed.",
   "Existence is not authenticity, security, vulnerability clearance or a recommendation to install. A missing requested version does not establish that the package name is absent.",
   "Name-confusion evidence compares only the supplied maximum five candidates using normalized names and Levenshtein distance <= 2; it is not an exhaustive typosquat search.",
   "Registry maintainer identities, emails and package descriptions are excluded. Deleted, transferred or newly published packages may change after this observation."
  ],
  "observed_at": "2026-10-20T00:00:00Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mekler-ai-package-registry-identity-checker-643d5d4e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.mekler.ai](https://www.zero.xyz/host/api.mekler.ai/llms.txt)
