Packagist PHP Packages Scraper
Pricing
from $30.37 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

🐘 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 engineers | Discover packages by tag and audit dependency health |
| Security and compliance | Catalog dependency licenses and detect abandoned packages |
| Hosting and managed PHP | Build internal mirrors and dependency dashboards |
| Open-source maintainers | Track adoption metrics for your own packages |
| Research and analytics | Study the PHP ecosystem and Composer adoption curves |
📋 What the Packagist PHP Packages Scraper does
- 🔎 Keyword search. Pass a query like
symfony,laravel, orormand stream every matching package. - 🏷️ Type filter. Restrict to
library,project,metapackage,composer-plugin,symfony-bundle,wordpress-plugin, ordrupal-module. - 🏷️ Tag filter. Combine tags like
["orm", "framework"]to narrow further. - 📦 Detail mode. Pass a list of
vendor/nameids 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
requiremap. - 🚨 Abandoned flag. Search results surface the upstream
abandonedmarker 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
| Field | Type | Description |
|---|---|---|
mode | enum | search or packageDetail. Default search. |
query | string | Keyword search across packages. Required in search mode. |
type | enum | Composer type filter. One of library, project, metapackage, composer-plugin, symfony-bundle, wordpress-plugin, drupal-module. |
tags | array | Tag filter, for example ["orm", "framework"]. |
packageNames | array | List of vendor/name ids for packageDetail mode. |
maxItems | integer | Free 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
maxItemsis reached.
📊 Output
Each record is a flat JSON object with the fields below. Field availability depends on the chosen mode.
🧾 Schema
| Field | Type | Example |
|---|---|---|
🆔 mode | string | search |
🏷️ name | string | laravel/framework |
🏢 vendor | string | laravel |
📦 packageName | string | framework |
🔗 url | string | https://packagist.org/packages/laravel/framework |
📝 description | string | The Laravel Framework. |
🐙 repository | string | https://github.com/laravel/framework |
⬇️ downloads | number | 525255647 |
⭐ favers | number | 35180 |
🚨 abandoned | string | successor-package-name |
📥 monthlyDownloads | number | 12500000 |
📅 dailyDownloads | number | 420000 |
🧮 totalDownloads | number | 525255647 |
👥 dependentsCount | number | 12300 |
💡 suggestersCount | number | 450 |
⭐ githubStars | number | 34501 |
👁️ githubWatchers | number | 34501 |
🍴 githubForks | number | 12000 |
🐛 githubOpenIssues | number | 220 |
👤 maintainers | array | [{ "name": "taylorotwell", "avatar": "..." }] |
🏷️ latestVersion | string | v11.30.0 |
📅 latestVersionTime | string | 2026-04-30T10:00:00+00:00 |
🪪 latestLicense | array | ["MIT"] |
⏱️ scrapedAt | string | 2026-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
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| ⭐ Packagist PHP Packages Scraper (this Actor) | Free tier available | Whole Packagist catalog | On-demand | Query, type, tags, names | One JSON input |
| Direct API integration | Engineering time | Whatever you build | Custom | Custom code | High |
| Composer CLI scripting | Free | Local only | Per-command | None | Shell expertise |
| Paid dependency intelligence | $100+ per month | Often broader, multi-ecosystem | Daily | Vendor-specific | Account, 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
- 🔐 Create a free Apify account. Sign up at Apify and claim the $5 starter credit.
- 🎚️ Open the actor. Pick
searchfor discovery orpackageDetailfor enrichment. - 🔎 Set filters. Add a query, optional type, and tag list for search. List
vendor/nameids for detail mode. - ▶️ Run it. Free users get a 10-row preview, paid users can pull up to 1,000,000 records per run.
- 📤 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
🌟 Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
🔌 Automating Packagist PHP Packages Scraper
Drive this actor from your own stack with a few lines of code.
- Trigger runs from Node.js using the Apify JavaScript client
- Trigger runs from Python using the Apify Python client
- Read the Apify REST API docs to call the actor over HTTP
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.
⚖️ Is scraping this data legal?
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
🔗 Recommended Actors
- 📦 NPM Packages Scraper - inspect Node.js package metadata, downloads, and versions
- 🐙 GitHub Trending Scraper - track trending repos by language and time window
- 🦀 Crates.io Scraper - browse the Rust package registry with the same shape
- 🔎 CrossRef Scraper - pull peer-reviewed software engineering research papers
- 🌐 Wikidata Entity Search Scraper - enrich vendor and project records with structured entity links
💡 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.