query-registry v4.0.0
query-registry
query-registry is an API wrapper for the npm registry API.
Features
- Provides functions to:
- Get registry metadata.
- Get registry public keys.
- Get packuments (package documents) with full package metadata.
- Get abbreviated packuments with installation data only.
- Get package manifests for each version of a package.
- Get download counts for the registry and for packages.
- Search packages by name and other specific criteria.
- Works in the browser.
- Validates registry responses with zod.
- Automatically caches registry responses for a short time.
- Supports third-party npm-compatible registries.
Useful resources
- Explore the API on jsDocs.io
- View package contents on unpkg
- View repository on GitHub
- Read the changelog on GitHub
Install
Using npm:
npm add query-registryUsing yarn:
yarn add query-registryUsing pnpm:
pnpm add query-registryUsing bun:
bun add query-registryUsage examples
Registry
Get the metadata about the npm registry itself, if available:
import { getRegistryMetadata } from "query-registry";
const metadata = await getRegistryMetadata();Get the public signing keys for the npm registry:
import { getRegistrySigningKeys } from "query-registry";
const { keys } = await getRegistrySigningKeys();Packuments (Package documents)
Get the abbreviated packument containing only the necessary data to install the react package:
import { getAbbreviatedPackument } from "query-registry";
const abbrPackument = await getAbbreviatedPackument("react");Get the full packument containing all the data available about the react package:
import { getPackument } from "query-registry";
const packument = await getPackument("react");Package manifests
Get the manifest containing the original package.json data plus additional registry metadata for the latest version of the react package:
import { getPackageManifest } from "query-registry";
const manifest = await getPackageManifest("react");Get the manifest for react@18.2.0 (semver version):
import { getPackageManifest } from "query-registry";
const manifest = await getPackageManifest("react", "18.2.0");Get the manifest for react@next (distribution tag):
import { getPackageManifest } from "query-registry";
const manifest = await getPackageManifest("react", "next");Search packages
Search packages related to react (e.g., react, react-dom, ...):
import { searchPackages } from "query-registry";
const results = await searchPackages({ text: "react" });Download counts
Get the total number of downloads for package react for the last month:
import { getPackageDownloads } from "query-registry";
const { downloads } = await getPackageDownloads("react", "last-month");There are also these other download counts functions available: getBulkDailyPackageDownloads, getBulkPackageDownloads, getDailyPackageDownloads, getDailyRegistryDownloads and getPackageVersionsDownloads.
Cache
Clear the internal cache.
import { cache } from "query-registry";
cache.clear();See the quick-lru package for the cache API.
License
MITCopyright (c) 2025 Edoardo Scibona
See LICENSE file.
10 months ago
1 year ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago