POST /v1/symbol/exists · x402 · signed

Does that function actually exist?

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.

Free demo
25 calls/day
Paid price
$0.005/call
Paid route
/v1/symbol/exists
Pay with
x402 · credits
Answer time
~10–50 ms
What you get

A negative you can ship.

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.

01

Deterministic lookup

PyPI wheels parsed with the Python AST, npm packages through their .d.ts declarations (with an @types fallback). Same input, same answer, every time.

02

Closest matches on a miss

When the symbol is absent, closest_match lists up to three similar names that do exist. Usually that is the function you actually wanted.

03

Artifact proof, signed

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.

Live, free, no key

Try it against the demo route.

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.

Pricing and limits

Free to evaluate, cheap to run.

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.

Keep reading