{"uid":"cap_gt05_cUmoBQWY0PlyWDXx","slug":"paket-dependency-bloat-scorer-fb49dbcb","name":"Paket Dependency Bloat Scorer","description":"Scores how much a package costs to depend on, using the resolved graph rather than a guess. Four measurements: the number of transitive nodes, the maximum depth, how many packages appear at more than one version, and the fan-out of the root. From those comes a grade from A to E with every threshold returned, so the judgement can be recomputed with different weights.","url":"https://paket.halowerk.com/v1/dependency-bloat","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"name":{"type":"string","maxLength":300,"minLength":1},"system":{"enum":["npm","pypi","maven","go","cargo","nuget","rubygems"],"type":"string"},"version":{"type":"string","maxLength":60}}},"responseSchema":null,"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_gDHGRtfBJGW_wadbuhWqi","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Scores the cost of depending on a package by analyzing its resolved transitive graph across four metrics—node count, max depth, multi-version conflicts, and root fan-out—returning a grade from A to E with full threshold details.","exampleAgentPrompt":"Can you score the dependency bloat for the npm package 'express' at version 4.18.2 and tell me what grade it gets, along with the transitive node count, max depth, version conflicts, and root fan-out?","exampleUseCases":[{"title":"Pre-adoption dependency vetting","prompt":"Before we add 'webpack' v5.88.0 to our frontend project, can you score its dependency bloat—I want to know the transitive node count, max depth, any multi-version conflicts, root fan-out, and the final A-to-E grade?"},{"title":"CI gate for dependency overhead","prompt":"We're running automated checks on pull requests—can you score the dependency bloat for 'axios' at version 1.6.0 and flag it if the grade is worse than B, so we can block the merge?"},{"title":"Comparing library candidates","prompt":"We're choosing between 'got' and 'node-fetch' for HTTP calls—can you run the dependency bloat score on both and show me the grades and individual metrics so I can pick the leaner one?"}],"resultDescription":"Returns four numeric measurements (transitive node count, maximum graph depth, number of packages appearing at more than one version, and root fan-out), a letter grade from A to E summarizing overall bloat, and the full set of thresholds used to compute the grade so it can be recalculated with custom weights.","failureModes":["Unknown package or version returns a 404 with no graph available","Unsupported ecosystem returns a 400 validation error","Ambiguous package name across ecosystems may require explicit ecosystem qualifier","Graph resolution timeout for very large transitive trees","Stale registry data may cause inaccurate node counts for recently published packages"],"whenToPreferThis":"Choose this endpoint when you need an objective, graph-resolved measurement of dependency weight rather than a simple direct-dependency count or heuristic guess. It is especially valuable before adopting a new library, enforcing bloat budgets in CI pipelines, or comparing candidates, because the grade and thresholds are returned together enabling custom re-weighting without re-calling the API.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:46:21.392Z","isFirstParty":false}