PyPI Package Dependency Intelligence avatar

PyPI Package Dependency Intelligence

Pricing

Pay per usage

Go to Apify Store
PyPI Package Dependency Intelligence

PyPI Package Dependency Intelligence

Extract Python package dependency declarations, release cadence, maintainer hints, download stats, and OSV vulnerability summaries from the official PyPI JSON API.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Analyze Python packages from the official PyPI JSON API and export flattened rows for package summaries, release cadence, dependency declarations, maintainer hints, optional download stats, and optional OSV vulnerability signals.

This actor is built for direct package watchlists. It does not scrape PyPI HTML search pages.

Inputs

FieldDefaultNotes
packagesrequiredPyPI package names such as requests, fastapi, django, or numpy.
includeReleaseHistorytrueEmit release_version rows.
includeDownloadStatsfalseAdd recent counts from pypistats.org when available.
includeVulnerabilitiesfalseAdd OSV advisory summaries.
maxReleaseRowsPerPackage100Cap release rows per package.
maxDependencyRowsPerPackage250Cap dependency rows per package.
concurrency5Parallel package fetches.
timeoutMs15000Per-request timeout in ms.
deliverydatasetdataset or webhook.
webhookUrlemptyRequired when delivery=webhook.
dryRunfalseSkip dataset and webhook delivery.

Dataset Rows

The dataset is flattened so it can be filtered and joined without unpacking one large object.

package_summary

  • packageName, normalizedPackageName, requestedName, status
  • version, summary, license, requiresPython
  • author, authorEmail, maintainer, maintainerEmail
  • homePage, sourceUrl, issueTrackerUrl, projectUrls
  • releaseCount, firstReleaseAt, latestReleaseAt, releaseCadenceDays
  • dependencyCount, emittedDependencyCount
  • downloadLastDay, downloadLastWeek, downloadLastMonth when enabled
  • vulnerabilityCount, vulnerabilities when enabled
  • contactHints, warnings, fetchedAt

release_version

  • packageName, version, uploadTime, fileCount
  • packageTypes, yanked, yankReason, fetchedAt

dependency

  • packageName, packageVersion
  • dependencyName, normalizedDependencyName
  • dependencyGroup such as runtime, conditional, or extra:socks
  • versionSpec, extras, environmentMarker
  • rawRequirement, parseStatus, fetchedAt

Example Input

{
"packages": ["requests", "fastapi"],
"includeReleaseHistory": true,
"includeDownloadStats": false,
"includeVulnerabilities": false,
"maxReleaseRowsPerPackage": 25,
"maxDependencyRowsPerPackage": 250,
"concurrency": 3,
"timeoutMs": 15000,
"delivery": "dataset",
"webhookUrl": "",
"dryRun": false
}

Local Development

npm install
npm test
node src/index.js

output/result.json contains the full payload for local inspection. On Apify, dataset delivery writes the flattened rows.

Limitations

  • V1 is direct package lookup only; PyPI HTML search is out of scope.
  • Requires-Dist parsing is pragmatic. The original PEP 508 string is always preserved as rawRequirement.
  • pypistats.org and OSV are optional external enrichments and can return warnings without failing the package.
  • OSV output is an advisory summary and should not be treated as a complete vulnerability audit.