npm API: Get package
Looks up a public npm package by name or npm link. Returns its latest version, weekly downloads, maintainers, links, dates and version count.
Unofficial. Not affiliated with or endorsed by npm.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Package, required
package The npm package name or npm package page link, for example react, @angular/core, or https://www.npmjs.com/package/react.
@angular/core
Input as JSON
{ "package": "@angular/core" }Output
{ "name": "@angular/core" , "license": "MIT", "homepage": "https://github.com/angular/angular#readme" , "description": "Angular - the core framework", "maintainers": [ "angular", "google-wombot" ], "created_date": "2016-04-28", "npm_page_link": "https://www.npmjs.com/package/@angular/core" , "latest_version": "22.2.3", "repository_link": "https://github.com/angular/angular.git" , "weekly_downloads": 3415695, "last_publish_date": "2026-10-14", "number_of_versions": 1124}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"npmjs.com/get_package","input":{"package":"@angular/core"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "npmjs.com/get_package" , "input": { "package": "@angular/core" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "npmjs.com/get_package" , "input": { "package": "@angular/core" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run npmjs.com/get_package# with {"package":"@angular/core"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "package" ], "properties": { "package": { "type": "string", "description": "The npm package name or npm package page link, for example react, @angular/core, or https://www.npmjs.com/package/react." } }}Output schema
{ "type": "object", "required": [ "name", "latest_version", "description", "weekly_downloads", "license", "repository_link", "homepage", "maintainers", "last_publish_date", "created_date", "number_of_versions", "npm_page_link" ], "properties": { "name": { "type": "string" }, "license": { "type": [ "string", "null" ] }, "homepage": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "maintainers": { "type": "array", "items": { "type": "string" } }, "created_date": { "type": [ "string", "null" ] }, "npm_page_link": { "type": "string" }, "latest_version": { "type": [ "string", "null" ] }, "repository_link": { "type": [ "string", "null" ] }, "weekly_downloads": { "type": [ "integer", "null" ] }, "last_publish_date": { "type": [ "string", "null" ] }, "number_of_versions": { "type": "integer" } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
npmjs.com/get_package- Returns
- name, latest version, description, weekly downloads, license, repository, homepage, maintainers, dates, version count, npm link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method npmjs.com/get_package with the inputs above.
Ask your agent
- What's the latest version of the lodash package and how many weekly downloads does it get?
- Can you pull up the maintainers and license for @angular/core?
- Look up the npm package at https://www.npmjs.com/package/express and tell me its repository and homepage links.
- How many versions has the axios package published, and when was it last updated?
- Find the npm page for the zod package on npmjs.com and summarize its description and weekly download count.
See more
All npm methodsReturns total and daily or Monday-start weekly npm downloads for a package over the last week, month, or year.
npmjs.com/get_download_statsSearches the npm registry for JavaScript packages by description or keywords, in npm's search order, and returns each package's latest version, weekly downloads and publish date.
npmjs.com/search_packagesLooks up a NuGet package by name or nuget.org link. Inexact names match the top search result. Returns the latest stable release's details and the 10 most recent versions, including prereleases.
nuget.org/get_packageGets a PyPI package's current version, release date, metadata, project links and its 10 most recently published versions from a package name or PyPI link.
pypi.org/get_packageLooks up a Ruby gem on RubyGems by name or gem page link and returns its latest version, release date, description, downloads, authors, license, links and runtime dependencies.
rubygems.org/get_gemFinds a VS Code Marketplace extension by name or marketplace link and returns its publisher, installs, rating, version, categories and update date. For a name search it picks the most-installed close match.
marketplace.visualstudio.com/get_extensionLooks up a Go module on pkg.go.dev by path, link or name. For a name, it uses the module of the top package search result.
pkg.go.dev/get_moduleLooks up a public GitHub repository by name, owner/name, or link and returns its stars, forks, release, commit and contributor facts.
github.com/get_repository