npm Blog (Archive)

The npm blog has been discontinued.

Updates from the npm team are now published on the GitHub Blog and the GitHub Changelog.

Deprecating the /-/all registry endpoint

If you’re using this endpoint in your own client for npm’s API, read on for more information. If you only use the official npm clients, this deprecation won’t affect you.

In six months, on September 1 2017, we plan to shut down the servers that back the GET /-/all endpoint of registry.npmjs.org. This endpoint has until recently provided search results for the npm command-line client. If you didn’t know that the npm cli has search built into it, it’s because this API was designed for an era when the registry had an order of magnitude fewer packages. Over the last few years, as the number has gone from 10,000 to 400,000, this API has become increasingly unusable for its purpose. The increasing size of the full json response—234M at the time of this writing—means that even if a request for the payload succeeds, many clients run out of memory when parsing it.

Late in 2016, we improved our web site’s search with a new search service, which we then made available as a public API at GET /-/v1/search. The very latest npm clients use this new search endpoint directly and provide fast and usefully-ordered search results. A few weeks ago we began redirecting older npm clients to the new endpoint as well, which means that no currently-supported cli versions are using the older search data.

If you are using the GET /-/all endpoint to search package contents, we strongly encourage you to use GET /-/v1/search instead. You can find documentation for this endpoint in the registry repo on GitHub.

If you are using the endpoint as a way to get a list of all packages, we encourage you to write a registry follower that watches the changes stream at replicate.npmjs.com for public packages. We provide sample code and libraries to support you.

If you are using the endpoint for another purpose that isn’t supported by either of these two methods, we would like to hear from you. Our intent is to support your use of the npm registry’s public data as efficiently as we can. Contact us to tell us what you need!