npm hub

npm Dependents API

The packages that depend on a package, 36 at a time, with name, description, version and publish fields.

GET /v1/npm/package/dependents

1 credit Failed requests are free

About this endpoint

GET /v1/npm/package/dependents?name=express returns data.dependents, one row per package that depends on the name, with name, description, version, distTags, maintainers, publisher, lastPublish, publishedAt, createdAt, updatedAt, types and isHighImpact. data.page carries hasMore, nextCursor, page and perPage.

Each page carries 36 rows and the list stops after page 11, so it reaches at most 396 names. That is not the full dependents count, which the package details route reports as dependentsCount. Use page for a numbered request or cursor from the previous answer, not both. A page past page 11 is found with data.dependents: [] and hasMore: false, not an error. An unknown package returns not_found; a package with no dependents returns found with an empty list.

npm Dependents API FAQ

How many dependents can I list?

At most 396, 36 per page across 11 pages. Page 12 and deeper return found with data.dependents: [] and hasMore false. For the total count, read data.package.dependentsCount on GET /v1/npm/package/details instead of paging.

What is the difference between page and cursor?

page is the 1-based page number. Pages 1 to 11 carry rows; a higher page is an empty page. cursor is the opaque value from data.page.nextCursor of the previous response. Give one or the other; sending both is a 400. Cursors are safer if the list changes between requests.

What does not_found mean here?

not_found means the package does not exist. A package that exists but has no dependents is found with an empty list.

Do the rows include download counts?

No. Each row carries package facts and publish data, not downloads. Fetch downloads separately with GET /v1/npm/packages/downloads and join on name.

What does the request cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.