# Bark Scraper (Service Aggregates) (`crawlerbros/bark-scraper`) Actor

Scrape Bark.com public service-category pages for aggregate ratings, review counts, and service taxonomy across 11 countries (US, UK, AU, CA, IE, NZ, SG, ZA, IN, DE, FR). Three modes: byUrls, byService, and sitemap-based discover. Honors robots.txt.

- **URL**: https://apify.com/crawlerbros/bark-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Automation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 16 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 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

## Bark Scraper

Extract aggregate ratings, review counts, and service taxonomy from **Bark.com** — the global services marketplace covering 11 countries (US, UK, Australia, Canada, Ireland, New Zealand, Singapore, South Africa, India, Germany, France).

This actor scrapes Bark's **public service-category pages** (e.g. plumbers, electricians, accountants) at country, state, and city granularity. It pulls structured `JSON-LD` markup (`AggregateRating`, `BreadcrumbList`, `LocalBusiness`) directly from the page so every record is consistent and clean.

> **Note on robots.txt:** This actor does **not** crawl per-professional `/company/<slug>/` pages — those are robots-disallowed by Bark and out of scope here. We focus on the public service-aggregate surface area.

---

### What you get

For each scraped service-category page, the dataset contains a flat record with:

| Field | Description |
|---|---|
| `recordType` | `service` (full record) or `serviceUrl` (URL-only, from discover mode) |
| `url` | Canonical Bark URL of the service page |
| `country` | Two-letter country code (`us`, `gb`, `au`, `ca`, `ie`, `nz`, `sg`, `za`, `in`, `de`, `fr`) |
| `lang` | Language slug (`en`, `de`, `fr`) |
| `serviceSlug` | URL-form service slug (e.g. `plumbers`, `personal-trainers`) |
| `serviceName` | Human-readable service title (e.g. `General Plumbing`) |
| `state` | State / region slug (when scraping a state- or city-level page) |
| `city` | City slug (when scraping a city-level page) |
| `ratingValue` | Aggregate rating (0–5 scale) |
| `reviewCount` | Total reviews counted toward the aggregate |
| `currency` | Currency accepted on this market |
| `paymentAccepted` | Comma-separated payment methods |
| `openingHours` | Service availability days |
| `image`, `logo` | Image URLs from the page |
| `breadcrumb` | Parent-category chain as ordered `[{name, url}]` |
| `parentCategory` | Convenience flat field — the immediate parent category |
| `provider` | Bark organization metadata (name, url, telephone, email) |
| `lastModified` | (discover mode only) `lastmod` timestamp from sitemap |
| `scrapedAt` | ISO-8601 UTC timestamp of the scrape |

Empty / unknown fields are **omitted** rather than emitted as `null` or `""`.

---

### Modes

#### 1. `byUrls` — scrape a list of Bark service URLs

Provide any mix of service, state, or city Bark URLs.

#### 2. `byService` — build a URL from country + service [+ state + city]

Useful when you have a service slug (e.g. `plumbers`) and want a specific market.

#### 3. `discover` — enumerate Bark service URLs from the sitemap

Walks Bark's public sitemap, filters by country + scope + service-name substring, and emits either lightweight `serviceUrl` records (fast) or full `service` records (when `enrichDiscovered = true`).

---

### Inputs

| Input | Type | Required | Description |
|---|---|---|---|
| `mode` | enum | yes | `byUrls`, `byService`, `discover` |
| `urls` | array | mode=byUrls | Bark service URLs to scrape |
| `country` | enum | mode=byService / discover | Two-letter country code (11 options) |
| `service` | string | mode=byService | Service slug (e.g. `plumbers`) |
| `state` | string | mode=byService (optional) | State / region slug |
| `city` | string | mode=byService (optional) | City slug — requires `state` |
| `discoverScope` | enum | mode=discover | `service-only`, `state-only`, `city-only`, `all`, `country-only` |
| `serviceFilter` | string | mode=discover (optional) | Substring filter against the service slug |
| `enrichDiscovered` | bool | mode=discover (optional) | If true, fetch each discovered URL and emit a full record |
| `minRatingValue` | int (0–5) | optional | Drop records below this rating |
| `minReviewCount` | int | optional | Drop records below this review count |
| `keywordIncludes` | string | optional | Drop records whose service name doesn't include this keyword |
| `maxItems` | int (1–5000) | optional | Hard cap on emitted records |
| `useProxy` | bool | optional | Route through Apify proxy |
| `autoEscalateOnBlock` | bool | optional | Auto-engage Apify proxy on HTTP 403/429 (default true) |

---

### Example inputs

**Scrape a single US service page:**

```json
{
  "mode": "byUrls",
  "urls": ["https://www.bark.com/en/us/plumbers/"],
  "maxItems": 1
}
````

**Scrape a UK service in London:**

```json
{
  "mode": "byService",
  "country": "gb",
  "service": "plumbers",
  "state": "london"
}
```

**Discover plumbing-related service URLs in the US:**

```json
{
  "mode": "discover",
  "country": "us",
  "discoverScope": "service-only",
  "serviceFilter": "plumb",
  "maxItems": 50
}
```

***

### Example output

```json
{
  "recordType": "service",
  "url": "https://www.bark.com/en/us/plumbers/",
  "lang": "en",
  "country": "us",
  "serviceSlug": "plumbers",
  "serviceName": "General Plumbing",
  "ratingValue": 4.7709,
  "reviewCount": 81413,
  "currency": "usd",
  "paymentAccepted": "Credit Card, Debit Card",
  "openingHours": "Mo-Su",
  "breadcrumb": [
    {"name": "Services", "url": "https://www.bark.com/en/us/services/"},
    {"name": "Heating, Hot Water & Air Conditioning", "url": "https://www.bark.com/en/us/heating-hot-water-air-conditioning/"},
    {"name": "General Plumbing"}
  ],
  "parentCategory": "Heating, Hot Water & Air Conditioning",
  "provider": {
    "name": "Bark",
    "url": "https://www.bark.com/",
    "telephone": "(424) 227-5323",
    "email": "team@bark.com"
  },
  "scrapedAt": "2026-05-07T03:14:22.123456+00:00"
}
```

***

### Use cases

- **Marketplace research** — compare service-category ratings across countries.
- **Pricing benchmarks** — pair service + state to track regional differences.
- **Competitive analysis** — track how a service category's review count grows over time.
- **SEO research** — enumerate a competitor marketplace's full service taxonomy via the sitemap.
- **Lead-generation territory mapping** — discover which city/state pages exist for a service in any of the 11 supported countries.

***

### FAQ

**Q: Do I need a Bark login or API key?**
No. Bark publishes the data we extract as public structured markup (`JSON-LD`) embedded in the page HTML.

**Q: Can I scrape individual pro / professional profiles (`/company/<slug>/`)?**
No. Bark's `robots.txt` disallows that path and we honor it.

**Q: Do I need a proxy?**
Usually no — Bark works fine from datacenter IPs. If you hit a block, set `useProxy: true` (or leave `autoEscalateOnBlock: true`, the default — the actor will engage Apify proxy automatically on HTTP 403/429).

**Q: How does `discover` mode pick which sitemap shards to read?**
Bark publishes one shard per country (plus 11 default shards for the US). The actor reads the index, prioritizes shards matching your `country` filter, and walks each gzipped shard until `maxItems` is hit.

**Q: What does `enrichDiscovered` do?**
By default `discover` emits lightweight `serviceUrl` records (URL + slugs only — fast, no per-URL HTTP). Setting `enrichDiscovered: true` makes the actor follow each URL and emit a full `service` record with rating, review count, breadcrumb, etc.

**Q: Why are some output fields missing from a record?**
The actor never emits `null` or `""`. If a field is missing, Bark's page didn't include that data (e.g. some markets don't publish `paymentAccepted`).

***

### Limitations

- Per-professional `/company/<slug>/` pages are excluded by design (robots-disallowed).
- The "country-only" discover scope returns 0 records because Bark's sitemap doesn't list country-root pages.
- Aggregate ratings reflect Bark's marketplace-wide signal for that service in that market — not a single business's rating.
- `discover` mode reads up to 11 sitemap shards; very deep walks (>5000 URLs) should be batched across runs via `maxItems` + `serviceFilter`.

***

Built for [Apify](https://apify.com). Honors `robots.txt`. No login or cookies required.

# Actor input Schema

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

What to fetch.

## `urls` (type: `array`):

Bark service or service+location URLs (e.g. `https://www.bark.com/en/us/plumbers/`, `https://www.bark.com/en/us/plumbers/new-york/new-york-city/`).

## `country` (type: `string`):

Two-letter country code. Bark supports 11 countries.

## `service` (type: `string`):

Bark service slug (e.g. `plumbers`, `electricians`, `cleaners`, `personal-trainers`, `accountants`). Run `mode=discover` first to enumerate slugs.

## `state` (type: `string`):

Full state slug (e.g. `new-york`, `california`, `ontario`, `england`). When provided, the actor scrapes the state-level page; combine with `city` for city-level.

## `city` (type: `string`):

City slug (e.g. `new-york-city`, `los-angeles`, `london`, `toronto`). Requires `state` to be set.

## `discoverScope` (type: `string`):

Granularity of discovered URLs from the sitemap.

## `serviceFilter` (type: `string`):

Substring match against the service slug; only URLs containing this string are emitted (e.g. `plumb` matches `plumbers`, `pool-plumbing-cleaning`).

## `enrichDiscovered` (type: `boolean`):

If true, fetch each discovered URL and emit a full service record (aggregate ratings, breadcrumbs). If false, emit just URL records (much faster, no per-URL fetch).

## `minRatingValue` (type: `integer`):

Drop service records with `ratingValue` below this. Scale 0-5 (e.g. 4 = 4.0/5).

## `minReviewCount` (type: `integer`):

Drop service records with fewer reviews than this.

## `keywordIncludes` (type: `string`):

Drop records whose `serviceName` doesn't include this keyword (case-insensitive).

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

Hard cap on emitted records.

## `useProxy` (type: `boolean`):

Route requests through Apify proxy. Bark works fine from datacenter IPs by default; only enable if you hit blocks.

## `autoEscalateOnBlock` (type: `boolean`):

If true (default), the actor automatically engages Apify proxy when it hits HTTP 403 / anti-bot blocks from a raw datacenter IP. Set false to disable.

## Actor input object example

```json
{
  "mode": "byUrls",
  "urls": [
    "https://www.bark.com/en/us/plumbers/"
  ],
  "country": "us",
  "discoverScope": "service-only",
  "enrichDiscovered": false,
  "maxItems": 50,
  "useProxy": false,
  "autoEscalateOnBlock": true
}
```

# Actor output Schema

## `records` (type: `string`):

Dataset of all scraped Bark service-aggregate records.

# 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 = {
    "mode": "byUrls",
    "urls": [
        "https://www.bark.com/en/us/plumbers/"
    ],
    "country": "us",
    "discoverScope": "service-only",
    "enrichDiscovered": false,
    "maxItems": 50,
    "useProxy": false,
    "autoEscalateOnBlock": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/bark-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 = {
    "mode": "byUrls",
    "urls": ["https://www.bark.com/en/us/plumbers/"],
    "country": "us",
    "discoverScope": "service-only",
    "enrichDiscovered": False,
    "maxItems": 50,
    "useProxy": False,
    "autoEscalateOnBlock": True,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/bark-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 '{
  "mode": "byUrls",
  "urls": [
    "https://www.bark.com/en/us/plumbers/"
  ],
  "country": "us",
  "discoverScope": "service-only",
  "enrichDiscovered": false,
  "maxItems": 50,
  "useProxy": false,
  "autoEscalateOnBlock": true
}' |
apify call crawlerbros/bark-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bark Scraper (Service Aggregates)",
        "description": "Scrape Bark.com public service-category pages for aggregate ratings, review counts, and service taxonomy across 11 countries (US, UK, AU, CA, IE, NZ, SG, ZA, IN, DE, FR). Three modes: byUrls, byService, and sitemap-based discover. Honors robots.txt.",
        "version": "1.0",
        "x-build-id": "2wkgZ3qCV86vJVH2Q"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~bark-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-bark-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/crawlerbros~bark-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-bark-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/crawlerbros~bark-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-bark-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "byUrls",
                            "byService",
                            "discover"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "byUrls"
                    },
                    "urls": {
                        "title": "Bark service URLs (mode=byUrls)",
                        "type": "array",
                        "description": "Bark service or service+location URLs (e.g. `https://www.bark.com/en/us/plumbers/`, `https://www.bark.com/en/us/plumbers/new-york/new-york-city/`).",
                        "default": [
                            "https://www.bark.com/en/us/plumbers/"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "country": {
                        "title": "Country (mode=byService / discover)",
                        "enum": [
                            "us",
                            "gb",
                            "au",
                            "ca",
                            "ie",
                            "nz",
                            "sg",
                            "za",
                            "in",
                            "de",
                            "fr"
                        ],
                        "type": "string",
                        "description": "Two-letter country code. Bark supports 11 countries.",
                        "default": "us"
                    },
                    "service": {
                        "title": "Service slug (mode=byService)",
                        "type": "string",
                        "description": "Bark service slug (e.g. `plumbers`, `electricians`, `cleaners`, `personal-trainers`, `accountants`). Run `mode=discover` first to enumerate slugs."
                    },
                    "state": {
                        "title": "State / region slug (mode=byService, optional)",
                        "type": "string",
                        "description": "Full state slug (e.g. `new-york`, `california`, `ontario`, `england`). When provided, the actor scrapes the state-level page; combine with `city` for city-level."
                    },
                    "city": {
                        "title": "City slug (mode=byService, optional)",
                        "type": "string",
                        "description": "City slug (e.g. `new-york-city`, `los-angeles`, `london`, `toronto`). Requires `state` to be set."
                    },
                    "discoverScope": {
                        "title": "Discover scope (mode=discover)",
                        "enum": [
                            "all",
                            "country-only",
                            "service-only",
                            "state-only",
                            "city-only"
                        ],
                        "type": "string",
                        "description": "Granularity of discovered URLs from the sitemap.",
                        "default": "service-only"
                    },
                    "serviceFilter": {
                        "title": "Service slug filter (mode=discover, optional)",
                        "type": "string",
                        "description": "Substring match against the service slug; only URLs containing this string are emitted (e.g. `plumb` matches `plumbers`, `pool-plumbing-cleaning`)."
                    },
                    "enrichDiscovered": {
                        "title": "Enrich discovered URLs (mode=discover)",
                        "type": "boolean",
                        "description": "If true, fetch each discovered URL and emit a full service record (aggregate ratings, breadcrumbs). If false, emit just URL records (much faster, no per-URL fetch).",
                        "default": false
                    },
                    "minRatingValue": {
                        "title": "Min rating value",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Drop service records with `ratingValue` below this. Scale 0-5 (e.g. 4 = 4.0/5)."
                    },
                    "minReviewCount": {
                        "title": "Min review count",
                        "minimum": 0,
                        "maximum": 10000000,
                        "type": "integer",
                        "description": "Drop service records with fewer reviews than this."
                    },
                    "keywordIncludes": {
                        "title": "Service-name keyword filter",
                        "type": "string",
                        "description": "Drop records whose `serviceName` doesn't include this keyword (case-insensitive)."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 50
                    },
                    "useProxy": {
                        "title": "Use Apify proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify proxy. Bark works fine from datacenter IPs by default; only enable if you hit blocks.",
                        "default": false
                    },
                    "autoEscalateOnBlock": {
                        "title": "Auto-escalate to Apify proxy on block",
                        "type": "boolean",
                        "description": "If true (default), the actor automatically engages Apify proxy when it hits HTTP 403 / anti-bot blocks from a raw datacenter IP. Set false to disable.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
