{"openapi":"3.1.0","info":{"title":"pkgpulse","version":"1.0.0","description":"Dependency intelligence for AI coding agents, paid per-call via x402 (USDC on Base): npm package health scores with a disclosed rubric, typosquat checks, dependency audits. Free index at /, free sample at /api/sample."},"servers":[{"url":"https://pkgpulse.letom1176.workers.dev"}],"paths":{"/api/package-health":{"get":{"summary":"0-100 npm package health score with disclosed, re-derivable rubric","description":"Paid via x402 ($0.005 USDC on Base, network eip155:8453). Request without payment returns HTTP 402 with payment requirements + a free preview body.","x-price-usd":"$0.005","x-payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","payTo":"0xe61e9aae81810f199a7d313c355688b28e0f41b9"},"parameters":[{"name":"name","in":"query","description":"npm package name (scoped ok)","required":true,"schema":{"type":"string"},"example":"express"}],"responses":{"200":{"description":"JSON payload"},"402":{"description":"Payment required (x402 challenge + free preview)"}}}},"/api/typosquat-check":{"get":{"summary":"Typosquat/imitation risk for an npm package name, graded with the package's own registry facts","description":"Paid via x402 ($0.003 USDC on Base, network eip155:8453). Request without payment returns HTTP 402 with payment requirements + a free preview body.","x-price-usd":"$0.003","x-payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","payTo":"0xe61e9aae81810f199a7d313c355688b28e0f41b9"},"parameters":[{"name":"name","in":"query","description":"npm package name to check","required":true,"schema":{"type":"string"},"example":"expresss"}],"responses":{"200":{"description":"JSON payload"},"402":{"description":"Payment required (x402 challenge + free preview)"}}}},"/api/pick":{"get":{"summary":"Rank 2-5 alternative packages with full health reports and a quantified recommendation","description":"Paid via x402 ($0.01 USDC on Base, network eip155:8453). Request without payment returns HTTP 402 with payment requirements + a free preview body.","x-price-usd":"$0.01","x-payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","payTo":"0xe61e9aae81810f199a7d313c355688b28e0f41b9"},"parameters":[{"name":"names","in":"query","description":"comma-separated npm package names (2-5)","required":true,"schema":{"type":"string"},"example":"axios,got,undici"}],"responses":{"200":{"description":"JSON payload"},"402":{"description":"Payment required (x402 challenge + free preview)"}}}},"/api/deps-audit":{"post":{"summary":"Audit a whole dependency map: existence (hallucination guard), deprecation, install scripts, staleness — up to 40 packages","description":"Paid via x402 ($0.02 USDC on Base, network eip155:8453). Request without payment returns HTTP 402 with payment requirements + a free preview body.","x-price-usd":"$0.02","x-payment":{"protocol":"x402","network":"eip155:8453","asset":"USDC","payTo":"0xe61e9aae81810f199a7d313c355688b28e0f41b9"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A package.json, a {dependencies: {name: range}} map, or an array of package names"}}}},"responses":{"200":{"description":"JSON payload"},"402":{"description":"Payment required (x402 challenge + free preview)"}}}},"/api/sample":{"get":{"summary":"FREE: full real package-health payload for 'express' — the exact paid shape","responses":{"200":{"description":"JSON payload"}}}}}}