# PyPI Packages Scraper (`parseforge/pypi-packages-scraper`) Actor

Pull Python package data from PyPI. Returns name, version, summary, description, classifiers, license, author, project URLs (homepage, source, issues, docs), Python version requirement, dependencies, release history, last upload, and total release count. Direct lookup by package name.

- **URL**: https://apify.com/parseforge/pypi-packages-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🐍 PyPI Python Package Scraper

> 🚀 **Pull PyPI packages with version, license, classifiers, dependencies, vulnerabilities, release files (wheel + sdist), funding URL, and 33 fields.**

> 🕒 **Last updated:** 2026-05-08 · **📊 33+ fields** per record · **500K+ PyPI packages** · version, classifiers, dependencies, security advisories, release files (wheel + sdist sizes + sha256), license, project URLs

The **PyPI Python Package Scraper** pulls rich package metadata from the Python Package Index. Output includes name, version, summary, description (truncated), license + license expression + license files, author + email, maintainer email, homepage, repository, bug tracker, docs URL, changelog URL, funding URL, classifiers, runtime dependencies, provides_extra optionals, python version requirement, yanked flag, total releases, release files (wheel + sdist with size + SHA-256 + Python version), and security vulnerabilities published by the PyPI Security team.

Direct lookup only - feed a list of package names, get rich records back. The Actor uses the JSON detail endpoint, which is the canonical source for PyPI metadata.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Python developers, security teams, SBOM builders, ML researchers, package-discovery tools, OSS analytics | Python supply chain analysis, vulnerability tracking, SBOM generation, dependency-graph extraction, ecosystem health monitoring |

---

### 📋 What the PyPI Python Package Scraper does

Five filtering workflows in a single run:

- 🆔 **Direct lookup.** One package per line, plain names.
- 🚨 **Vulnerabilities included.** Security advisories from the PyPI Security DB.
- 📦 **Release files.** Per-version wheel + sdist with sizes and SHA-256.
- ⚖️ **License + license files.** Standard license, license expression (PEP 639), license file paths.
- 🔗 **Project URLs.** Homepage, repo, bugs, docs, changelog, funding, all in one map.

> 💡 **Why it matters:** clean, server-side filtering and fresh data on every run.

---
### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan up to 1,000,000.</td></tr>
<tr><td><code>names</code></td><td>string</td><td><code>""</code></td><td>Newline-separated package names (one per line).</td></tr>
</tbody>
</table>

**Example: lookup popular ML packages.**

```json
{
    "maxItems": 10,
    "names": "numpy\npandas\nscikit-learn\ntensorflow\ntorch\ntransformers\nopenai\nlangchain"
}
````

**Example: audit production deps.**

```json
{
    "maxItems": 20,
    "names": "requests\nflask\nfastapi\ndjango\nuvicorn\ngunicorn"
}
```

***

### 📊 Output

Each record contains **33+ fields**. Download as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 📛 `name` | string | `"numpy"` |
| 🏷️ `version` | string | `"2.3.4"` |
| 📝 `summary` | string | `"Fundamental package for array computing in Python"` |
| ⚖️ `license` | string | `"BSD-3-Clause"` |
| ⚖️ `licenseExpression` | string | `"BSD-3-Clause"` |
| 👤 `authorName` | string | `"Travis E. Oliphant et al."` |
| 📧 `authorEmail` | string | `""` |
| 🌐 `homepage` | string | `"https://numpy.org"` |
| 🔗 `repositoryUrl` | string | `"https://github.com/numpy/numpy"` |
| 🔗 `fundingUrl` | string | `"https://numpy.org/about/"` |
| 🏷️ `classifiers` | array | `["Development Status :: 5 - Production/Stable",...]` |
| 📦 `requiresDist` | array | `["pytest >= 4.6"]` |
| 🐍 `pythonRequires` | string | `">=3.10"` |
| 🚨 `yanked` | boolean | `false` |
| 📊 `totalReleases` | number | `392` |
| 📊 `releaseFileCount` | number | `28` |
| 📦 `releaseFiles` | array of objects | `[{"filename":"numpy-2.3.4-cp313-...whl","size":18724328,"sha256":"...","packagetype":"bdist_wheel"}]` |
| 🚨 `vulnerabilities` | array of objects | `[{"id":"PYSEC-2014-...","summary":"...","fixedIn":["1.6.0"]}]` |
| 🌐 `pypiUrl` | string | `"https://pypi.org/project/numpy/"` |

#### 📦 Sample records

<details>
<summary><strong>🐍 numpy</strong></summary>

```json
{"name":"numpy","version":"2.3.4","license":"BSD-3-Clause","totalReleases":392,"releaseFileCount":28,"pythonRequires":">=3.10"}
```

</details>

<details>
<summary><strong>🐍 requests</strong></summary>

```json
{"name":"requests","version":"2.32.5","license":"Apache-2.0","totalReleases":150,"vulnerabilityCount":2}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🚨 | **Vulnerabilities included.** PyPI security advisories with id, summary, fixed versions, link to source. |
| 📦 | **Real release files.** Wheel + sdist URLs with size + SHA-256, ready for SBOM. |
| ⚖️ | **Modern license fields.** license\_expression (PEP 639) and license\_files alongside the legacy license field. |
| 🔗 | **Funding URLs.** Direct funding / sponsor link if the project provides one. |
| 🆓 | **No API key.** PyPI is open. |

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ This Actor** | $5 free credit | **500K+ packages** | Live per run | Lookup | ⚡ 2 min |
| PyPI direct API | Free | Same | Live | DIY | 🐢 Code |
| Snyk Python Advisor | $$ | Same | Live | Yes | 🐢 Account |
| pip search (deprecated) | - | - | - | - | - |

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Find the PyPI Python Package Scraper on the Apify Store.
3. 🎯 **Set input.** Pick filters and `maxItems`.
4. 🚀 **Run it.** Click **Start**.
5. 📥 **Download.** Grab results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 🔐 Supply Chain

- Python SBOM generation
- License compliance
- Integrity-hash verification
- Vulnerability dashboards

</td>
<td width="50%" valign="top">

#### 🤖 ML + Data Science

- Track new ML library releases
- Pin reproducible env snapshots
- Compare libraries
- Discover new packages

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 📊 Ecosystem Analytics

- Top-PyPI rankings
- License distribution
- Author / org stats
- Yank-rate tracking

</td>
<td width="50%" valign="top">

#### 🎓 Education + Research

- Reproducible PyPI snapshots
- Course material
- Hobbyist exploration
- Library comparison projects

</td>
</tr>
</table>

***

### 🔌 Automating PyPI Python Package Scraper

Control the scraper programmatically:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Software-engineering studies
- OSS health datasets
- Network analysis on Python deps
- Reproducible PyPI corpora

</td>
<td width="50%">

#### 🎨 Personal and creative

- Personal package dashboards
- Curated PyPI lists
- Side projects with metadata
- Library-discovery sites

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Free SBOM tools
- OSS security awareness
- Educational maps
- Civic tech inventories

</td>
<td width="50%">

#### 🧪 Experimentation

- Train recommenders
- Prototype security scanners
- Build vulnerability bots
- Test license tooling

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20PyPI%20Python%20Package%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20PyPI%20Python%20Package%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20PyPI%20Python%20Package%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20PyPI%20Python%20Package%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Provide a list of PyPI package names. The Actor calls the PyPI JSON detail endpoint for each, then maps the response to a clean record.

#### 📊 How many fields per record?

33 base, expanding when the project provides funding URL, vulnerabilities, license files, etc.

#### 🚨 How current are vulnerabilities?

Pulled live from PyPI's security advisory database (osv.dev backed).

#### 📦 Do you list every release file?

Yes for the latest version: wheel + sdist with filename, URL, size, SHA-256, and Python version target.

#### ⚖️ How is licensing represented?

Both the legacy license field and PEP 639 license\_expression + license\_files when present.

#### 🐍 Are pre-releases included?

Yes. Yanked status is exposed too.

#### 🆓 Do I need an API key?

No. PyPI is open.

#### 🔁 Can I schedule runs?

Yes. Schedule weekly to monitor security advisories.

#### ⚖️ Is this data free to use?

Yes. PyPI metadata is publicly available under the project's licensing.

#### 💳 Do I need a paid Apify plan?

No. The free plan covers preview runs (10 records).

***

### 🔌 Integrate with any app

PyPI Python Package Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets to Sheets

***

### 🔗 Recommended Actors

- [**📦 npm Package Registry**](https://apify.com/parseforge/npm-packages-scraper) - Pull npm packages with version, downloads, dependencies, integrity
- [**🦀 crates.io Rust Package**](https://apify.com/parseforge/crates-io-rust-scraper) - Pull Rust crates with edition, downloads, features, dependencies
- [**🐳 Docker Hub Image Search**](https://apify.com/parseforge/docker-hub-images-scraper) - Pull Docker repositories with tags, stars, pull count, README
- [**💎 RubyGems Ruby Package**](https://apify.com/parseforge/rubygems-scraper) - Pull RubyGems with version, downloads, dependencies, ruby version
- [**📊 Stack Exchange Questions**](https://apify.com/parseforge/stackexchange-questions-scraper) - Search 170+ Stack Exchange Q\&A sites

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the Python Software Foundation, the PyPI maintainers, or any individual package author. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `mode` (type: `string`):

Choose 'lookup' to fetch exact package names you already know, or 'search' to find packages by keyword.

## `names` (type: `string`):

Lookup mode only. Python package names, one per line, comma- or semicolon-separated.

## `query` (type: `string`):

Search mode only. Returns matching packages ranked by exact match, then prefix match, then substring match, then most-recently-active. Example: 'django' returns django itself + django-cms, django-rest-framework, etc.

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "lookup",
  "names": "requests\nnumpy\npandas\nflask\nfastapi\ndjango\npydantic\nblack",
  "query": "django"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "mode": "lookup",
    "names": `requests
numpy
pandas
flask
fastapi
django
pydantic
black`,
    "query": "django"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/pypi-packages-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "mode": "lookup",
    "names": """requests
numpy
pandas
flask
fastapi
django
pydantic
black""",
    "query": "django",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/pypi-packages-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "mode": "lookup",
  "names": "requests\\nnumpy\\npandas\\nflask\\nfastapi\\ndjango\\npydantic\\nblack",
  "query": "django"
}' |
apify call parseforge/pypi-packages-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/pypi-packages-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "PyPI Packages Scraper",
        "description": "Pull Python package data from PyPI. Returns name, version, summary, description, classifiers, license, author, project URLs (homepage, source, issues, docs), Python version requirement, dependencies, release history, last upload, and total release count. Direct lookup by package name.",
        "version": "1.0",
        "x-build-id": "p9TlwGSkrmb8AiUid"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~pypi-packages-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-pypi-packages-scraper",
                "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/parseforge~pypi-packages-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-pypi-packages-scraper",
                "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/parseforge~pypi-packages-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-pypi-packages-scraper",
                "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": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "lookup",
                            "search"
                        ],
                        "type": "string",
                        "description": "Choose 'lookup' to fetch exact package names you already know, or 'search' to find packages by keyword."
                    },
                    "names": {
                        "title": "Package names",
                        "type": "string",
                        "description": "Lookup mode only. Python package names, one per line, comma- or semicolon-separated."
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Search mode only. Returns matching packages ranked by exact match, then prefix match, then substring match, then most-recently-active. Example: 'django' returns django itself + django-cms, django-rest-framework, etc."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
