# Facebook Events Scraper — Past the 8-Event Limit (`scrapegeist/facebook-organizer-events-scraper`) Actor

Scrape ALL Facebook events from any page or group — past the 8-event logged-out limit. No login, no browser. From $5 per 1,000 events, all-inclusive — well below the official scraper's $13.

- **URL**: https://apify.com/scrapegeist/facebook-organizer-events-scraper.md
- **Developed by:** [Scrapegeist](https://apify.com/scrapegeist) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 6 total users, 3 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 facebook events

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

## Facebook Events Scraper — Past the 8-Event Limit

> **The only Facebook scraper that returns an organizer's full event calendar — not just the 8 events Facebook shows logged-out visitors.**
> Paste an event, page, or group URL → get clean, structured data. No login, no headless browser.
> **From $5 per 1,000 events — well below the $13 the official scraper charges, and it goes deeper.**

---

### The 8-event problem

Open any active Facebook page's events tab in an incognito window. You'll see 8 upcoming events, then a "Log in to see more" wall. That cap is not an API limit — the data is public, Facebook just hides it from logged-out visitors. **Even the official `apify/facebook-events-scraper` actor admits in its docs that for pages and groups it "*will return only recent events that regular Facebook users can see without scrolling*."**

This actor reaches the rest by paginating the public surface directly. On a typical festival promoter or major venue we return 50–200+ events where every other Apify FB scraper stops at 8.

### Pricing — transparent, no surprises

| | Price |
|---|---|
| Per Facebook event scraped | **$5.00 / 1,000** |
| Per Facebook organizer scraped | $5.00 / 1,000 |
| Per actor start (waives first 5s compute) | $0.00005 |

**Worked example:** A typical run that scrapes one venue page and pulls its 50 upcoming events:

````

1 organizer profile  × $5 / 1,000  = $0.005
50 events scraped    × $5 / 1,000  = $0.250
─────────────────────────────────────────────
total = $0.255

```

No subscription, no minimum spend. The price is all-inclusive — compute and residential proxy are covered, never billed on top. You pay only for events that actually land in your dataset; failed retries and skipped duplicates are free.

For comparison, the official `apify/facebook-events-scraper` charges **$13 per 1,000 events** on its Free plan ($7 on Business). This actor is ~60% cheaper — it undercuts even their Business tier — and goes deeper (past the 8-event cap).

### Quickstart

Paste any of these into **Paste Facebook URLs**:

```

https://www.facebook.com/TEDxAmsterdam
https://www.facebook.com/events/666594420519340/
666594420519340
TEDxAmsterdam
https://www.facebook.com/groups/123456789012345/

````

Each line is **auto-detected** as an event, an organizer page, or a group. Mix freely.

The **Cascade depth** dial controls how deep the actor follows the social graph from each input:

- **0** — scrape just what you paste. Cheapest, fastest. Event → 1 event row. Organizer → 1 profile row. Group → its events.
- **1** (default) — also pull each organizer's full event calendar AND each event's host profiles. The sweet spot for most users.
- **2** — follow co-host relationships one more hop (organizer → events → those events' hosts).
- **3–5** — recursive deep cascade. Use with `maxTotalEvents` to cap spend.

Pick an **events time range** — `upcoming` (default), `past`, or `both`. The two **total caps** (`maxTotalEvents` and `maxTotalOrganizers`) give you a hard ceiling on spend per run regardless of cascade depth.

#### Full vs. list detail

The **Event detail level** setting decides how much we fetch per event (the per-event price is the same either way):

- **`full`** (default) — scrape every event's complete detail: description, exact coordinates, ticket link, attendee count, end time, categories. Richest data.
- **`list`** — emit events straight from the organizer's listing: name, date, venue, city, **cover photo, and host** — but skip the detail-only fields. Runs roughly **4× faster** because it skips the per-event detail fetch. The cascade still expands hosts in this mode.

If you're an aggregator that just needs "what's on, where, and when" with a cover image, `list` mode is faster. Switch to `full` only when you need descriptions, tickets, or precise coordinates.

### What you get back

The dataset writes one row per scraped entity, tagged with `type`. Switch between the **Events** and **Organizers** tabs to see rich previews — cover photos render inline, dates are parsed, links are clickable. Export as **JSON, CSV, Excel, or via the Apify API**.

#### Event row

```json
{
  "type": "event",
  "discoveredVia": "organizer-expansion",
  "id": "1234567890123456",
  "name": "TEDxAmsterdam 2026: Ideas Worth Spreading",
  "description": "...",
  "startTimestamp": 1763110800,
  "endTimestamp": 1763136000,
  "formattedDate": "Sat, Nov 14, 2026 at 9:00 AM",
  "timezone": "Europe/Amsterdam",
  "location": {
    "name": "Royal Theater Carré",
    "city": { "name": "Amsterdam" },
    "coordinates": { "latitude": 52.362, "longitude": 4.901 }
  },
  "hosts": [
    { "id": "100064...", "name": "TEDxAmsterdam", "type": "Page" }
  ],
  "photo": { "imageUri": "https://..." },
  "ticketUrl": null,
  "isCanceled": false,
  "isOnline": false,
  "usersResponded": 412,
  "url": "https://www.facebook.com/events/1234567890123456/"
}
````

#### Organizer row

```json
{
  "type": "organizer",
  "discoveredVia": "input",
  "id": "100064xxxxxxxxx",
  "name": "TEDxAmsterdam",
  "vanity": "TEDxAmsterdam",
  "url": "https://www.facebook.com/TEDxAmsterdam",
  "category": "Nonprofit Organization",
  "isVerified": false,
  "description": "...",
  "contextualName": "Amsterdam, Netherlands",
  "profilePicture": { "small": "https://...", "medium": "https://...", "large": "https://..." },
  "coverPhoto": { "imageUri": "https://..." }
}
```

#### Error row

A bad input never aborts the run — it becomes a row you can filter on:

```json
{ "type": "error", "input": "not-a-real-thing", "reason": "Unrecognised input" }
```

### How it compares

| | This actor | `apify/facebook-events-scraper` (official) | Keyword-search actors |
|---|---|---|---|
| Past Facebook's 8-event cap | ✅ | ❌ (only what logged-out visitors see) | ❌ |
| Auto-detects event / page / group input | ✅ | partial | ❌ |
| Cascade expansion (event → host → host's events) | ✅ | ❌ | ❌ |
| Keyword / city / date search | ❌ | ❌ | ✅ |
| Pricing | **$5 / 1,000 events** | $13 / 1,000 events (Free), $7 (Business) | $1–$5 / 1,000 |
| Speed (typical 50-event organizer) | ~30 seconds | ~minutes | ~minutes |

**This actor is built for deep extraction.** If you need keyword/city event search, use one of the search-based actors and pipe their resulting organizer URLs back into this one — they're complementary, not competitors.

### Use cases

- **Event aggregators and discovery platforms** — bulk-import an entire region's events from a list of venues, brands, or groups.
- **Lead generation** — find organizers active in your niche and their upcoming events for outreach campaigns.
- **Market and competitor research** — track who's running events where, at what cadence, in which categories.
- **Local guides and weekend-calendar feeds** — auto-populate "what's on this week" listings without writing your own crawler.

### Input reference

| Field | Type | Default | Notes |
|---|---|---|---|
| `inputs` | string\[] | *(required)* | Event URLs, event IDs, organizer/page URLs, organizer vanity names, group URLs. Auto-classified per item. |
| `cascadeDepth` | integer (0–5) | `1` | Number of expansion hops from each input. See the cascade ladder above. |
| `eventsTimeRange` | enum | `"upcoming"` | `"upcoming"`, `"past"`, or `"both"`. Applies to organizer/group expansion. |
| `eventDetail` | enum | `"full"` | `"full"` = complete per-event detail. `"list"` = name/date/venue/city/cover/host only, ~4× faster (same per-event price). |
| `maxEventsPerOrganizer` | integer (1–100) | `50` | Caps how many events are pulled per expanded organizer or group. |
| `maxTotalEvents` | integer (1–5,000) | `500` | Hard global cap on events scraped per run. Checked before each full event scrape — you never pay for events that don't appear in the dataset. |
| `maxTotalOrganizers` | integer (1–1,000) | `100` | Hard global cap on organizer profiles scraped per run. |
| `proxyConfiguration` | object | Apify Proxy `RESIDENTIAL` | Residential proxy is required — Facebook blocks datacenter IPs. Country dropdown in the UI lets you pin to a region (e.g. GB for UK events). |

### FAQ

**Do I need cookies or a Facebook account?**
No. The actor reads only public data, as a logged-out visitor would.

**Why a residential proxy?**
Facebook blocks datacenter IPs. The default `RESIDENTIAL` group of Apify Proxy is enough — no extra setup. You can optionally pin to a country in the proxy editor.

**What about past events?**
Set `eventsTimeRange` to `"past"` or `"both"`. Note: Facebook caps past events at 8 per organizer (logged-out limit). Upcoming uses full pagination.

**What about Facebook event search by keyword or city?**
This actor doesn't do search — it's built for deep extraction from organizer pages and groups you already know. For keyword/city search, use a search-based actor and pipe its organizer URLs into this one. The two are complementary.

**How long does a typical run take?**
A 50-event organizer scrape finishes in under 30 seconds. A cascade-depth-3 run with 500 events typically takes 2–4 minutes. HTTP-only architecture — no Chromium overhead.

**What about Apify platform costs (compute, proxy bandwidth)?**
The price is all-inclusive. You pay only the per-event and per-organizer charges above — compute and residential proxy are covered, not billed on top. There's no surprise platform bill.

**What's the difference between `full` and `list` detail then?**
Purely data richness and speed — the per-event price is the same either way. `full` returns every field (description, coordinates, tickets, attendee count). `list` returns name, date, venue, city, cover photo, and host, and runs roughly 4× faster because it skips the per-event detail fetch. Choose `list` if you only need "what's on, where, when" with a cover image; choose `full` when you need the rest.

**A run failed — what now?**
Re-run it. Runs are billed only on successful scrapes — failed events don't appear in your dataset and aren't charged. See `RUNBOOK.md` in the actor's GitHub for troubleshooting. If Facebook changes its public surface, watch the version log: typical hotfix turnaround is within hours.

**Can I run this on millions of events?**
Yes — use the `maxTotalEvents` cap to bound spend. The actor streams to the dataset as it scrapes, so you can pause/resume large jobs via Apify's scheduler.

### Support

For bugs or feature requests, use the **Issues** tab on this actor's Apify Store page. Runs are billed only on successful scrapes, so a failed run costs you nothing while we investigate.

# Actor input Schema

## `inputs` (type: `array`):

Anything Facebook gives a URL to: events (https://www.facebook.com/events/123...), organizer/page URLs, organizer vanity names (TEDxAmsterdam), or group URLs. Each line is auto-classified. Mix freely.

## `cascadeDepth` (type: `integer`):

0 = scrape just what you paste (cheapest, fastest). 1 = also pull each organizer's full upcoming-events calendar AND each event's host profiles. 2 = follow co-host relationships one more hop. 3-5 = recursive deep cascade (use with the caps below to bound spend). Most users want 1. Example cost at $5 per 1,000 events (all-inclusive): a depth-1 organizer scrape with 50 events ≈ $0.25.

## `eventsTimeRange` (type: `string`):

Which events to include when expanding an organizer or group. Past listings are capped at 8 per organizer/group (Facebook side); upcoming uses full pagination.

## `eventDetail` (type: `string`):

full = scrape every event's full detail (description, exact coordinates, ticket link, attendee count, end time, categories). list = emit events straight from the organizer/group listing with name, date, venue, city, cover photo, and host — but without the detail-only fields, and runs ~4x faster. Same per-event price either way. Cascade expansion works in both modes. Directly-pasted event URLs always use full detail.

## `maxEventsPerOrganizer` (type: `integer`):

Caps how many events are pulled per expanded organizer or group.

## `maxTotalEvents` (type: `integer`):

Hard global cap on events scraped per run. The cap is checked before each full event scrape, so you never pay for events you don't see. Default keeps spend under $2.50 at $5 / 1,000.

## `maxTotalOrganizers` (type: `integer`):

Hard global cap on organizer profiles scraped per run. Bounds cascade breadth.

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

Residential proxy is required — Facebook blocks datacenter IPs.

## Actor input object example

```json
{
  "inputs": [
    "https://www.facebook.com/TEDxAmsterdam",
    "https://www.facebook.com/events/666594420519340/"
  ],
  "cascadeDepth": 1,
  "eventsTimeRange": "upcoming",
  "eventDetail": "full",
  "maxEventsPerOrganizer": 50,
  "maxTotalEvents": 500,
  "maxTotalOrganizers": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `events` (type: `string`):

Scraped Facebook events with cover photo, parsed dates, venue, host, and clickable links.

## `organizers` (type: `string`):

Scraped Facebook organizer profiles with cover photo, avatar, category, and links.

## `allItems` (type: `string`):

Every dataset row, untransformed.

# 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 = {
    "inputs": [
        "https://www.facebook.com/TEDxAmsterdam",
        "https://www.facebook.com/events/666594420519340/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapegeist/facebook-organizer-events-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 = { "inputs": [
        "https://www.facebook.com/TEDxAmsterdam",
        "https://www.facebook.com/events/666594420519340/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapegeist/facebook-organizer-events-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 '{
  "inputs": [
    "https://www.facebook.com/TEDxAmsterdam",
    "https://www.facebook.com/events/666594420519340/"
  ]
}' |
apify call scrapegeist/facebook-organizer-events-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Events Scraper — Past the 8-Event Limit",
        "description": "Scrape ALL Facebook events from any page or group — past the 8-event logged-out limit. No login, no browser. From $5 per 1,000 events, all-inclusive — well below the official scraper's $13.",
        "version": "0.1",
        "x-build-id": "egya1kYmfxJJjd8iA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapegeist~facebook-organizer-events-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapegeist-facebook-organizer-events-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/scrapegeist~facebook-organizer-events-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapegeist-facebook-organizer-events-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/scrapegeist~facebook-organizer-events-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapegeist-facebook-organizer-events-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": [
                    "inputs"
                ],
                "properties": {
                    "inputs": {
                        "title": "Paste Facebook event, page, or group URLs (one per line)",
                        "type": "array",
                        "description": "Anything Facebook gives a URL to: events (https://www.facebook.com/events/123...), organizer/page URLs, organizer vanity names (TEDxAmsterdam), or group URLs. Each line is auto-classified. Mix freely.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "cascadeDepth": {
                        "title": "Cascade depth — how deep should it follow the social graph?",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "0 = scrape just what you paste (cheapest, fastest). 1 = also pull each organizer's full upcoming-events calendar AND each event's host profiles. 2 = follow co-host relationships one more hop. 3-5 = recursive deep cascade (use with the caps below to bound spend). Most users want 1. Example cost at $5 per 1,000 events (all-inclusive): a depth-1 organizer scrape with 50 events ≈ $0.25.",
                        "default": 1
                    },
                    "eventsTimeRange": {
                        "title": "Events time range",
                        "enum": [
                            "upcoming",
                            "past",
                            "both"
                        ],
                        "type": "string",
                        "description": "Which events to include when expanding an organizer or group. Past listings are capped at 8 per organizer/group (Facebook side); upcoming uses full pagination.",
                        "default": "upcoming"
                    },
                    "eventDetail": {
                        "title": "Event detail level",
                        "enum": [
                            "full",
                            "list"
                        ],
                        "type": "string",
                        "description": "full = scrape every event's full detail (description, exact coordinates, ticket link, attendee count, end time, categories). list = emit events straight from the organizer/group listing with name, date, venue, city, cover photo, and host — but without the detail-only fields, and runs ~4x faster. Same per-event price either way. Cascade expansion works in both modes. Directly-pasted event URLs always use full detail.",
                        "default": "full"
                    },
                    "maxEventsPerOrganizer": {
                        "title": "Max events per organizer / group",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Caps how many events are pulled per expanded organizer or group.",
                        "default": 50
                    },
                    "maxTotalEvents": {
                        "title": "Max total events per run",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard global cap on events scraped per run. The cap is checked before each full event scrape, so you never pay for events you don't see. Default keeps spend under $2.50 at $5 / 1,000.",
                        "default": 500
                    },
                    "maxTotalOrganizers": {
                        "title": "Max total organizers per run",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard global cap on organizer profiles scraped per run. Bounds cascade breadth.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Residential proxy is required — Facebook blocks datacenter IPs.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
