Packagist Php Packages Scraper avatar

Packagist Php Packages Scraper

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Packagist Php Packages Scraper

Packagist Php Packages Scraper

Search Packagist PHP packages, track download stats, and analyze vendor libraries. Easily download structured datasets in JSON, CSV, or Excel formats

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

B2B Lead Generation

B2B Lead Generation

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

Packagist PHP Packages Scraper: PHP packages search and stats

Packagist PHP Packages Scraper collects public PHP package lists, summaries, download counts, and favorites from Packagist. You can search by keyword, look up specific vendor/package names, or walk through every package a vendor publishes. The extracted dataset easily exports to JSON, CSV, or Excel formats.

Use cases

  • PHP package search: Pull the top Packagist matches for a library name before adding it to composer.json.
  • Download stats: Compare all-time downloads and favorites for packages you already depend on.
  • Vendor inventory: List a vendor such as Symfony, then attach the public summary and download total to each package.
  • Type checks: Keep rows whose Composer type matches library, symfony-bundle, or another category you specify.
  • Scheduled exports: Drop the same structured columns into a spreadsheet regularly so package lists stay easy to compare over time.

Input

ParameterTypeDefaultDescription
searchQueriesarray["laravel"]Keywords sent for package search, one per line. Clear the list if you only want named packages or specific vendors.
packageNamesarrayemptyvendor/package names to load in detail, including download stats and version details.
vendorsarrayemptyVendor slugs to collect. Each vendor is listed, and its packages are gathered up to your set cap.
typestringemptyComposer type to keep (e.g., library). Filtered on package metadata after retrieval.
maxItemsinteger100Maximum package rows per run (1 to 1000).
requestDelaySecsnumber0.3Pause between steps to ensure smooth runs.
timeoutSecsinteger300Stops starting new tasks after this duration in seconds.
requestTimeoutSecsinteger30Timeout per individual request.

Package names are processed first, followed by vendor lists, and then general search queries. Duplicates are automatically merged so each package appears once.

Example input

{
"searchQueries": ["laravel"],
"packageNames": ["monolog/monolog"],
"vendors": [],
"type": "",
"maxItems": 100,
"requestDelaySecs": 0.3,
"timeoutSecs": 300,
"requestTimeoutSecs": 30
}

Data Output

Each extracted row gives you a clear snapshot of package information. The summary text uses packageDescription to keep structured datasets clean and readable.

{
"name": "laravel/framework",
"packageDescription": "The Laravel Framework.",
"url": "[https://packagist.org/packages/laravel/framework](https://packagist.org/packages/laravel/framework)",
"repository": "[https://github.com/laravel/framework](https://github.com/laravel/framework)",
"downloads": 593824320,
"favers": 35448,
"latestVersion": "",
"packageType": "",
"mode": "search",
"scraped_at": "2026-10-12T00:00:00+00:00"
}

Detailed lookups and vendor listings also populate additional fields like latestVersion, packageType, and downloadsMonthly whenever that data is available. If an invalid package name is provided, the run continues smoothly and records the attempt:

{
"error": "Package not found",
"input": "not-a-real-vendor/not-a-real-package",
"status": 404,
"mode": "detail",
"scraped_at": "2026-10-12T00:00:00+00:00"
}
FieldTypeDescription
namestringFull package name (vendor/package).
packageDescriptionstringSummary description of the package.
urlstringWeb link to the package listing.
repositorystringDirect link to the source repository.
downloadsintegerTotal all-time download count.
faversintegerNumber of community favorites/stars on the platform.
latestVersionstringNewest release version available.
packageTypestringDeclared Composer type (e.g., library, bundle).
downloadsMonthlyintegerMonthly download count when available.
modestringCollection mode (detail, vendor, or search).
scraped_atstringUTC timestamp of when the row was recorded.
errorstringPresent if an entry could not be retrieved.
inputstringThe requested search term, package, or vendor associated with an error.
statusintegerResult status code for tracking output status.

FAQ

How fresh are download stats? Stats represent current counts at the moment of collection. Search results include overall download counts and favorites, while direct detail lookups break numbers down further into monthly and total figures.

What happens if a package name is wrong or missing? If a specific package name isn't found, it gets saved as an error row in your dataset detailing what failed. The rest of your batch will continue running normally without interruption.

Why is the summary named packageDescription? We use packageDescription to ensure column naming remains compatible and consistent across spreadsheet and database exports. The content matches the main summary text of the package.

Can I export data to CSV or Excel? Yes! You can download your completed run data directly as JSON, CSV, or Excel depending on your workflow needs.

Trademark Notice

Packagist PHP Packages and related names, logos, and trademarks belong to their respective owners. Their use in this documentation is solely to identify the target topic and does not imply affiliation, sponsorship, endorsement, or official partnership.

Disclaimer

This tool is an independent solution and is not officially affiliated with, endorsed by, or sponsored by Packagist or its maintainers. All data is gathered from public sources. Users are responsible for complying with relevant usage terms and licensing requirements.

This scraper collects publicly available information without requiring user accounts or bypassing access controls. Collecting public data is widely practiced, but usage contexts matter:

  • Personal data: If your results happen to contain personal information (such as personal contributor names or details), local regulations such as GDPR or CCPA may apply. Ensure you handle personal information responsibly and with legitimate purpose.
  • Copyright: Always ensure you respect copyrighted work such as long-form content or media. Do not republish protected material without permission.
  • Terms & guidelines: Keep automated requests reasonable, respect community rate limits, and follow standard attribution guidelines.
  • Legal advice: This documentation provides general operational context and is not legal advice. Consult a legal expert if you have specific regulatory questions.

For more information, feel free to read Apify's helpful overview: Is web scraping legal?