Packagist PHP Packages Scraper
Pricing
from $30.37 / 1,000 results
Packagist PHP Packages Scraper
Scrapes PHP package metadata from Packagist by keyword search or vendor/name list. Returns each package as a flat row with downloads, stars, latest version, license, and dependencies.
Pricing
from $30.37 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
13 days ago
Last modified
Categories
Share
Packagist PHP Packages Scraper
Scrape PHP package metadata from Packagist by keyword search or vendor/name, up to a million per run. Every package comes with its downloads, stars, latest version, license, and dependencies. No API key required. Export to CSV, JSON, Excel, or XML.
Packagist's API rate-limits you and returns paginated JSON you have to stitch together. This reads the public package feeds directly, filtered by type or tags, and returns each match in one fixed schema. It also fetches full detail for a list of vendor/name packages you supply.
| Who uses it | What they scrape Packagist for |
|---|---|
| PHP developers | Audit dependencies across a list of packages for version and license compliance. |
| DevOps engineers | Monitor download counts and latest releases for a set of critical Composer packages. |
| Market researchers | Map the PHP ecosystem by scraping packages tagged with a framework or category. |
What it does
This Actor collects PHP package metadata from Packagist by keyword search or direct vendor/name list, and returns each package as a flat row.
- 🔍 Search mode: find packages by keyword, optionally filtered by Composer type and tags.
- 📦 Detail mode: fetch full metadata for a list of vendor/name packages you specify.
- 🏷️ Tag filtering: narrow search results to packages tagged with specific labels like orm or framework.
- 📊 Flat output: every package returns as one row with downloads, stars, version, license, and dependencies.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Packagist data
📋 Audit dependency licenses.
A compliance team feeds a list of vendor/name packages and checks the license field for every dependency before a release.
📈 Track package popularity.
A developer advocate runs a weekly search for packages tagged 'symfony' and plots download counts to spot rising tools.
🔎 Discover new libraries.
A PHP developer searches for 'queue' with the library type filter and reviews the returned packages for a new project.
🔄 Monitor release cadence.
A DevOps engineer scrapes a list of production packages daily and alerts the team when a new version appears.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Reads public feeds directly, no registration or OAuth. |
| Fixed schema | Every package returns the same fields, ready for analysis. |
| Two modes | Search broadly by keyword or fetch detail for a known list. |
| High volume | Collect up to a million packages per run. |
How it compares
This Actor offers two distinct modes (search and detail) and tag filtering, while the other Packagist scrapers focus on a single workflow.
| Feature | ParseForge | Packagist PHP Package Scraper (gio21) | Packagist PHP Package Scraper (chrisp1211) |
|---|---|---|---|
| Keyword search mode | Yes | Not listed | Not listed |
| Package detail by vendor/name list | Yes | Not listed | Not listed |
| Tag filtering | Yes | Not listed | Not listed |
| Composer type filter | Yes | Not listed | Not listed |
| Downloads and stars | Yes | Yes | Not listed |
| License field | Yes | Yes | Not listed |
| Dependencies list | Yes | Yes | Not listed |
Configure the run
Drive the Actor from a keyword search or a list of vendor/name packages, and filters run as each package is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"mode": "search","query": "symfony","maxItems": 10}
A larger pull:
{"mode": "search","query": "symfony","maxItems": 200}
Pricing
Pay-per-result: $0.0405 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $4.05 |
| 1,000 results | $40.50 |
| 10,000 results | $405.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Packagist PHP Packages Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Packagist through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/packagist-php-packages-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your keyword spelling and try a broader term. If you are using type or tag filters, remove them temporarily to see if they are too restrictive. For Package detail mode, verify each name uses the exact vendor/name format.
The Actor returns fewer packages than my maxItems setting.
This is normal when Packagist has fewer matching packages than your limit. The Actor stops when it exhausts all results. Try a more general keyword or remove filters.
Some package fields are empty in the output.
Not every package on Packagist has a license, tags, or dependencies listed. Empty fields mean the package author did not provide that metadata.
The run fails with a timeout.
Large searches can take time. Increase the run timeout in the Actor's advanced settings, or reduce maxItems to fetch fewer packages per run.
I get an error when using Package detail mode.
Make sure every entry in the Package names list uses the vendor/name format (e.g., symfony/symfony). A missing slash or extra whitespace will cause a lookup failure.
FAQ
| Question | Answer |
|---|---|
| Do I need a Packagist API key? | No. This Actor reads the public feeds and package pages directly, so no registration or API key is required. |
| What fields does each package row contain? | Each row includes the package name, description, downloads, stars, latest version, license, and a list of dependencies. The exact fields are shown in the sample output on the Actor's page. |
| Can I scrape a specific list of packages? | Yes. Switch to Package detail mode and provide a list of vendor/name strings like symfony/symfony or laravel/framework. |
| How do I filter search results by package type? | In Search mode, use the Package type dropdown to limit results to library, symfony-bundle, wordpress-plugin, or other Composer types. |
| Can I filter by tags? | Yes. In Search mode, add tags like orm, framework, or testing to the Tag filter list, and only packages matching those tags will be returned. |
| How many packages can I scrape in one run? | You can set the maximum up to 1,000,000 packages. The Actor stops when it reaches that count or runs out of matching results. |
| What export formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Does this Actor handle pagination automatically? | Yes. It follows Packagist's search result pages and detail links until it collects the number of packages you requested. |
| Can I run this on a schedule? | Yes. Apify supports scheduled runs, so you can set this Actor to scrape daily or weekly and track changes over time. |
| What is the difference between Search and Package detail modes? | Search mode finds packages by keyword, type, and tags. Package detail mode fetches full metadata for a fixed list of vendor/name packages you already know. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Packagist.org. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
