A deterministic yes or no for whether a function, class, or constant exists in a PyPI or npm package, answered from the real published artifact. Not a model opinion. A lookup with proof.
Retrieval engines can only tell you what they found. This oracle also tells you what is absent, and proves it: the negative answer names the exact artifact that was indexed, signed by the verifier wallet.
PyPI wheels parsed with the Python AST, npm packages through their .d.ts declarations (with an @types fallback). Same input, same answer, every time.
When the symbol is absent, closest_match lists up to three similar
names that do exist. Usually that is the function you actually wanted.
Every answer carries proof.artifact_sha256 and source_url
for the artifact checked, plus an EIP-191 attestation anyone can verify free at
/receipts/verify.
Same pipeline as the paid route, 25 calls a day per client IP across the four demo endpoints. This is the exact request:
curl -X POST https://attester.dev/demo/v1/symbol/exists \ -H 'Content-Type: application/json' \ -d '{"ecosystem": "pypi", "package": "requests", "symbol": "get"}'
# 200 OK (trimmed) { "exists": true, "reason": null, "kind": "function", "deprecated": false, "since_version": null, "closest_match": null, "version_resolved": "2.34.2", "source": "ingested", "proof": { "source_url": "https://pypi.org/project/requests/", "artifact_sha256": "2a0d60c1…", "extracted_at": "2026-07-21T23:24:58+00:00" }, "attestation": { "verdict": "exists", "…": "…" }, "attestation_hash": "0x…", "signature": "0x…", "served_in_ms": 12 }
A miss looks the same with
"exists": false, "reason": "symbol_not_found", and
closest_match filled in. Request body:
{"ecosystem": "pypi" | "npm", "package": str, "symbol": str, "version": str | null}.
The optional version adds a note when it differs from the indexed release;
v1 answers come from the latest indexed version of the package.
The demo route is free: 25 calls per day per client IP, no headers, reset 00:00 UTC, HTTP 429 when spent. The paid route is POST /v1/symbol/exists at $0.005 per call, payable per call with x402 (USDC on Base) or with prepaid credits (X-API-Key from the Stripe pack). Packages not yet indexed are ingested on the spot when the registry has them, bounded per request. One honest limit: symbols created dynamically at runtime can hide from static analysis, so a negative means "absent from the indexed artifact", with the artifact named.
Full request and payment details in /llms.txt. Charge and refund rules in /policy.