Packagist PHP Packages Scraper avatar

Packagist PHP Packages Scraper

Pricing

from $30.37 / 1,000 results

Go to Apify Store
Packagist PHP Packages Scraper

Packagist PHP Packages Scraper

Scrape PHP package metadata from Packagist public API. Get package name, vendor, description, latest version, downloads, dependencies, repository, license. No API key required.

Pricing

from $30.37 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

🐘 Packagist PHP Packages Scraper

🚀 Search the entire Packagist PHP catalog in seconds. Filter by keyword, type, or tags, then enrich with downloads, dependencies, and GitHub stats. No API key, no registration, no manual CSV wrangling.

🕒 Last updated: 2026-05-12 · 📊 Up to 24 fields per record · Search 400,000+ PHP packages indexed by Packagist · Composer-compatible types including Symfony bundles, WordPress plugins, Drupal modules · Hourly upstream refresh

The Packagist PHP Packages Scraper turns the official Packagist.org public API into a clean, ready-to-use dataset. Packagist is the default Composer registry for PHP and the canonical source for every public PHP library, framework, plugin, and tool. The actor exposes two modes: search for keyword-driven discovery and packageDetail for deep enrichment of a specific package by vendor/name.

In search mode you get vendor, package name, description, repository, downloads, and favers (stargazers) for every match, with optional type filter (library, project, symfony-bundle, wordpress-plugin, drupal-module, and more) and tag filters (orm, framework, testing, ...). In packageDetail mode you get the full enrichment: monthly and daily and total downloads, dependent count, suggester count, GitHub stars and watchers and forks and open issues, maintainer list, latest version with timestamp, license, keywords, homepage, and the latest require map. The output is flat JSON ready to push into a dashboard, dependency audit, or vendor inventory.

🎯 Target audience💼 Primary use cases
PHP and Composer engineersDiscover packages by tag and audit dependency health
Security and complianceCatalog dependency licenses and detect abandoned packages
Hosting and managed PHPBuild internal mirrors and dependency dashboards
Open-source maintainersTrack adoption metrics for your own packages
Research and analyticsStudy the PHP ecosystem and Composer adoption curves

📋 What the Packagist PHP Packages Scraper does

  • 🔎 Keyword search. Pass a query like symfony, laravel, or orm and stream every matching package.
  • 🏷️ Type filter. Restrict to library, project, metapackage, composer-plugin, symfony-bundle, wordpress-plugin, or drupal-module.
  • 🏷️ Tag filter. Combine tags like ["orm", "framework"] to narrow further.
  • 📦 Detail mode. Pass a list of vendor/name ids and get the full Packagist metadata for each.
  • 🐙 GitHub stats baked in. Detail records include stars, watchers, forks, and open issues when the repository is on GitHub.
  • ⬇️ Download metrics. Monthly, daily, and total downloads pre-computed, plus favers (stargazer count on Packagist).
  • 📌 Latest version metadata. Detail mode resolves the most recent stable version, its release date, license, keywords, and require map.
  • 🚨 Abandoned flag. Search results surface the upstream abandoned marker when present.

Each record carries a mode discriminator (search or packageDetail) so you can union both shapes in one downstream table.

💡 Why it matters: PHP powers a significant share of the web through WordPress, Laravel, Drupal, Symfony, and countless custom apps. A clean Packagist feed lets engineering, security, and product teams reason about real dependency choices instead of guessing.


🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing how to search by tag, enrich with detail mode, and route results into a vendor inventory.


⚙️ Input

FieldTypeDescription
modeenumsearch or packageDetail. Default search.
querystringKeyword search across packages. Required in search mode.
typeenumComposer type filter. One of library, project, metapackage, composer-plugin, symfony-bundle, wordpress-plugin, drupal-module.
tagsarrayTag filter, for example ["orm", "framework"].
packageNamesarrayList of vendor/name ids for packageDetail mode.
maxItemsintegerFree users 10, paid users up to 1,000,000.

Example: top Laravel packages by Packagist relevance.

{
"mode": "search",
"query": "laravel",
"maxItems": 100
}

Example: enrich a curated set of dependencies.

{
"mode": "packageDetail",
"packageNames": ["symfony/symfony", "laravel/framework", "guzzlehttp/guzzle"],
"maxItems": 10
}

⚠️ Good to Know: Packagist sorts search results by relevance to your query, not by downloads. Use detail mode to get download metrics for ranking. Search mode paginates internally at 100 per page until your maxItems is reached.


📊 Output

Each record is a flat JSON object with the fields below. Field availability depends on the chosen mode.

🧾 Schema

FieldTypeExample
🆔 modestringsearch
🏷️ namestringlaravel/framework
🏢 vendorstringlaravel
📦 packageNamestringframework
🔗 urlstringhttps://packagist.org/packages/laravel/framework
📝 descriptionstringThe Laravel Framework.
🐙 repositorystringhttps://github.com/laravel/framework
⬇️ downloadsnumber525255647
faversnumber35180
🚨 abandonedstringsuccessor-package-name
📥 monthlyDownloadsnumber12500000
📅 dailyDownloadsnumber420000
🧮 totalDownloadsnumber525255647
👥 dependentsCountnumber12300
💡 suggestersCountnumber450
githubStarsnumber34501
👁️ githubWatchersnumber34501
🍴 githubForksnumber12000
🐛 githubOpenIssuesnumber220
👤 maintainersarray[{ "name": "taylorotwell", "avatar": "..." }]
🏷️ latestVersionstringv11.30.0
📅 latestVersionTimestring2026-04-30T10:00:00+00:00
🪪 latestLicensearray["MIT"]
⏱️ scrapedAtstring2026-05-12T16:30:27.799Z

📦 Sample records


✨ Why choose this Actor

Capability
🆓No API key. Packagist exposes a public API, and this actor inherits that.
🔎Keyword and tag filtering. Stream by query, type, and tag in one call.
📦Two modes. Lightweight search for discovery, deep detail for enrichment.
🐙GitHub stats included. Stars, forks, watchers, open issues on detail mode.
📌Latest version metadata. Release date, license, keywords, and require map.
🚨Abandoned marker. Surface deprecation signals from upstream.
🔌Integrates everywhere. Land results in Sheets, Notion, Slack, or a database.

📊 400,000+ packages searchable, 24 fields per record on detail mode, 1 free actor.


📈 How it compares to alternatives

ApproachCostCoverageRefreshFiltersSetup
⭐ Packagist PHP Packages Scraper (this Actor)Free tier availableWhole Packagist catalogOn-demandQuery, type, tags, namesOne JSON input
Direct API integrationEngineering timeWhatever you buildCustomCustom codeHigh
Composer CLI scriptingFreeLocal onlyPer-commandNoneShell expertise
Paid dependency intelligence$100+ per monthOften broader, multi-ecosystemDailyVendor-specificAccount, key, SDK

For teams that want PHP dependency intelligence without writing API client code, this actor is the shortest path from question to row.


🚀 How to use

  1. 🔐 Create a free Apify account. Sign up at Apify and claim the $5 starter credit.
  2. 🎚️ Open the actor. Pick search for discovery or packageDetail for enrichment.
  3. 🔎 Set filters. Add a query, optional type, and tag list for search. List vendor/name ids for detail mode.
  4. ▶️ Run it. Free users get a 10-row preview, paid users can pull up to 1,000,000 records per run.
  5. 📤 Export. Download JSON, CSV, or Excel, or push results into Google Sheets, Airtable, Slack, Notion, or a database via Apify integrations.

⏱️ Total time from sign-up to first dataset: about 90 seconds.


💼 Business use cases

🛠️ Engineering and platform

  • Inventory the dependency graph of your PHP apps
  • Spot abandoned packages and plan replacements
  • Track GitHub stars and forks across vendor libraries
  • Build internal dashboards of approved packages

🔒 Security and compliance

  • License audits across the dependency tree
  • Detect packages with low maintainer counts
  • Watch for sudden adoption drops or repo deletions
  • Cross-reference Packagist with vulnerability feeds

📊 Analytics and BI

  • Ecosystem-wide adoption studies of PHP frameworks
  • Trend reports on Composer type distributions
  • Tag popularity over time across years
  • Top-100 dashboards by downloads, favers, or stars

🧰 Tooling and integrations

  • Power internal package search portals
  • Sync Packagist data into a developer-experience dashboard
  • Drive recommendation engines for new projects
  • Refresh marketing site comparison tables

🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

🎓 Research and academia

  • Empirical datasets for papers, thesis work, and coursework
  • Longitudinal studies tracking changes across snapshots
  • Reproducible research with cited, versioned data pulls
  • Classroom exercises on data analysis and ethical scraping

🎨 Personal and creative

  • Side projects, portfolio demos, and indie app launches
  • Data visualizations, dashboards, and infographics
  • Content research for bloggers, YouTubers, and podcasters
  • Hobbyist collections and personal trackers

🤝 Non-profit and civic

  • Transparency reporting and accountability projects
  • Advocacy campaigns backed by public-interest data
  • Community-run databases for local issues
  • Investigative journalism on public records

🧪 Experimentation

  • Prototype AI and machine-learning pipelines with real data
  • Validate product-market hypotheses before engineering spend
  • Train small domain-specific models on niche corpora
  • Test dashboard concepts with live input

🔌 Automating Packagist PHP Packages Scraper

Drive this actor from your own stack with a few lines of code.

Schedules let you re-pull a curated vendor inventory weekly, watch a single package daily, or sync a search query across all packages on a cron.


❓ Frequently Asked Questions

💰 Is there a cost to run this Actor?

The actor itself is free to use on Apify. You pay only for the platform compute and storage you consume during a run. New accounts come with $5 of starter credit, which covers many small runs.

🔑 Do I need a Packagist API key?

No. The actor uses public read-only endpoints that do not require authentication. The same endpoints power the official Packagist website.

🏷️ Which Composer types are supported in the filter?

The type enum covers library, project, metapackage, composer-plugin, symfony-bundle, wordpress-plugin, and drupal-module. Leave the field blank to include every type.

🔎 How does search sorting work?

Packagist sorts search results by relevance to your query, not by downloads or stars. To rank by downloads, run search first to gather names then re-run in packageDetail mode and sort downstream.

📦 What does packageDetail mode add?

Detail mode returns the full Packagist payload: monthly, daily, and total downloads, dependent and suggester counts, GitHub stars and watchers and forks and open issues, maintainer list, latest version with release date, license, keywords, homepage, and the latest require map.

🤝 Can I use this Actor for commercial use?

Yes. The Packagist registry is openly accessible and widely used in commercial tooling. You are responsible for following the Packagist terms of service and the license of each individual package.

💳 Do I need a paid Apify plan?

A paid plan is not required. Free accounts can preview up to 10 rows per run. Paid plans unlock up to 1,000,000 rows per run plus larger storage and compute budgets.

🆘 What if a run fails?

Open the run in the Apify console to inspect the log, the input, and any partial dataset. Network errors and upstream rate limits are surfaced as error items in the dataset rather than as silent crashes.

Packagist publishes its API for public consumption. This actor reads only the public endpoints with no login or token, so the data flow is the same one any browser or Composer install would produce. Compliance with the source terms and local law remains your responsibility.

🚨 Are abandoned packages flagged?

Yes. Search results include an optional abandoned field when Packagist marks a package as abandoned, which often names the recommended successor.

🔄 How fresh is the data?

Packagist refreshes its metadata several times per hour. Each run reads the live API, so values reflect the most recent upstream refresh at the moment of the request.


🔌 Integrate with any app

Stream results into the tools your team already uses.

  • Make - low-code automation across thousands of apps
  • Zapier - trigger and route data into 6,000+ services
  • n8n - self-hosted workflow runner with native Apify support
  • Slack - notifications when runs complete or hit anomalies
  • Google Sheets - one-click dataset to spreadsheet sync
  • BigQuery and Snowflake - warehouse loads via webhook or schedule

💡 Pro Tip: browse the complete ParseForge collection for more data feeds across developer ecosystems, research, and analytics.


🆘 Need Help? Open our contact form and a human will reply within one business day.


This Actor accesses publicly available data only. By using it you accept the responsibility to comply with the source's Terms of Service, rate limits, and applicable laws including data-protection regulations. The data is scraped on-demand from the upstream public API and is not cached or pre-stored by this Actor.