# Wordpress Plugins Scraper | Reviews & Contact | $4 / 1k (`fatihtahta/wordpress-plugins-scraper`) Actor

Scrape WordPress.org plugins into clean, structured data. Get plugin details, ratings, tags, installs, versions, support/review links, plus optional full reviews and developer/contact profile enrichment. Ideal for ecosystem research, competitive tracking, and lead gen.

- **URL**: https://apify.com/fatihtahta/wordpress-plugins-scraper.md
- **Developed by:** [Fatih Tahta](https://apify.com/fatihtahta) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Wordpress Plugins Scraper | Reviews & Contact

**Slug:** `fatihtahta/wordpress-plugins-scraper`

### 2) Overview

Wordpress Plugins Scraper collects structured plugin directory data from WordPress.org, including plugin metadata, ratings, review summaries, links, release details, taxonomy tags, and optional review & developer enrichment records. It supports discovery from search URLs, browse/category/tag pages, plugin detail pages, and keyword queries, so teams can build consistent datasets across multiple collection strategies. 

The source directory at https://wordpress.org/plugins/ is one of the most widely used public indexes for WordPress ecosystem research, making it valuable for trend analysis, competitive mapping, and plugin intelligence. Instead of manually collecting and normalizing records, the actor automates recurring data collection into analysis-ready JSON output. This helps teams save time, reduce inconsistencies, and keep reporting pipelines current.

### 3) Why Use This Actor

- **Market research & analytics teams:** Track plugin category movement, ratings shifts, install momentum, and review volume to identify demand patterns and market opportunities.
- **Product & content teams:** Build evidence-based comparisons, content briefs, and editorial calendars using fresh plugin metadata, tags, release context, and user feedback signals.
- **Developers & data engineering teams:** Feed standardized records into BI dashboards, ETL jobs, and internal data products without manual cleanup or one-off exports.
- **Lead generation & enrichment teams:** Enrich plugin-focused prospect lists with plugin profile context, related links, and optional contributor/developer details.
- **Monitoring & competitive tracking teams:** Run periodic collections to detect changes in competitor positioning, review sentiment trends, and plugin portfolio updates over time.

### 4) Input Parameters

Provide any combination of URLs, queries, and filters to control dataset scope and depth.

| Parameter | Type | Description | Default |
|---|---|---|---|
| `startUrls` | `array<string>` | One or more WordPress plugin URLs to scrape directly. Supports search result URLs, browse/category pages, tag pages, and individual plugin detail pages. You can mix page types in one run. | – |
| `queries` | `array<string>` | Keyword queries for discovering plugins in the WordPress Plugins Directory when you do not want to provide URLs manually (for example: `seo`, `backups`, `ecommerce`). | – |
| `getReviews` | `boolean` | When `true`, collects review records in addition to plugin records. Allowed values: `true`, `false`. | `false` |
| `getDevelopers` | `boolean` | When `true`, enriches author/contributor records with additional profile-level details. Allowed values: `true`, `false`. | `true` |
| `limit` | `integer` | Maximum number of plugin records to save **per query**. Minimum: `10`. Review records are not counted against this plugin limit. | `50000` |
| `maxReviews` | `integer` | Maximum number of reviews to collect per plugin when review collection is enabled. Minimum: `1`. | `50000` |

### 5) Example Input

```json
{
  "startUrls": [
    "https://wordpress.org/plugins/search/seo/",
    "https://wordpress.org/plugins/tag/security/"
  ],
  "queries": ["smtp", "backup"],
  "getReviews": true,
  "getDevelopers": true,
  "limit": 500,
  "maxReviews": 50
}
````

### 6) Output

#### 6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

#### 6.2 Record envelope (all items)

Every record includes these stable identifiers:

- **type** *(string, required)*
- **id** *(number, required)*
- **url** *(string, required)*

Recommended idempotency key: `type + ":" + id`.
Use this key for deduplication and upserts so repeated runs update existing entities instead of creating duplicates.

#### 6.3 Examples

Example: plugin (`type = "plugin"`)

```json
{
  "type": "plugin",
  "id": 193,
  "url": "https://wordpress.org/plugins/wp-mail-smtp/",
  "title": "WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin",
  "source": {
    "sourceUrl": "https://wordpress.org/plugins/search/email/",
    "seedType": "query",
    "seedValue": "email"
  },
  "ratings": {
    "average": "4.8",
    "count": 5046
  },
  "links": {
    "supportUrl": "https://wordpress.org/support/plugin/wp-mail-smtp/",
    "reviewsUrl": "https://wordpress.org/support/plugin/wp-mail-smtp/reviews/"
  },
  "author": {
    "name": "Syed Balkhi",
    "profileUrl": "https://profiles.wordpress.org/smub/"
  }
}
```

Example: review (`type = "review"`)

```json
{
  "type": "review",
  "id": 7918836,
  "url": "https://wordpress.org/support/topic/eine-sorgen-weniger-die-wordpress-seite-virenfrei-zu-halten/",
  "title": "Eine Sorgen weniger die WordPress Seite Virenfrei zu halten.",
  "source": {
    "sourceUrl": "https://wordpress.org/support/plugin/antivirus/reviews/",
    "seedType": "query",
    "seedValue": "email verifier"
  },
  "plugin": {
    "id": 349,
    "title": "AntiVirus",
    "url": "https://wordpress.org/plugins/antivirus/"
  },
  "author": {
    "name": "BirgerKlaus",
    "profileUrl": "https://wordpress.org/support/users/birgerklaus/"
  },
  "content": {
    "reviewText": "Eine Sorgen weniger die WordPress Seite Virenfrei zu halten.",
    "publishedAt": "January 10, 2015 at 12:42 pm"
  }
}
```

### 7) Field reference

#### Plugin records (`type = "plugin"`)

- **type** *(string, required)*: Record type identifier (`plugin`).
- **id** *(number, required)*: Stable plugin identifier.
- **url** *(string, required)*: Canonical plugin page URL.
- **title** *(string, optional)*: Plugin title.
- **source.sourceUrl** *(string, optional)*: Source page used to discover the plugin.
- **source.seedType** *(string, optional)*: Seed origin type (for example `query` or URL-based seed).
- **source.seedValue** *(string, optional)*: Query text or source seed value.
- **ratings.average** *(string, optional)*: Average rating value/text.
- **ratings.count** *(number, optional)*: Number of ratings.
- **ratings.breakdown** *(object, optional)*: Distribution by star level.
- **links.supportUrl** *(string, optional)*: Plugin support page URL.
- **links.downloadUrl** *(string, optional)*: Plugin download URL.
- **links.reviewsUrl** *(string, optional)*: Plugin reviews listing URL.
- **media.iconUrl** *(string, optional)*: Plugin icon URL.
- **media.bannerUrl** *(string, optional)*: Plugin banner URL.
- **media.screenshots** *(array<object>, optional)*: Screenshot entries.
- **media.screenshots\[].url** *(string, optional)*: Screenshot URL.
- **media.screenshots\[].caption** *(string, optional)*: Screenshot caption text.
- **compatibility.testedUpTo** *(string, optional)*: Latest WordPress version listed as tested.
- **release.version** *(string, optional)*: Plugin version.
- **release.lastUpdated** *(string, optional)*: Last update value as provided.
- **taxonomy.tags** *(array<string>, optional)*: Plugin tags.
- **author.name** *(string, optional)*: Primary author name.
- **author.profileUrl** *(string, optional)*: Author profile URL.
- **installs.active** *(string, optional)*: Active install indicator.
- **content.description** *(string, optional)*: Main description text.
- **content.installation** *(string, optional)*: Installation guidance text.
- **content.faq** *(array<object>, optional)*: FAQ entries.
- **content.faq\[].question** *(string, optional)*: FAQ question.
- **content.faq\[].answer** *(string, optional)*: FAQ answer.
- **developers.contributors** *(array<object>, optional)*: Contributor/developer records.
- **developers.contributors\[].name** *(string, optional)*: Contributor name.
- **developers.contributors\[].url** *(string, optional)*: Contributor profile URL.
- **developers.contributors\[].profile** *(object, optional)*: Enriched profile details when available.

#### Review records (`type = "review"`)

- **type** *(string, required)*: Record type identifier (`review`).
- **id** *(number, required)*: Stable review identifier.
- **url** *(string, required)*: Canonical review topic URL.
- **title** *(string, optional)*: Review topic title.
- **source.sourceUrl** *(string, optional)*: Source page used to discover the review.
- **source.seedType** *(string, optional)*: Seed origin type.
- **source.seedValue** *(string, optional)*: Query text or source seed value.
- **ratings.average** *(string, optional)*: Review rating text/value.
- **author.name** *(string, optional)*: Review author username/display name.
- **author.profileUrl** *(string, optional)*: Review author profile URL.
- **plugin.id** *(number, optional)*: Related plugin identifier.
- **plugin.title** *(string, optional)*: Related plugin title.
- **plugin.url** *(string, optional)*: Related plugin URL.
- **plugin.reviewsUrl** *(string, optional)*: Related plugin reviews URL.
- **content.reviewText** *(string, optional)*: Review body text.
- **content.publishedAt** *(string, optional)*: Review publication timestamp text.
- **thread.participants** *(number, optional)*: Number of participants in the thread.
- **thread.repliesCount** *(number, optional)*: Number of replies.
- **thread.lastPostAge** *(string, optional)*: Relative age of latest post.

### 8) Data guarantees & handling

- **Best-effort extraction:** fields may vary by region/session/availability/UI experiments.
- **Optional fields:** null-check in downstream code.
- **Deduplication:** recommend `type + ":" + id`.

### 9) How to Run on Apify

1. Open the Actor in Apify Console.
2. Configure your search parameters (for example URLs, keyword queries, and optional review/developer toggles).
3. Set the maximum number of outputs to collect.
4. Click **Start** and wait for the run to finish.
5. Download results in JSON, CSV, Excel, or other supported formats.

### 10) Scheduling & Automation

#### Scheduling

**Automated Data Collection**

You can schedule recurring runs to keep your dataset fresh without manual restarts. This is useful for trend tracking, periodic reporting, and continuous enrichment workflows.

- Navigate to **Schedules** in Apify Console
- Create a new schedule (daily, weekly, or custom cron)
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing

#### Integration Options

This actor is commonly used as a recurring intelligence layer for WordPress ecosystem monitoring. Below are practical integration patterns tailored to plugin and review data workflows:

- **Webhooks:**
  Trigger downstream pipelines when a run completes — for example:

  - Recalculate plugin rating deltas
  - Detect new negative reviews
  - Flag competitor version updates
  - Push new plugin entries into enrichment queues

- **Zapier:**
  Send new plugin or review records directly into:

  - Airtable lead databases
  - Notion research boards
  - CRM systems for plugin-focused outreach
  - Email alerts when rating averages drop below a threshold

- **Make (Integromat):**
  Build multi-step automations such as:

  - Monitor specific tags (e.g., `seo`, `security`)
  - Compare install counts across weekly snapshots
  - Enrich review authors with additional signals
  - Sync plugin metadata into internal dashboards

- **Google Sheets:**
  Maintain a live tracking sheet for:

  - Category-level install trends
  - Rating distribution changes
  - Plugin release frequency analysis
  - Competitor comparison matrices

- **Slack / Discord:**
  Send alerts when:

  - A tracked plugin releases a new version
  - Review volume spikes
  - A competitor crosses an install milestone
  - New 1-star reviews appear

- **Email Reports:**
  Automatically deliver scheduled summaries including:

  - Weekly top movers by installs
  - Rating changes by plugin
  - New entrants in monitored tags
  - Review sentiment snapshots

### 11) Performance

Estimated run times:

- **Small runs (< 1,000 outputs):** ~3–5 minutes
- **Medium runs (1,000–5,000 outputs):** ~5–15 minutes
- **Large runs (5,000+ outputs):** ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

### 12) Compliance & Ethics

#### Responsible Data Collection

This actor collects publicly available **plugin directory and review** information from **{{TARGET\_SITE}}** for legitimate business purposes, including:

- **WordPress ecosystem** research and market analysis
- **competitive monitoring and benchmarking**
- **content planning and data enrichment**

Users are responsible for ensuring their data collection and downstream usage comply with applicable laws, regulations, and platform terms. This section is informational and not legal advice.

#### Best Practices

- Use collected data in accordance with applicable laws, regulations, and the target site’s terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

### 13) Support

If you need help, use the actor page discussion/issues channel. Include the input you used (redacted), the run ID, expected vs actual behavior, and optionally a small output sample so troubleshooting can be reproduced quickly.

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more WordPress.org plugin URLs to scrape directly. Supported pages include search result URLs, browse/category pages, tag pages, and individual plugin detail pages. Mix multiple page types in one run when you want precise control over the exact areas of the directory to collect.

## `queries` (type: `array`):

Enter one or more keywords to search in the WordPress.org Plugins Directory. Good query examples include plugin use cases (for example, SEO or backups), business categories (such as ecommerce), platform names, or feature terms. Use this when you do not have URLs yet and want the actor to discover relevant plugins automatically.

## `getReviews` (type: `boolean`):

Enable this to collect user review records in addition to plugin listing records. This is useful when you want sentiment analysis, review monitoring, and feedback trend reporting alongside core plugin metadata.

## `getDevelopers` (type: `boolean`):

Enable this to follow profiles.wordpress.org links and enrich plugin author/contributor data with profile-level details. Disable it to skip those extra developer info requests for faster runs.

## `limit` (type: `integer`):

Set the maximum number of plugins to save for each query. This limit applies only to plugin records, not review records. Choose a smaller number for quick sampling or testing, and a larger number when you need broader, deeper coverage for analytics or database builds.

## `maxReviews` (type: `integer`):

Limit how many review records are collected for each plugin when review scraping is enabled.

## Actor input object example

```json
{
  "startUrls": [
    "https://wordpress.org/plugins/search/data+analyzer/"
  ],
  "getReviews": false,
  "getDevelopers": true,
  "limit": 50000,
  "maxReviews": 50000
}
```

# Actor output Schema

## `results` (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 = {
    "startUrls": [
        "https://wordpress.org/plugins/search/data+analyzer/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihtahta/wordpress-plugins-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 = { "startUrls": ["https://wordpress.org/plugins/search/data+analyzer/"] }

# Run the Actor and wait for it to finish
run = client.actor("fatihtahta/wordpress-plugins-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 '{
  "startUrls": [
    "https://wordpress.org/plugins/search/data+analyzer/"
  ]
}' |
apify call fatihtahta/wordpress-plugins-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wordpress Plugins Scraper | Reviews & Contact | $4 / 1k",
        "description": "Scrape WordPress.org plugins into clean, structured data. Get plugin details, ratings, tags, installs, versions, support/review links, plus optional full reviews and developer/contact profile enrichment. Ideal for ecosystem research, competitive tracking, and lead gen.",
        "version": "0.0",
        "x-build-id": "FoYO2Bv2t9wiziDxz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fatihtahta~wordpress-plugins-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fatihtahta-wordpress-plugins-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/fatihtahta~wordpress-plugins-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fatihtahta-wordpress-plugins-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/fatihtahta~wordpress-plugins-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fatihtahta-wordpress-plugins-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": {
                    "startUrls": {
                        "title": "Start URLs (Search, browse/category/tag, or plugin detail pages)",
                        "type": "array",
                        "description": "Paste one or more WordPress.org plugin URLs to scrape directly. Supported pages include search result URLs, browse/category pages, tag pages, and individual plugin detail pages. Mix multiple page types in one run when you want precise control over the exact areas of the directory to collect.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "queries": {
                        "title": "Search by queries",
                        "type": "array",
                        "description": "Enter one or more keywords to search in the WordPress.org Plugins Directory. Good query examples include plugin use cases (for example, SEO or backups), business categories (such as ecommerce), platform names, or feature terms. Use this when you do not have URLs yet and want the actor to discover relevant plugins automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "getReviews": {
                        "title": "Get detailed plugin reviews (saved separately)",
                        "type": "boolean",
                        "description": "Enable this to collect user review records in addition to plugin listing records. This is useful when you want sentiment analysis, review monitoring, and feedback trend reporting alongside core plugin metadata.",
                        "default": false
                    },
                    "getDevelopers": {
                        "title": "Fetch extra developer profile details",
                        "type": "boolean",
                        "description": "Enable this to follow profiles.wordpress.org links and enrich plugin author/contributor data with profile-level details. Disable it to skip those extra developer info requests for faster runs.",
                        "default": true
                    },
                    "limit": {
                        "title": "Maximum plugins to save (per query)",
                        "minimum": 10,
                        "type": "integer",
                        "description": "Set the maximum number of plugins to save for each query. This limit applies only to plugin records, not review records. Choose a smaller number for quick sampling or testing, and a larger number when you need broader, deeper coverage for analytics or database builds.",
                        "default": 50000
                    },
                    "maxReviews": {
                        "title": "Maximum reviews per plugin",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Limit how many review records are collected for each plugin when review scraping is enabled.",
                        "default": 50000
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
