{"uid":"cap_JcZ0zPHi-WDr7s2vz9xtn","slug":"mekler-ai-package-registry-identity-checker-643d5d4e","name":"Mekler AI Package Registry Identity Checker","description":"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.","url":"https://api.mekler.ai/v1/data/packages/check-registry-identity?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"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}}},"responseSchema":{"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"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_WzYlRTL0UqNFwrArPVhCT","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"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.","exampleAgentPrompt":"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?","exampleUseCases":[{"title":"Typosquat detection before install","prompt":"Before I install this Python package, check if 'requets' exists on PyPI and compare it against 'requests', 'reqests', and 'rquests' — tell me if any of them are suspiciously close in name."},{"title":"Verify pinned dependency version exists","prompt":"Can you confirm that npm package 'express' at version '4.18.2' actually exists in the npm registry right now?"},{"title":"Validate new package name before publishing","prompt":"I'm about to publish a PyPI package called 'fastjson-utils' — can you check if that name already exists, and also compare it with 'fastjsonutils', 'fast-json-utils', and 'fastjson_utils' to see if there's a naming conflict?"}],"resultDescription":"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.","failureModes":["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"],"whenToPreferThis":"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.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-30T00:31:12.203Z","isFirstParty":false,"canonicalSlug":"mekler-ai-package-registry-identity-checker-643d5d4e"}