npm hub

npm Org Packages API

The packages one npm org or scope can publish, 25 at a time, with the stored scope type and the package facts.

GET /v1/npm/org/packages

1 credit Failed requests are free

About this endpoint

GET /v1/npm/org/packages?name=babel returns data.packages, one page of 25 rows with name, description, version, distTags, maintainers, publisher, lastPublish, publishedAt, createdAt, updatedAt, types and isHighImpact. data.name is the org or scope, data.scopeType is what npm stores, and data.page carries page, perPage, hasMore, nextCursor and total.

Page numbers are 1-based and each page is 25 rows. A page past the end is found with an empty list. cursor continues from data.page.nextCursor and cannot be combined with page. A name npm does not have returns lookupStatus: not_found with an empty list.

npm Org Packages API FAQ

How do I get every package of a large org?

Start at page 1 and keep following data.page.nextCursor while data.page.hasMore is true. Each page is 25 rows and a separate request. Stop when hasMore is false instead of fetching an empty page.

What does scopeType tell me?

scopeType is the type npm stores for the name, which can be a user scope rather than an org. Pair it with GET /v1/npm/org for the full profile.

What is the difference from the user packages route?

Both page packages an account can publish. This route also accepts an org name and reports scopeType, so either route works for a personal account.

What happens for an org with no packages?

The response is found with data.packages: [] and hasMore false. The profile route still returns the org's own fields. Use GET /v1/npm/org to confirm the org exists.

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.