{
  "openapi": "3.0.1",
  "info": {
    "title": "PyPI Package Scraper API - Releases, Metadata & Dependencies",
    "description": "Search canonical PyPI JSON metadata for package releases, dependencies, Python requirements, classifiers, license declarations, yanked files, upload dates, hashes, project links, and release age. Built for dependency review, release monitoring, and package inventory workflows.",
    "version": "0.1",
    "x-build-id": "UU5D9paaunstsNqgw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pink_comic~pypi-package-intelligence/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pink_comic-pypi-package-intelligence",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/pink_comic~pypi-package-intelligence/runs": {
      "post": {
        "operationId": "runs-sync-pink_comic-pypi-package-intelligence",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/pink_comic~pypi-package-intelligence/run-sync": {
      "post": {
        "operationId": "run-sync-pink_comic-pypi-package-intelligence",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "packages": {
            "title": "Package Names",
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "description": "One to 20 exact PyPI package names.",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,199}$"
            },
            "default": [
              "requests"
            ]
          },
          "version": {
            "title": "Exact Version",
            "type": "string",
            "description": "Exact release version. Requires exactly one package.",
            "default": ""
          },
          "includeHistory": {
            "title": "Include Release History",
            "type": "boolean",
            "description": "Return newest bounded releases instead of only the current release.",
            "default": false
          },
          "maxReleases": {
            "title": "Maximum Releases Per Package",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "History candidate bound per package.",
            "default": 10
          },
          "maxFiles": {
            "title": "Maximum Files Per Release",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Bound returned wheels/sdists while retaining total and truncation evidence.",
            "default": 20
          },
          "maxDependencies": {
            "title": "Maximum Dependencies Per Release",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Bound requires-dist declarations while retaining truncation evidence.",
            "default": 100
          },
          "classifier": {
            "title": "Classifier Contains",
            "type": "string",
            "description": "Case-insensitive classifier substring, such as Programming Language :: Python :: 3.",
            "default": ""
          },
          "pythonRequirement": {
            "title": "Python Requirement Contains",
            "type": "string",
            "description": "Case-insensitive requires_python substring.",
            "default": ""
          },
          "licenseKeyword": {
            "title": "License Contains",
            "type": "string",
            "description": "Case-insensitive publisher license text or License classifier substring. Not a legal conclusion.",
            "default": ""
          },
          "yankedStatus": {
            "title": "Yanked File Status",
            "enum": [
              "all",
              "yanked",
              "not_yanked"
            ],
            "type": "string",
            "description": "Filter by whether any release file is marked yanked.",
            "default": "all"
          },
          "uploadedFrom": {
            "title": "Uploaded On or After",
            "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, evaluated against valid release-file upload dates.",
            "default": ""
          },
          "uploadedTo": {
            "title": "Uploaded On or Before",
            "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, evaluated against valid release-file upload dates.",
            "default": ""
          },
          "dependencyKeyword": {
            "title": "Dependency Contains",
            "type": "string",
            "description": "Case-insensitive requires-dist substring.",
            "default": ""
          },
          "extraKeyword": {
            "title": "Provided Extra Contains",
            "type": "string",
            "description": "Case-insensitive provided-extra substring.",
            "default": ""
          },
          "projectStatus": {
            "title": "Project Status Contains",
            "type": "string",
            "description": "Development Status classifier substring, such as Production/Stable.",
            "default": ""
          },
          "maxResults": {
            "title": "Maximum Release Items",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Total paid output cap across all packages. The default first run returns one item even though this allows larger custom lists.",
            "default": 1
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}