# phpBB Forum Scraper (`rl1987/phpbb-forum-scraper`) Actor

Generic scraper for phpBB-powered forums. Crawls forums, topics and posts, and outputs structured post data.

- **URL**: https://apify.com/rl1987/phpbb-forum-scraper.md
- **Developed by:** [R.L.](https://apify.com/rl1987) (community)
- **Categories:** Social media, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 result rows

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

Extract forums, topics, and posts from any [phpBB](https://www.phpbb.com/) discussion board — the **phpBB Forum Scraper** discovers a board's forum hierarchy, pulls topic listings (latest activity, a specific forum, or a search query), and walks each topic's pages for the full post stream (author, timestamp, HTML/Markdown/plain-text content). Give it a board like [forum.cyclos.org](https://forum.cyclos.org/) or [mantisbt.org/forums](https://mantisbt.org/forums/) and it does the rest. Because it runs on the Apify platform, you also get scheduled runs, an API, proxy rotation, and monitoring out of the box — no server or scraping infrastructure of your own required.

### Why use phpBB Forum Scraper?

phpBB powers tens of thousands of community forums, from open-source project support boards to hobbyist communities. Pulling their content by hand doesn't scale. This Actor is useful for:

- **Research and archiving** — preserve a community's knowledge base before a board goes offline or gets migrated.
- **Support and product teams** — mine bug reports, feature requests, and troubleshooting threads from a project's user forum.
- **Community and market analysis** — track sentiment, common questions, and active contributors across niche communities.
- **Search and dataset building** — feed forum content (as clean Markdown or plain text) into a search index, chatbot knowledge base, or NLP dataset.

### How to use phpBB Forum Scraper

1. Open the Actor, set **Forum URL** to the board's base URL, and pick a **Mode** (see the five examples below — each is a different way to tell the Actor what to scrape).
2. Toggle **Include full posts** on to fetch every reply in each topic (off = topic metadata only — titles, views, replies, last-post info — much faster and cheaper).
3. Optionally set `maxTopics`, `maxPostsPerTopic`, and a request delay to control run size and stay polite to the target server.
4. Click **Start** and wait for the run to finish.
5. Open the **Dataset** tab to view, filter, or download the results.

If the target forum blocks datacenter IPs or restricts access by country, turn on **Proxy configuration**.

### Examples

Every example below was run against a real, live phpBB board.

#### 1. Discover a board's forums (`mode: forums`)

Run this first on any new board — it lists every forum and sub-forum along with its numeric id, which you'll need for the `forum` mode below.

```json
{
  "forumUrl": "https://mantisbt.org/forums/",
  "mode": "forums"
}
````

```json
{
  "type": "forum",
  "forum": "https://mantisbt.org/forums/",
  "forumId": "2",
  "title": "General Discussion",
  "url": "https://mantisbt.org/forums/viewforum.php?f=2",
  "topicCount": 469,
  "postCount": 2462
}
```

#### 2. Scrape everything in one forum (`mode: forum`)

Use the `forumId` you found above to pull every topic (and, with `includePosts`, every post) from a single forum.

```json
{
  "forumUrl": "https://mantisbt.org/forums/",
  "mode": "forum",
  "forumId": "2",
  "includePosts": true,
  "maxTopics": 50
}
```

Produces one `topic` row per thread plus one `post` row per reply, e.g.:

```json
{
  "type": "post",
  "forum": "https://mantisbt.org/forums/",
  "topicId": "40521",
  "topicTitle": "Microsoft Calendars in MantisBT",
  "postId": "88905",
  "postNumber": 1,
  "username": "Taron",
  "createdAt": "2026-06-11T09:32:04+00:00",
  "contentText": "Hi, We use MantisBT at work to track bugs in our projects...",
  "contentMarkdown": "Hi,\n\nWe use MantisBT at work to track bugs in our projects...",
  "url": "https://mantisbt.org/forums/viewtopic.php?p=88905"
}
```

#### 3. Follow board activity (`mode: latest`)

Pulls the board's own "active topics" list — whatever's been posted in recently, without you having to know which forum it's in.

```json
{
  "forumUrl": "https://forum.cyclos.org/",
  "mode": "latest",
  "includePosts": false,
  "maxTopics": 20
}
```

```json
{
  "type": "topic",
  "forum": "https://forum.cyclos.org/",
  "forumName": "Installation & Configuration issues",
  "topicId": "4311",
  "title": "Webshop order creation by Admin",
  "url": "https://forum.cyclos.org/viewtopic.php?t=4311",
  "pinned": false,
  "closed": false,
  "repliesCount": 1,
  "views": 3073,
  "lastPostedAt": "2026-07-13T14:03:27+00:00",
  "lastPostAuthor": "clement"
}
```

#### 4. Search the board (`mode: search`)

Runs a keyword search and scrapes the matching topics — good for pulling everything about one product, error message, or feature across the whole board.

```json
{
  "forumUrl": "https://admidio.org/forum/",
  "mode": "search",
  "searchQuery": "Docker",
  "includePosts": false,
  "maxTopics": 20
}
```

```json
{
  "type": "topic",
  "forum": "https://admidio.org/forum/",
  "forumName": "Fragen und Probleme zu den Plugins",
  "topicId": "10348",
  "title": "Plugin Statistics Fehler nach Aktualisierung",
  "url": "https://admidio.org/forum/viewtopic.php?t=10348",
  "repliesCount": 1,
  "views": 30884,
  "lastPostAuthor": "josi",
  "lastPostUrl": "https://admidio.org/forum/viewtopic.php?p=36544"
}
```

Works on non-English boards too — search queries and post content in German, French, Hungarian, etc. all parse correctly.

#### 5. Scrape specific topics (`mode: topicUrls`)

Already have a list of topic links (from your own research, a sitemap, a previous run)? Skip discovery entirely and scrape exactly those, even across different boards in one run.

```json
{
  "mode": "topicUrls",
  "topicUrls": [
    { "url": "https://forum.cyclos.org/viewtopic.php?t=4308" },
    { "url": "https://mantisbt.org/forums/viewtopic.php?t=40521" }
  ],
  "includePosts": true
}
```

`forumUrl` isn't needed in this mode — each topic's board is inferred from its own URL. Note that listing-only stats (`views`, `repliesCount`) aren't available here, since phpBB only shows those on a forum's topic list, not on the topic page itself.

#### 6. Market research: mining a support forum for product pain points

Software vendors' own user forums are a source of unfiltered, unprompted feedback — often more honest than a survey. A team evaluating whether to build a managed/hosted offering for [Admidio](https://www.admidio.org/) (an open-source membership-management tool) ran a `search` for "Docker" — its self-hosted deployment method — to see what real users struggle with:

```json
{
  "forumUrl": "https://admidio.org/forum/",
  "mode": "search",
  "searchQuery": "Docker",
  "includePosts": true,
  "maxTopics": 5,
  "maxPostsPerTopic": 3
}
```

19 rows came back across 5 matching topics. Reading the `contentText` of each post surfaced a clear, recurring pattern that a single anecdote wouldn't have shown:

- **Auto-update breaks installs silently** — a user running Watchtower (auto-pulling the `latest` Docker image) got a broken login page after an unannounced major-version jump, with no database-migration prompt.
- **Config env-var syntax confusion** — `ADMIDIO_ORGANISATION` set with `:` instead of `=` silently failed to apply, only resolved via a GitHub doc link from another community member.
- **Plugin breakage post-upgrade** — a plugin threw fatal errors after a Docker-based upgrade, unfixed for months until a follow-up plugin release.

All three threads are Docker-specific upgrade/config friction, not one-off bugs — real signal that "safe Docker upgrade tooling" or "managed hosting" addresses a genuine, currently unmet need in that community. This is the general pattern: run cheap `search` sweeps (`includePosts: false` first, to survey volume before committing to a full crawl) across the keywords that matter for your question — a competitor's name, an integration, an error message — across as many community forums as your research needs.

### Input

| Field | Description |
| --- | --- |
| `forumUrl` | Base URL of the board. Required for every mode except `topicUrls`. |
| `mode` | `forums`, `latest`, `forum`, `search`, or `topicUrls`. |
| `forumId` | Forum number or `viewforum.php` URL — required when `mode=forum`. |
| `searchQuery` | Required when `mode=search`. |
| `topicUrls` | Direct topic URLs — required when `mode=topicUrls`. |
| `includePosts` | Fetch each topic's full post stream, not just its listing metadata. |
| `maxTopics` | Cap on the number of topics to scrape (0 = unlimited). |
| `maxPostsPerTopic` | Cap on posts fetched per topic (0 = unlimited). |
| `maxRequestsPerCrawl` | Safety cap on total HTTP requests for the run (0 = unlimited). |
| `maxConcurrency` | Parallel HTTP requests. |
| `requestDelaySecs` | Delay between requests. |
| `proxyConfiguration` | Proxy settings — recommended for large crawls or boards that block/geo-restrict traffic. |

### Output

Each dataset item is a `forum`, `topic`, or `post` row, distinguished by its `type` field — see the worked examples above for what each looks like in practice. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data table

| Field | Description |
| --- | --- |
| `type` | `forum`, `topic`, or `post`. |
| `title` | Forum or topic title (`forum`/`topic` items). |
| `topicTitle` | Parent topic title (`post` items). |
| `forumName` | Forum a topic belongs to (`topic` items). |
| `pinned` / `closed` | Sticky/announcement and locked flags (`topic` items). |
| `repliesCount` / `postsCount` / `views` | Topic listing stats. |
| `username` | Post author's username (`post` items). |
| `authorPostCount` | Author's total post count, as shown on the board. |
| `createdAt` | ISO 8601 timestamp. |
| `cookedHtml` | Post content with original HTML formatting. |
| `contentMarkdown` | Post content converted to Markdown. |
| `contentText` | Post content as clean plain text. |
| `url` | Direct link to the forum, topic, or post. |

### How much does it cost to scrape a phpBB forum?

Cost scales with the number of pages fetched. With `includePosts` off, cost is roughly one request per ~30-50 topics (listing pages only). With it on, cost also scales with pages-per-topic — use `maxTopics` and `maxPostsPerTopic` to bound a run. A small board (a few hundred topics) typically costs a fraction of a compute unit on the Apify free tier.

### Tips

- Run `mode=forums` first to get each forum's id, then target it directly with `mode=forum`.
- Turn `includePosts` off for a fast, cheap survey of topic activity before committing to a full post-level crawl.
- Increase `requestDelaySecs` if you see repeated retries in the log — it usually means the target is rate-limiting you.
- If a run comes back empty or with HTTP errors in the log, turn on **Proxy configuration**; some boards block datacenter IPs outright, and a couple only work with the residential proxy group specifically.

### FAQ, disclaimers, and support

This Actor only extracts content that is publicly visible on the target forum. You are responsible for complying with the target site's Terms of Service and applicable law (including copyright and personal-data regulations) when scraping and reusing content. Tested against multiple independent real-world phpBB boards across several themes (prosilver, older subSilver2-derived styles, and translated/localized "Arty" themes) and languages (English, German, Hungarian). Heavily customized or broken themes may still need selector tweaks. phpBB has no native tags, likes, or "top topics" ranking, so those Discourse-style concepts have no phpBB equivalent and aren't part of the output. A board may also disable its own search feature for anonymous visitors — in that case `mode=search` will correctly return zero results.

Found a bug or need a custom version of this Actor? Open an issue on the Actor's **Issues** tab.

# Actor input Schema

## `forumUrl` (type: `string`):

Base URL of any phpBB-powered forum, e.g. https://forum.cyclos.org

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

What to crawl. 'forums' lists the board's forums/sub-forums (use this to discover a forumId for mode=forum). 'latest' pulls the board's active-topics list, 'forum' pulls one forum, 'search' pulls search results, 'topicUrls' scrapes only the topics you list.

## `forumId` (type: `string`):

Required when mode=forum. The forum's numeric id (the 'f=' value), or a full viewforum.php URL.

## `searchQuery` (type: `string`):

Required when mode=search. Uses the board's search.php?keywords= endpoint.

## `topicUrls` (type: `array`):

Required when mode=topicUrls. Direct URLs to phpBB topics (viewtopic.php).

## `includePosts` (type: `boolean`):

If true, fetch every topic's full post stream (original post + all replies) in addition to the topic metadata. If false, only topic-level metadata is scraped (much faster, fewer requests).

## `maxTopics` (type: `integer`):

Maximum number of topics to scrape. 0 = unlimited.

## `maxPostsPerTopic` (type: `integer`):

Maximum number of posts to fetch per topic (only used when includePosts is true). 0 = unlimited.

## `maxRequestsPerCrawl` (type: `integer`):

Safety cap on the total number of HTTP requests made during the run. 0 = unlimited.

## `requestDelaySecs` (type: `integer`):

Polite delay between outgoing requests to avoid overloading the forum's server.

## `maxConcurrency` (type: `integer`):

Maximum number of concurrent HTTP requests.

## `proxyConfiguration` (type: `object`):

Proxy settings. Recommended if scraping many pages, or if the target forum blocks/geo-restricts direct traffic.

## Actor input object example

```json
{
  "forumUrl": "https://forum.cyclos.org",
  "mode": "latest",
  "topicUrls": [],
  "includePosts": true,
  "maxTopics": 100,
  "maxPostsPerTopic": 0,
  "maxRequestsPerCrawl": 2000,
  "requestDelaySecs": 1,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Forum, topic, and post rows scraped from the target phpBB board.

# 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 = {
    "forumUrl": "https://forum.cyclos.org"
};

// Run the Actor and wait for it to finish
const run = await client.actor("rl1987/phpbb-forum-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 = { "forumUrl": "https://forum.cyclos.org" }

# Run the Actor and wait for it to finish
run = client.actor("rl1987/phpbb-forum-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 '{
  "forumUrl": "https://forum.cyclos.org"
}' |
apify call rl1987/phpbb-forum-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "phpBB Forum Scraper",
        "description": "Generic scraper for phpBB-powered forums. Crawls forums, topics and posts, and outputs structured post data.",
        "version": "0.1",
        "x-build-id": "WefO6hyefSHXm2gcf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rl1987~phpbb-forum-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rl1987-phpbb-forum-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/rl1987~phpbb-forum-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rl1987-phpbb-forum-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/rl1987~phpbb-forum-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rl1987-phpbb-forum-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "forumUrl": {
                        "title": "Forum URL",
                        "type": "string",
                        "description": "Base URL of any phpBB-powered forum, e.g. https://forum.cyclos.org"
                    },
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "forums",
                            "latest",
                            "forum",
                            "search",
                            "topicUrls"
                        ],
                        "type": "string",
                        "description": "What to crawl. 'forums' lists the board's forums/sub-forums (use this to discover a forumId for mode=forum). 'latest' pulls the board's active-topics list, 'forum' pulls one forum, 'search' pulls search results, 'topicUrls' scrapes only the topics you list.",
                        "default": "latest"
                    },
                    "forumId": {
                        "title": "Forum ID or URL",
                        "type": "string",
                        "description": "Required when mode=forum. The forum's numeric id (the 'f=' value), or a full viewforum.php URL."
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Required when mode=search. Uses the board's search.php?keywords= endpoint."
                    },
                    "topicUrls": {
                        "title": "Topic URLs",
                        "type": "array",
                        "description": "Required when mode=topicUrls. Direct URLs to phpBB topics (viewtopic.php).",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "includePosts": {
                        "title": "Include full posts",
                        "type": "boolean",
                        "description": "If true, fetch every topic's full post stream (original post + all replies) in addition to the topic metadata. If false, only topic-level metadata is scraped (much faster, fewer requests).",
                        "default": true
                    },
                    "maxTopics": {
                        "title": "Max topics",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of topics to scrape. 0 = unlimited.",
                        "default": 100
                    },
                    "maxPostsPerTopic": {
                        "title": "Max posts per topic",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of posts to fetch per topic (only used when includePosts is true). 0 = unlimited.",
                        "default": 0
                    },
                    "maxRequestsPerCrawl": {
                        "title": "Max HTTP requests",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Safety cap on the total number of HTTP requests made during the run. 0 = unlimited.",
                        "default": 2000
                    },
                    "requestDelaySecs": {
                        "title": "Delay between requests (seconds)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Polite delay between outgoing requests to avoid overloading the forum's server.",
                        "default": 1
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of concurrent HTTP requests.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Recommended if scraping many pages, or if the target forum blocks/geo-restricts direct traffic.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
