# Facebook Comment Scraper — No Login Required (`crowdpull/facebook-comment-scraper`) Actor

Extract comments from any public Facebook post. No login or cookies needed. Supports 30+ fields per comment, per-reaction breakdowns, threaded replies, and Smart Scrape dedup.

- **URL**: https://apify.com/crowdpull/facebook-comment-scraper.md
- **Developed by:** [Crowd Pull](https://apify.com/crowdpull) (community)
- **Categories:** Social media, Marketing, Lead generation
- **Stats:** 63 total users, 12 monthly users, 94.7% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## CrowdPull FB Comment Scraper

Extract all comments and replies from any **public** Facebook post — no login or cookies required.

Works with group posts, page posts, permalinks, and share links. No browser automation — just fast, lightweight HTTP requests.

### Why this scraper

- **No browser** — pure HTTP, no Playwright overhead. Faster and cheaper to run than browser-based alternatives.
- **Reaction breakdown** — per-type counts (like, love, haha, wow, sorry, anger, support) for sentiment analysis without NLP. Most scrapers only give you a total count.
- **Spam & moderation signals** — Facebook's own spam classification, disabled/hidden status, and reply-locked threads. Filter junk before it hits your pipeline.
- **Group context** — group ID, anonymous posting flags, and member profile status for cross-group audience analysis.
- **Smart Scrape dedup** — skip posts already scraped in previous runs. No other comment scraper offers incremental extraction.
- **@handle extraction** — mentions and URLs parsed from comment text, ready for lead gen or network mapping.
- **Structured dataset output** — typed schema with table preview in the Apify Console. Browse results without downloading.

### Features

- **No login required** — extracts comments anonymously from public posts
- **Reply expansion** — automatically fetches nested reply threads
- **Pagination** — automatically loads all comments, not just the first few
- **Multi-post support** — process multiple posts in a single run with concurrent workers
- **Comment scraper chaining** — trigger automatically from the feed scraper via webhook

### What you get per comment

| Field | Description |
|-------|-------------|
| `commentId` | Unique Facebook comment ID |
| `authorName` | Commenter's display name |
| `authorId` | Facebook user ID |
| `authorProfileUrl` | Link to commenter's profile |
| `authorProfilePicture` | Profile picture URL |
| `authorGender` | `MALE`, `FEMALE`, or empty |
| `authorType` | `User` or `Page` |
| `text` | Full comment text |
| `timestamp` | ISO 8601 timestamp |
| `isReply` | Whether this is a reply to another comment |
| `depth` | Nesting depth (0 = top-level, 1 = reply, 2+ = nested) |
| `parentCommentId` | ID of the parent comment (for threading) |
| `replyCount` | Number of replies to this comment |
| `reactionCount` | Total reaction count |
| `reactionBreakdown` | Per-type counts: like, love, haha, wow, sorry, anger, support |
| `spamDisplayMode` | Facebook's spam classification |
| `isDisabled` | Whether the comment has been hidden/removed |
| `groupCommentInfo` | Group ID, anonymous posting, nickname usage, member status |
| `commentUrl` | Direct permalink to the comment |
| `extractedUrls` | URLs found in comment text |
| `extractedHandles` | @handles and mentions found in comment text |
| `scrapedAt` | ISO 8601 timestamp of when extraction occurred |

### Automatic chaining via webhook

The easiest way to run the comment scraper is to trigger it automatically when the [CrowdPull FB Group Posts Scraper](https://apify.com/crowdpull/facebook-group-posts-scraper) finishes. Set up an Apify webhook on the posts scraper:

1. Go to the posts scraper actor/task **Integrations** tab
2. Add integration: **Apify (Connect Actor or Task)** → select this comment scraper task
3. Event: **Run succeeded**
4. Input mapping: `{"datasetId": "{{resource.defaultDatasetId}}", "minComments": 0}`

The comment scraper loads the posts dataset, filters by `minComments`, and extracts comments from all matching posts. No API tokens or manual URL copying needed.

### How it works

1. Fetches the post page anonymously — no login, no cookies, no browser
2. Extracts all available comments from the page response
3. Paginates to load additional comments beyond the initial batch
4. Expands nested reply threads automatically
5. Deduplicates across multiple data sources for complete coverage

### Anonymous vs authenticated mode

| Capability | Anonymous (default) | With cookies |
|-----------|-------------------|-------------|
| Top-level comments | All | All |
| Reply threads | Full (paginated) | Full |
| Overall coverage | ~95% of visible comments | ~100% |

Anonymous mode now returns complete reply threads. Authenticated mode may return slightly more results for edge cases (hidden or restricted comments).

### Smart Scrape (incremental dedup)

Enable **Smart Scrape** to skip posts already scraped in previous runs. Ideal for recurring monitoring jobs — you only pay for new posts.

1. On first run, all posts are scraped normally and cached in a persistent store
2. On subsequent runs, cached posts are skipped (charged at a reduced `cache-check` rate)
3. Optionally set a **refresh window** to re-scrape recent posts that may have gained new comments

#### Cost comparison (50 posts/week, ~10 comments/post average)

| Scenario | Without Smart Scrape | With Smart Scrape |
|----------|---------------------|-------------------|
| Week 1 (all new) | 500 comments extracted | 500 comments extracted |
| Week 2 (10 new posts) | 500 comments extracted | 100 comments + 40 cache checks |
| Week 4 (10 new/week) | 2,000 comments total | 800 comments + 120 cache checks |
| **Monthly cost** | **Full price** | **~55% cheaper** |

Built-in incremental extraction — only pay for new comments on recurring runs.

### Use cases

- **Market research** — analyze customer sentiment and questions in niche groups
- **Lead generation** — extract URLs, @handles, and active community members
- **Content analysis** — use reaction breakdowns to measure sentiment without NLP
- **Competitive intelligence** — monitor competitor post discussions
- **Community health** — track spam rates, disabled comments, and moderation patterns

### Input example

```json
{
  "postUrls": [
    "https://www.facebook.com/groups/homebakeryforbeginners/posts/903456049205823/"
  ],
  "maxCommentsPerPost": 50,
  "includeReplies": true,
  "extractUrls": true
}
````

### Output example

```json
{
  "postUrl": "https://www.facebook.com/groups/homebakeryforbeginners/posts/903615849189843/",
  "commentId": "903620162522745",
  "authorName": "Sandy D Crusan",
  "authorId": "pfbid0zfQhxbUdLXKEU...",
  "authorGender": "FEMALE",
  "authorType": "User",
  "text": "I wish NJ allowed alcohol infused products with a Cottage License.",
  "timestamp": "2026-02-25T23:20:03.000Z",
  "isReply": false,
  "depth": 0,
  "replyCount": 0,
  "reactionCount": 1,
  "reactionBreakdown": { "like": 1, "love": 0, "haha": 0, "wow": 0, "sorry": 0, "anger": 0, "support": 0 },
  "spamDisplayMode": "none",
  "isDisabled": false,
  "groupCommentInfo": {
    "group": { "id": "683303171221113" },
    "is_author_anonymous": false,
    "is_author_nickname": false,
    "is_author_with_member_profile": true
  },
  "extractedUrls": [],
  "extractedHandles": [],
  "scrapedAt": "2026-02-26T00:33:54.010Z"
}
```

### Other CrowdPull Facebook scrapers

- **[Facebook Group Posts Scraper](https://apify.com/crowdpull/facebook-group-posts-scraper)** — extract posts from any public Facebook group with Smart Scrape dedup and automatic comment scraper chaining
- **[Facebook Marketplace Scraper](https://apify.com/crowdpull/facebook-marketplace-scraper)** — extract listings from Facebook Marketplace by location with price filtering and keyword search

### Cost estimate

This Actor uses **no browser** — just lightweight HTTP requests.

| PPE Event | Description | Cost |
|-----------|-------------|------|
| `actor-start` | One-time per run | $0.005 |
| `comment-extracted` | Per comment pushed to dataset | Per-1K pricing (see Store) |
| `cache-check` | Per post skipped by Smart Scrape | Reduced rate (see Store) |

A typical run extracting 50 comments costs ~$0.01-0.02 in platform fees.

### Limitations

- Only works with **public** posts (private groups/posts return 0 comments)
- Anonymous mode may be slightly slower than authenticated mode for large reply threads
- Very new posts (minutes old) may not have comments indexed yet
- Facebook may change internal APIs; report issues if extraction stops working
- `reactionBreakdown` only populates when comments have reactions (zeros otherwise)
- `authorGender` depends on the user's Facebook privacy settings
- Anonymous feed API returns `commentCount: 0` for all posts — when using webhook chaining, set `minComments: 0` to process all posts

### Is it legal to scrape Facebook comments?

This Actor extracts **publicly visible** data from Facebook posts. Here are the key legal considerations:

- **Public data**: Only public posts are accessible. Private groups and posts behind login walls return zero results.
- **No authentication by default**: The scraper works anonymously without any Facebook account, accessing only what any visitor can see.
- **Terms of Service**: Web scraping of public data has been upheld in multiple court rulings (hiQ Labs v. LinkedIn, 2022). However, Facebook's Terms of Service restrict automated data collection. Use this tool responsibly and in compliance with applicable laws.
- **GDPR/CCPA**: Extracted data may contain personal information (names, profile pictures, comment text). If you process this data in the EU/EEA or for California residents, ensure you have a lawful basis under GDPR/CCPA. Consider anonymizing or pseudonymizing personal data before storage.
- **Rate limiting**: The scraper includes built-in delays and respects Facebook's rate limits to minimize server impact.

**You are responsible for ensuring your use of this data complies with all applicable laws and regulations in your jurisdiction.**

# Actor input Schema

## `postUrls` (type: `array`):

Facebook post URLs to extract comments from. Supports group posts, page posts, permalinks, and share links. Optional when datasetId is provided.

## `datasetId` (type: `string`):

Apify dataset ID from a Posts Scraper run. When provided, post URLs are loaded from the dataset and postUrls input is ignored.

## `minComments` (type: `integer`):

When loading from a dataset, only process posts with at least this many comments. Set to 0 to process all posts (recommended since anonymous API often returns commentCount=0). Ignored when postUrls is provided directly.

## `maxCommentsPerPost` (type: `integer`):

Maximum comments to extract per post (including replies). Set to -1 for unlimited. Useful for capping costs on very large threads.

## `sortOrder` (type: `string`):

How comments are sorted. RANKED = most relevant first (Facebook default). RECENT = newest comments first. ALL = all top-level comments in chronological order.

## `includeReplies` (type: `boolean`):

Expand and extract reply threads under each comment. Captures nested conversations. Anonymous mode returns ~1 reply per thread; use cookies for full reply coverage.

## `extractUrls` (type: `boolean`):

Parse comment text for URLs and @handles. Useful for lead generation from link-share threads.

## `enableDedup` (type: `boolean`):

When enabled, posts scraped in previous runs are skipped. Only new or refreshed posts are scraped. Skipped posts incur a reduced 'cache-check' fee instead of full per-comment charges.

## `refreshWindowDays` (type: `integer`):

Re-scrape posts first seen within the last N days to capture new comments. Set to 0 to never refresh (only scrape brand-new posts). Set to 7 to re-scrape posts from the last week.

## `fbCookies` (type: `string`):

Optional Facebook auth cookies for 100% reply coverage. Without cookies, top-level comments are fully extracted but nested replies are limited to ~1 per thread. Format: 'c\_user=XXX; xs=XXX; datr=XXX'. Get from browser DevTools → Application → Cookies → facebook.com.

## `proxyConfig` (type: `object`):

Proxy settings. Residential proxies recommended for Facebook.

## Actor input object example

```json
{
  "postUrls": [
    "https://www.facebook.com/groups/homebakeryforbeginners/posts/903456049205823/",
    "https://www.facebook.com/groups/homebakeryforbeginners/posts/903504149201013/"
  ],
  "minComments": 0,
  "maxCommentsPerPost": 50,
  "sortOrder": "RANKED",
  "includeReplies": true,
  "extractUrls": true,
  "enableDedup": false,
  "refreshWindowDays": 0,
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "postUrls": [
        "https://www.facebook.com/groups/homebakeryforbeginners/posts/903456049205823/",
        "https://www.facebook.com/groups/homebakeryforbeginners/posts/903504149201013/"
    ],
    "maxCommentsPerPost": 50,
    "sortOrder": "RANKED"
};

// Run the Actor and wait for it to finish
const run = await client.actor("crowdpull/facebook-comment-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 = {
    "postUrls": [
        "https://www.facebook.com/groups/homebakeryforbeginners/posts/903456049205823/",
        "https://www.facebook.com/groups/homebakeryforbeginners/posts/903504149201013/",
    ],
    "maxCommentsPerPost": 50,
    "sortOrder": "RANKED",
}

# Run the Actor and wait for it to finish
run = client.actor("crowdpull/facebook-comment-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 '{
  "postUrls": [
    "https://www.facebook.com/groups/homebakeryforbeginners/posts/903456049205823/",
    "https://www.facebook.com/groups/homebakeryforbeginners/posts/903504149201013/"
  ],
  "maxCommentsPerPost": 50,
  "sortOrder": "RANKED"
}' |
apify call crowdpull/facebook-comment-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Comment Scraper — No Login Required",
        "description": "Extract comments from any public Facebook post. No login or cookies needed. Supports 30+ fields per comment, per-reaction breakdowns, threaded replies, and Smart Scrape dedup.",
        "version": "1.0",
        "x-build-id": "h1IKwO15AOCOwmpMw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crowdpull~facebook-comment-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crowdpull-facebook-comment-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/crowdpull~facebook-comment-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crowdpull-facebook-comment-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/crowdpull~facebook-comment-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crowdpull-facebook-comment-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": {
                    "postUrls": {
                        "title": "🔗 Post URLs",
                        "type": "array",
                        "description": "Facebook post URLs to extract comments from. Supports group posts, page posts, permalinks, and share links. Optional when datasetId is provided.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "datasetId": {
                        "title": "Source Dataset ID",
                        "type": "string",
                        "description": "Apify dataset ID from a Posts Scraper run. When provided, post URLs are loaded from the dataset and postUrls input is ignored."
                    },
                    "minComments": {
                        "title": "Minimum Comments Filter",
                        "minimum": 0,
                        "type": "integer",
                        "description": "When loading from a dataset, only process posts with at least this many comments. Set to 0 to process all posts (recommended since anonymous API often returns commentCount=0). Ignored when postUrls is provided directly.",
                        "default": 0
                    },
                    "maxCommentsPerPost": {
                        "title": "✍️ Max Comments per Post",
                        "minimum": -1,
                        "type": "integer",
                        "description": "Maximum comments to extract per post (including replies). Set to -1 for unlimited. Useful for capping costs on very large threads.",
                        "default": -1
                    },
                    "sortOrder": {
                        "title": "🔀 Comment Sort Order",
                        "enum": [
                            "RANKED",
                            "RECENT",
                            "ALL"
                        ],
                        "type": "string",
                        "description": "How comments are sorted. RANKED = most relevant first (Facebook default). RECENT = newest comments first. ALL = all top-level comments in chronological order.",
                        "default": "RANKED"
                    },
                    "includeReplies": {
                        "title": "💬 Include Replies",
                        "type": "boolean",
                        "description": "Expand and extract reply threads under each comment. Captures nested conversations. Anonymous mode returns ~1 reply per thread; use cookies for full reply coverage.",
                        "default": true
                    },
                    "extractUrls": {
                        "title": "🔍 Extract URLs from Comments",
                        "type": "boolean",
                        "description": "Parse comment text for URLs and @handles. Useful for lead generation from link-share threads.",
                        "default": true
                    },
                    "enableDedup": {
                        "title": "Enable Smart Scrape (Dedup)",
                        "type": "boolean",
                        "description": "When enabled, posts scraped in previous runs are skipped. Only new or refreshed posts are scraped. Skipped posts incur a reduced 'cache-check' fee instead of full per-comment charges.",
                        "default": false
                    },
                    "refreshWindowDays": {
                        "title": "Refresh Window (days)",
                        "minimum": 0,
                        "maximum": 90,
                        "type": "integer",
                        "description": "Re-scrape posts first seen within the last N days to capture new comments. Set to 0 to never refresh (only scrape brand-new posts). Set to 7 to re-scrape posts from the last week.",
                        "default": 0
                    },
                    "fbCookies": {
                        "title": "🔐 Facebook Cookies (optional)",
                        "type": "string",
                        "description": "Optional Facebook auth cookies for 100% reply coverage. Without cookies, top-level comments are fully extracted but nested replies are limited to ~1 per thread. Format: 'c_user=XXX; xs=XXX; datr=XXX'. Get from browser DevTools → Application → Cookies → facebook.com."
                    },
                    "proxyConfig": {
                        "title": "🌐 Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies recommended for Facebook.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
