Packagist Scraper avatar

Packagist Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Packagist Scraper

Packagist Scraper

Scrape Packagist.org, the main PHP package repository with 400K+ packages. Search by keyword, fetch specific packages, browse popular packages, and get repository statistics.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(4)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

4

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape Packagist.org — the main PHP package repository with 400K+ packages. Extract package metadata including download statistics, GitHub stats, maintainers, version history, and more — all without authentication or API keys.

What does Packagist Scraper do?

Packagist Scraper lets you:

  • Search for packages by keyword with optional type and tag filters
  • Look up any specific package by vendor/package name
  • Browse the most popular packages on Packagist
  • Retrieve aggregate statistics for the entire Packagist ecosystem

All data is sourced from the official Packagist API, which is free, public, and rate-limit friendly.

Input

FieldTypeRequiredDescription
modeSelectOperation mode: search, byVendorPackage, popular, or statistics
queryTextmode=searchSearch keyword (e.g. symfony, laravel, guzzle)
vendorPackageTextmode=byVendorPackagePackage in vendor/package format (e.g. symfony/console)
packageTypeSelectNoFilter by type: library, project, metapackage, composer-plugin, symfony-bundle
tagsArrayNoFilter by tags (e.g. ["psr-7", "http"])
maxItemsIntegerNoMax packages to return (1–1000, default: 50)

Example inputs

Search for Symfony packages:

{
"mode": "search",
"query": "symfony",
"maxItems": 20
}

Look up a specific package:

{
"mode": "byVendorPackage",
"vendorPackage": "symfony/console"
}

Browse popular packages:

{
"mode": "popular",
"maxItems": 30
}

Get Packagist statistics:

{
"mode": "statistics"
}

Output

Each record in the dataset contains:

FieldTypeDescription
nameStringPackage name in vendor/package format
descriptionStringPackage description
urlStringURL on Packagist.org
repositoryStringSource code repository URL
downloadsIntegerTotal all-time downloads
monthlyDownloadsIntegerDownloads in the last 30 days
dailyDownloadsIntegerDownloads in the last day
faversIntegerNumber of users who starred/favorited the package
maintainersArrayList of maintainer usernames
typeStringPackage type (e.g. library, symfony-bundle)
languageStringPrimary programming language
githubStarsIntegerGitHub stars
githubForksIntegerGitHub forks
githubWatchersIntegerGitHub watchers
githubOpenIssuesIntegerOpen GitHub issues
dependentsIntegerNumber of packages that depend on this one
suggestersIntegerNumber of packages that suggest this one
abandonedBooleanWhether the package is abandoned
packageUrlStringDirect URL on Packagist.org
scrapedAtStringTimestamp when the record was scraped

Example output record

{
"name": "symfony/console",
"description": "Eases the creation of beautiful and testable command line interfaces",
"url": "https://packagist.org/packages/symfony/console",
"repository": "https://github.com/symfony/console",
"downloads": 500000000,
"monthlyDownloads": 10000000,
"dailyDownloads": 300000,
"favers": 8000,
"maintainers": ["fabpot", "nicolas-grekas"],
"type": "library",
"language": "PHP",
"githubStars": 15000,
"githubForks": 3000,
"dependents": 10000,
"abandoned": false,
"packageUrl": "https://packagist.org/packages/symfony/console",
"scrapedAt": "2026-05-25T12:00:00+00:00"
}

Modes

search — Search packages by keyword

Search Packagist for packages matching a keyword. Supports filtering by package type and tags. Returns enriched data with GitHub stats and download breakdowns.

byVendorPackage — Get a specific package

Fetch full metadata for a single package by its vendor/package name. Includes all GitHub stats, download breakdown, maintainer list, and more.

Retrieve the most downloaded/popular packages on Packagist with full detail enrichment.

statistics — Repository statistics

Get aggregate statistics for the entire Packagist repository (total packages, downloads, versions).

FAQ

Do I need an API key? No. Packagist's API is completely public and requires no authentication.

How many packages can I scrape? Up to 1,000 per run with the maxItems parameter.

Why is the scraper slower than expected? Packagist's search returns basic data, and the scraper enriches each result with full package details (GitHub stars, download breakdown, etc.) — this requires an additional API call per package. A rate-limit delay of 0.3s between calls ensures respectful scraping.

What package types are available?

  • library — Reusable PHP library (most common)
  • project — Full application skeleton
  • metapackage — Package with no code, only dependencies
  • composer-plugin — Extends Composer itself
  • symfony-bundle — Symfony framework bundle

Can I filter by tags? Yes. Use the tags array input to filter by one or more Packagist tags.

What does abandoned mean? An abandoned package is one the author no longer maintains. Packagist may suggest a replacement package. The abandoned field is true if the package is abandoned.

Is proxy required? No. Packagist's public API has no geo-restrictions and requires no proxy.