# Packagist Popular PHP Packages API

> Popular PHP Composer packages on Packagist with package name, description, download and favorite counts, and package link.

- Page: https://cleanedweb.com/catalog/packagist-popular-php-packages-api/
- Contract (JSON): https://cleanedweb.com/catalog/packagist-popular-php-packages-api/contract.json
- Source: packagist.org (https://packagist.org/)
- Category: Public data
- Updated: 2026-11-05

A run reads until the source ends or your `max_items`, `timeout_seconds` or budget stops it.

## Key fields

| Field | Type | Sample value |
| --- | --- | --- |
| `title` | string | `symfony/deprecation-contracts` |
| `description` | string | `A generic function and convention to trigger deprecation notices` |
| `url` | string | `https://packagist.org/packages/symfony/deprecation-contracts` |
| `metadata_block` | integer | `988428866` |

Sample values come from one saved record, not a live run. Every field with its type, and the schemas, are in https://cleanedweb.com/catalog/packagist-popular-php-packages-api/contract.json

## Inputs

This API has no filters. A run reads the whole collection.

`continuation` and `read_on` resume a run that stopped early; see https://cleanedweb.com/catalog/packagist-popular-php-packages-api/contract.json.

## Request

`POST https://broker.cleanedweb.com/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/run`

```bash
curl -X POST https://broker.cleanedweb.com/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/run \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: UNIQUE_REQUEST_ID" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {},
  "max_items": 25
}'
```

Send an `Idempotency-Key` header with every run and save it before you send. Reuse it only to retry the same request. If the run does not end within `wait_seconds`, read the result with the same API key and key:

`GET https://broker.cleanedweb.com/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/result`

## Run it

Reading the catalog needs no credential. Running needs a CleanedWeb account and an API key with the `run` scope; the first 5,000 records are free, then $1 per 1,000 records. See https://cleanedweb.com/docs/run-catalog-api/

CleanedWeb is not affiliated with Packagist Popular PHP Packages.
