{
  "name": "Packagist Popular PHP Packages API",
  "description": "Popular PHP Composer packages on Packagist with package name, description, download and favorite counts, and package link.",
  "api_id": "generated_f85e54f9e882678465d75f31",
  "slug": "packagist-popular-php-packages-api",
  "source": {
    "name": "Packagist Popular PHP Packages",
    "domain": "packagist.org",
    "url": "https://packagist.org/"
  },
  "category": "public_data",
  "countries": [],
  "languages": [],
  "record_types": [],
  "tags": [],
  "limitations": [],
  "updated": "2026-11-05",
  "note": "Sample records are saved samples, not a live run. CleanedWeb is not affiliated with the source.",
  "endpoints": [
    {
      "endpoint_id": "generated_f85e54f9e882678465d75f31_search",
      "name": "Extract records",
      "description": "Return records within the accepted scope.",
      "definition_version": "2cd72ffa88411177a31e8ddb4b485eaa807cd00a557bd23a08dd3cfe63558ecf",
      "method": "POST",
      "path": "/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/run",
      "url": "https://broker.cleanedweb.com/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/run",
      "authentication": {
        "type": "bearer",
        "scheme": "Authorization: Bearer <API key>",
        "scope": "run",
        "note": "Reading this file and the live catalog needs no credential. A run needs a CleanedWeb account and uses the credits of its workspace.",
        "docs": "https://cleanedweb.com/docs/run-catalog-api/"
      },
      "required_headers": [
        {
          "name": "Authorization",
          "value": "Bearer YOUR_API_KEY",
          "description": "An API key with the run scope."
        },
        {
          "name": "Idempotency-Key",
          "value": "UNIQUE_REQUEST_ID",
          "description": "Required. Save it before you send; reuse it only to retry the same request and to read the result. 1-200 characters: letters, numbers, . _ : -"
        },
        {
          "name": "Content-Type",
          "value": "application/json",
          "description": "The body is JSON."
        }
      ],
      "request_body": {
        "input": "An object that follows input_schema.",
        "max_items": "Optional. Stop after this many records.",
        "timeout_seconds": "Optional, 60-86400, default 10800.",
        "wait_seconds": "Optional, 0-86400, default 90. How long the request waits before answering 202."
      },
      "input_schema": {
        "type": "object",
        "properties": {
          "continuation": {
            "type": "string",
            "minLength": 32,
            "maxLength": 128,
            "description": "Resume an unfinished collection with the continuation returned by the previous call."
          },
          "read_on": {
            "type": "boolean",
            "default": false,
            "description": "With a continuation from a call that reached its max_pages or max_records, read on past that total; the limits given with this call then count from here. Limits are otherwise totals across continuation calls."
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "title",
          "url"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "metadata_block": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "examples": [
        {
          "kind": "saved_validation_records",
          "saved_at": "2026-11-03T17:58:40.244Z",
          "live_verified": false,
          "request": {
            "input": {}
          },
          "records_shown": 2,
          "records_saved": 2,
          "records": [
            {
              "description": "A generic function and convention to trigger deprecation notices",
              "metadata_block": 988428866,
              "title": "symfony/deprecation-contracts",
              "url": "https://packagist.org/packages/symfony/deprecation-contracts"
            },
            {
              "description": "A PHP parser written in PHP",
              "metadata_block": 1046239639,
              "title": "nikic/php-parser",
              "url": "https://packagist.org/packages/nikic/php-parser"
            }
          ]
        }
      ],
      "request_example": {
        "body": {
          "input": {},
          "max_items": 25
        },
        "curl": "curl -X POST https://broker.cleanedweb.com/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/run \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Idempotency-Key: UNIQUE_REQUEST_ID\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"input\": {},\n  \"max_items\": 25\n}'"
      },
      "result": {
        "method": "GET",
        "url": "https://broker.cleanedweb.com/v1/catalog/public/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/result",
        "note": "A run that does not end within wait_seconds answers 202. Read the result with the same API key and the same Idempotency-Key."
      },
      "links": {
        "page": "https://cleanedweb.com/catalog/packagist-popular-php-packages-api/",
        "markdown": "https://cleanedweb.com/catalog/packagist-popular-php-packages-api/index.md",
        "live_contract": "https://app.cleanedweb.com/api/catalog/apis/generated_f85e54f9e882678465d75f31/endpoints/generated_f85e54f9e882678465d75f31_search/contract",
        "run_docs": "https://cleanedweb.com/docs/run-catalog-api/"
      }
    }
  ],
  "links": {
    "page": "https://cleanedweb.com/catalog/packagist-popular-php-packages-api/",
    "markdown": "https://cleanedweb.com/catalog/packagist-popular-php-packages-api/index.md",
    "contract": "https://cleanedweb.com/catalog/packagist-popular-php-packages-api/contract.json",
    "catalog": "https://cleanedweb.com/catalog/",
    "index": "https://cleanedweb.com/catalog/index.json",
    "openapi": "https://cleanedweb.com/catalog/openapi.json"
  }
}
