PyPI API: Get package
Gets 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.
Unofficial. Not affiliated with or endorsed by PyPI.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Package, required
package Package name or PyPI package link, such as requests or https://pypi.org/project/requests/.
requests
Input as JSON
{ "package": "requests"}Output
{ "name": "requests", "author": "Kenneth Reitz", "license": "Apache-2.0", "summary": "Python HTTP for Humans.", "homepage": null, "pypi_page": "https://pypi.org/project/requests/" , "maintainers": [ "Ian Stapleton Cordasco", "Nate Prewitt" ], "source_code": "https://github.com/psf/requests" , "latest_version": "2.34.2", "last_10_versions": [ { "version": "2.34.2", "pypi_page": "https://pypi.org/project/requests/2.34.2/" , "release_date": "2026-05-14" }, { "version": "2.34.1", "pypi_page": "https://pypi.org/project/requests/2.34.1/" , "release_date": "2026-05-13" }, { "version": "2.34.0", "pypi_page": "https://pypi.org/project/requests/2.34.0/" , "release_date": "2026-05-11" } ], "latest_release_date": "2026-05-14", "supported_python_versions": ">=3.10"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"pypi.org/get_package","input":{"package":"requests"}}' # 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": "pypi.org/get_package" , "input": { "package": "requests" }})# 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": "pypi.org/get_package" , "input": { "package": "requests" } }), 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 pypi.org/get_package# with {"package":"requests"}"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": "Package name or PyPI package link, such as requests or https://pypi.org/project/requests/." } }}Output schema
{ "type": "object", "required": [ "name", "latest_version", "latest_release_date", "summary", "license", "supported_python_versions", "homepage", "source_code", "author", "maintainers", "last_10_versions", "pypi_page" ], "properties": { "name": { "type": "string", "description": "Package name as listed by PyPI." }, "author": { "type": [ "string", "null" ], "description": "Package author, if given." }, "license": { "type": [ "string", "null" ], "description": "License text or expression, if given." }, "summary": { "type": [ "string", "null" ], "description": "Short description of the package." }, "homepage": { "type": [ "string", "null" ], "description": "Project homepage, if given." }, "pypi_page": { "type": "string", "description": "Public PyPI package page." }, "maintainers": { "type": "array", "items": { "type": "string" }, "description": "Package maintainers listed in package metadata." }, "source_code": { "type": [ "string", "null" ], "description": "Project source code link, if given." }, "latest_version": { "type": "string", "description": "Current version chosen by PyPI." }, "last_10_versions": { "type": "array", "items": { "type": "object", "required": [ "version", "release_date", "pypi_page" ], "properties": { "version": { "type": "string" }, "pypi_page": { "type": "string", "description": "PyPI page for this version." }, "release_date": { "type": "string", "format": "date" } }, "additionalProperties": false }, "description": "Ten most recently uploaded versions with known release dates, newest first." }, "latest_release_date": { "type": [ "string", "null" ], "format": "date", "description": "Date the current version was first uploaded, if available." }, "supported_python_versions": { "type": [ "string", "null" ], "description": "Python version requirement, such as >=3.8." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
pypi.org/get_package- Returns
- name, latest version and release date, summary, license, Python requirement, links, author, maintainers, last 10 versions
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 pypi.org/get_package with the inputs above.
Ask your agent
- What's the latest version of the requests package and when was it released?
- Show me the license, summary, and Python version requirement for numpy
- Can you pull up the last 10 releases of flask with their dates?
- Who are the maintainers and author of the pydantic package?
- Get the project links and metadata for https://pypi.org/project/httpx/
See more
All PyPI methodsSearches PyPI by keywords and returns matching packages in relevance order, each with its latest version and that version's release date. Returns up to 100 results.
pypi.org/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_packageLooks up a public npm package by name or npm link. Returns its latest version, weekly downloads, maintainers, links, dates and version count.
npmjs.com/get_packageLooks up a Rust crate by name or crates.io link and returns its latest version, downloads, links, dates, license and 10 most recent releases.
crates.io/get_crateLooks 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 the best-matching WordPress.org plugin by name or plugin page link and returns its details, including the changelog for the latest version when one is available.
wordpress.org/get_pluginGets details, price and availability for a Walmart product by name or product link, using Walmart's default location.
walmart.com/get_productLooks 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