Packagist Scraper โ PHP Composer Packages & Downloads
Pricing
from $0.0005 / package scraped
Packagist Scraper โ PHP Composer Packages & Downloads
Look up exact PHP Composer packages or search Packagist in bulk and get clean structured data: latest version, total/monthly/daily downloads, favers, type, license, authors, requirements, repository and homepage. Built for dependency audits, dev tooling and n8n.
Pricing
from $0.0005 / package scraped
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Packagist Scraper โ PHP Composer Package Metadata, Versions, Downloads & Requirements
Look up exact PHP Composer packages by name or search Packagist in bulk and get back clean, structured JSON for every package: latest version, total, monthly and daily download counts, favers, package type, license, authors, requirements, and repository and homepage links. Built for PHP developers, dependency auditors and OSS analysts who need reliable, ready-to-use Composer package data. Export to JSON, CSV or Excel.
Features
- ๐ฏ Exact lookups โ pass precise
vendor/namepackages likemonolog/monolog,guzzlehttp/guzzleorsymfony/consoleand get one clean record each. - ๐ Bulk search โ run a free-text query (
http client,logging,orm) and collect matching packages up to your limit. - ๐ Download metrics โ capture
total,monthlyanddailydownloads plusfaversfor popularity and trend analysis. - ๐งพ Licenses & requirements โ every record includes
license,typeand the latest version'srequiresmap for fast auditing. - ๐ Ready-to-use links โ
repository,homepageand the canonical Packagisturl. - ๐งฉ Integrations โ plug the output straight into n8n, Make, Zapier and more.
- โ๏ธ Reliable by design โ retry-with-backoff and graceful handling of missing packages so runs finish cleanly.
What you get
Each package becomes one clean JSON record.
{"name": "monolog/monolog","description": "Sends your logs to files, sockets, inboxes, databases and various web services","latestVersion": "3.10.0","downloads": { "total": 1051647307, "monthly": 18488587, "daily": 337950 },"favers": 22272,"repository": "https://github.com/Seldaek/monolog","type": "library","license": ["MIT"],"authors": ["Jordi Boggiano"],"requires": { "php": ">=8.1", "psr/log": "^2.0 || ^3.0" },"homepage": "https://github.com/Seldaek/monolog","url": "https://packagist.org/packages/monolog/monolog","ok": true}
Output schema
| Field | Type | Description |
|---|---|---|
name | string | Package name in vendor/name form. |
description | string | Package description / summary. |
latestVersion | string | Latest published version. |
downloads | object | Download counts: total, monthly and daily. |
favers | integer | Number of users who favorited the package. |
repository | string (URL) | Source repository URL. |
type | string | Composer package type (e.g. library, symfony-bundle). |
license | array | SPDX license identifiers. |
authors | array | Package author names. |
requires | object | Requirements of the latest version (package โ version constraint). |
homepage | string (URL) | Project homepage. |
url | string (URL) | Canonical Packagist page for the package. |
ok | boolean | true for a fetched package; false with an error for one that could not be found. |
Input
{"packages": ["monolog/monolog", "guzzlehttp/guzzle", "symfony/console"],"search": "http client","maxItems": 100}
| Field | Description |
|---|---|
packages | Exact vendor/name packages to look up. Always fetched, in addition to any search results. |
search | Free-text query matching package name and description. Matches are collected up to maxItems. |
maxItems | Maximum number of packages to collect from the search query (1โ5000). |
Provide packages, search, or both in a single run.
Use cases
- Audit the licenses and requirements of the packages in your
composer.jsonbefore shipping. - Track download momentum to compare competing packages in a category.
- Build a catalog of packages for a topic (e.g. HTTP clients) for research or content.
- Enrich an internal dependency dashboard with versions, descriptions and repo links.
Pricing
Pay-per-event: you're billed a small amount per package scraped โ you only pay for what you get. See the Pricing tab for current rates.
FAQ
How many packages can I scrape per run?
Add any number of exact vendor/name packages in the packages field and collect up to maxItems (5000) more from a search query โ all in one run.
What's the output format?
Structured JSON โ one record per package with fields such as latestVersion, downloads, favers, type, license, authors and requires. Export as JSON, CSV, Excel or via the API.
What happens to a package name that doesn't exist?
It's returned as a record with ok: false and an error, so a typo never breaks the run โ every other package is still scraped.
Can I use this with n8n? Yes. Run the actor from the Apify node for n8n and map the package records straight into your workflow โ enrich a dependency list, trigger alerts on new versions, or sync package data into a database or spreadsheet.
Can I connect this Actor to other apps? The Packagist Scraper works with almost any cloud service or web app thanks to integrations on the Apify platform: Make, Zapier, Slack, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Related Actors
Tracking packages across ecosystems? Pair this with our other developer-data scrapers:
- npm Package Scraper โ search and look up npm packages with metadata, dependencies and downloads.
- PyPI Package Scraper โ metadata, dependencies, licenses and downloads for Python packages.
- RubyGems Scraper โ Ruby gems with downloads, versions, licenses and dependencies.
- crates.io Scraper โ Rust crates with downloads, versions, license and repository links.
Notes
This actor reads only publicly available package data from Packagist. It is an independent tool and is not affiliated with, endorsed by, or sponsored by Packagist, Composer or their maintainers; "Packagist" and "Composer" are trademarks of their respective owners. Original clean-room implementation.