# Bark.com Directory Scraper – Listings & Profile URLs (`scrapesage/bark-listing-scraper`) Actor

Extract Bark.com business directory listings by category & location: company name, profile URL, rating, area & logo, deduped to one row per provider. Build B2B prospect lists or feed the profile URLs into a Bark Profile Scraper. Returns profiles & URLs, not contact info.

- **URL**: https://apify.com/scrapesage/bark-listing-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 provider scrapeds

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

## Bark.com Directory Scraper – Listings & Profile URLs

Extract business directory listings from **Bark.com** by category and location. For every provider Bark lists publicly, you get the company name, its Bark **profile URL**, star rating, service area, and logo — **deduplicated to one row per provider** across every page scanned.

Use it to build B2B prospect lists by trade and region, to map a category's competitive landscape, or to generate a clean list of Bark profile URLs you can take into a separate profile scraper for additional public data per provider.

> **Unofficial:** This is an independent tool and is **not affiliated with, endorsed by, or connected to Bark.com**. "Bark" and "Bark.com" are trademarks of their respective owners, used here only to describe the public website this tool collects data from. It collects publicly available listing information only.

---

### What you get

Each row in the dataset is one unique provider, with these fields:

| Field | Description |
|---|---|
| `name` | Company / provider name |
| `profileUrl` | Direct link to the provider's Bark profile |
| `category` | The service category scraped (e.g. `cleaners`) |
| `listingLocation` | The town/area shown on the listing |
| `ratingValue` | Star rating (when shown) |
| `country` | Country code (e.g. `gb`, `us`) |
| `state` | Region/state/county the page belongs to |
| `city` | City the page belongs to (when applicable) |
| `logoUrl` | URL of the provider's logo image |
| `scrapedAt` | Timestamp of the run |

#### What this does **not** include

Bark keeps provider phone numbers and email addresses behind its own quote-request flow, so **they are not part of any public listing and this actor does not return them.** You get each provider's name, public profile URL, rating, area, and logo — not direct contact details. The profile URL is your starting point for going deeper.

---

### How Bark's coverage works (please read)

Bark is a **lead-marketplace, not an open directory**, and that shapes what's collectable:

- **Each location page publicly shows roughly a dozen top providers** (a "Popular [providers]" section), then invites you to request quotes. There is no "page 2" to collect — that's Bark's public ceiling per page.
- **Coverage comes from breadth, not depth.** This actor builds large lists by scanning **many city and region pages** across your chosen country and merging them into one deduplicated set. More localities with providers = more providers returned. A single city returns ~a dozen; a whole-country sweep of a popular category returns hundreds to thousands.
- **Results depend on Bark's actual supply.** A category/location only shows providers where Bark has businesses signed up there. Where it doesn't, the page is just a quote-request form with nothing to collect — so that page returns nothing. **An empty or small result usually means Bark has little supply for that exact category + place, not that the run failed.** The run's status message tells you when this happens.

---

### Country & category coverage

Coverage varies far more by **category** than by country. Bark originated in the UK and is strongest in service categories like **cleaning, coaching, tutoring, creative/design, events, and wellbeing**. Some trades (for example plumbing/HVAC in the US) have thin supply and will return little.

Relative country coverage, using a dense category (cleaners) as a benchmark — higher = more locality pages available to collect from:

| Coverage | Countries |
|---|---|
| **Strongest** | United Kingdom, United States |
| **Good** | Australia, Canada |
| **Moderate** | South Africa, France, New Zealand, Ireland, Germany |
| **Thin** | Singapore |

If a category looks empty in your country, try a denser category like `cleaners` to confirm the actor is working, then adjust expectations for sparser ones.

---

### Input

| Setting | What it does |
|---|---|
| **Country** | Which Bark country site to scrape (United Kingdom, United States, Canada, Australia, Ireland, New Zealand, Singapore, South Africa, Germany, France). |
| **Service categories** | One or more Bark category slugs, e.g. `cleaners`, `plumbers`, `web-design`. Don't worry about exact formatting — capitalization, spaces (`Web Design`), and singular/plural (`plumber`) are auto-corrected. Leave empty to scrape **all** categories (large — use the limits). |
| **State / region** (optional) | Narrow to one region using Bark's own slug for that country: US states (`california`), Canadian provinces (`ontario`), UK counties or cities (`greater-london`, `berkshire`), Australian states (`new-south-wales`). Note: a nation like `england` is **not** a valid region — the UK is split into counties. |
| **City** (optional) | Narrow to a single city, e.g. `los-angeles`. **Requires a State/region** (Bark city pages live under a state in the URL). |
| **Include national & state pages** | Also collect the country-wide and region-wide listing pages, not just cities. |
| **Max unique providers** | Stop once this many unique providers have been collected. The best way to cap a run's size and cost. |
| **Max listing pages** | Upper bound on how many location pages to scan. |
| **Proxy** | Apify Proxy is used by default. If you ever see blocking on very large runs, switch the proxy group to **Residential**. |

#### Tips for the best results

- **Easiest reliable setup: choose a Country and Category and leave State/City empty.** This sweeps the entire country (all regions and cities) and returns the most providers.
- **Want a fast, cheap sample?** Set a City **and** its State (e.g. `texas` + `houston`) — single-city runs finish in seconds.
- **Want a big list?** Leave State/City empty, pick a dense category, and use **Max unique providers** to control the size.

---

### Example output

```json
{
  "name": "Monty Cleaning Services",
  "profileUrl": "https://www.bark.com/en/gb/company/monty-cleaning-services/61X2z/",
  "category": "cleaners",
  "listingLocation": "Slough",
  "ratingValue": 5,
  "country": "gb",
  "state": "berkshire",
  "city": "slough",
  "logoUrl": "https://images.bark.com/.../logo.jpg",
  "scrapedAt": "2026-05-30T06:40:28.000Z"
}
````

Export the full dataset as JSON, CSV, Excel, or via the API.

***

### How long it takes

- **Single city** (City + State set): a few seconds.
- **Whole-country or region sweep:** about **1–3 minutes**. Bark's sitemap groups every country together, so the actor spends the first minute or two mapping the directory before it begins collecting — this is normal. Very large sweeps may need a higher run timeout (raise it under **Run options**).

***

### Pricing

You're charged **per unique provider returned** — pages that turn out to have no public providers cost you nothing, and duplicates (the same provider appearing on multiple pages) are only ever counted once. See the **Pricing** section on this page for the current per-result rate.

***

### Pairs with a profile scraper

This actor **discovers** providers and hands you their profile URLs. If you want to collect additional public information for each provider, those URLs can be fed into a separate Bark profile scraper, including the **[Bark.com Profile Scraper](https://apify.com/scrapesage/bark-scraper)** — the directory scraper finds providers, a profile scraper takes it from there.

***

### FAQ

**The result was empty or small — is it broken?**
Almost always no. It means Bark has little or no public provider supply for that exact category + location. Try a denser category like `cleaners`, or broaden the location (leave State/City empty). The run's status message will say when a result is empty because of supply.

**Why don't I get phone numbers or emails?**
Bark doesn't publish them on listings — contact happens through Bark's own quote flow. Public listings only expose the fields listed above.

**Can I get more than ~a dozen providers from one city?**
That's Bark's public limit per page. To build a larger list, scan more localities (the default whole-country sweep does this automatically) — the actor merges and deduplicates them for you.

**My region filter returned nothing.**
Check you used Bark's own region slug. For non-US countries these are counties or cities (e.g. `greater-london`), not nations (`england` won't work). When in doubt, leave State/City empty and run Country + Category.

***

*Independent tool, not affiliated with or endorsed by Bark.com. Collects publicly available information only. Please use responsibly and in line with applicable laws and Bark.com's terms.*

# Actor input Schema

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

Bark region to scrape. Determines which locale path (e.g. /en/us/) the actor harvests from the sitemap.

## `categories` (type: `array`):

Bark category slugs, e.g. "cleaners", "plumbers", "web-design" (as they appear in a Bark URL: bark.com/en/us/<slug>/). Don't worry about exact formatting — the actor auto-fixes capitalization, spaces ("Web Design" → "web-design"), and singular/plural ("plumber" → "plumbers"). Leave empty to scrape ALL categories (large — use the limits below).

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

Optional regional filter using Bark's own slug for that country: US states ("california"), Canadian provinces ("ontario"), UK counties or big cities ("greater-london", "berkshire"), Australian states ("new-south-wales"). Note: "england" is NOT valid — the UK is split into counties, not nations. Easiest and most reliable: leave State AND City empty to sweep the entire country (all regions and cities).

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

Restrict to a single city slug as it appears in Bark URLs, e.g. "new-york-city", "los-angeles". A city cannot be located without its state, so if you fill this in you MUST also fill in State/region (.../plumbers/california/los-angeles/). Leave empty to cover all cities.

## `includeNationalAndState` (type: `boolean`):

When true, also pull providers from the national category page and state pages (max coverage). When false, only city pages are scraped (deepest local long-tail). Either way results are deduplicated per provider. Default: true.

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

Hard cap on the number of UNIQUE providers scraped (and charged) in a single run. The primary cost guard. Duplicates are never charged. Default: 1000.

## `maxListingPages` (type: `integer`):

Safety cap on how many directory listing pages the actor fetches during a run. Pairs with Max unique providers to bound a run's size and cost. Default: 2000.

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

Maximum parallel requests. Higher is faster; lower is gentler on the target site. Default: 5.

## `minRequestDelayMs` (type: `integer`):

Minimum wait time before each request (jittered up to +3 seconds). Default: 2000.

## `maxRequestRetries` (type: `integer`):

How many times to retry a failed request with a fresh session/IP before giving up. Default: 5.

## `useBrowserFallback` (type: `boolean`):

When true, the crawler may auto-promote a request to a headless Chromium browser if it can't be parsed via HTTP. Bark listing pages are server-rendered, so this rarely fires — leave on for resilience, disable for strictly HTTP-only runs.

## `debugRenderPath` (type: `boolean`):

Diagnostic only. When true, every record gets a `_renderedBy` field ('http' / 'browser' / 'unknown') so you can verify the cheap HTTP path is being used. Off by default to keep output clean.

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

Apify Proxy configuration. Default is automatic (datacenter) proxy — tested reliable on Bark at the default concurrency, and cheaper/faster. If a large or high-concurrency run starts returning blocked or empty pages, switch to the Residential group.

## Actor input object example

```json
{
  "country": "us",
  "categories": [
    "cleaners"
  ],
  "includeNationalAndState": true,
  "maxItems": 1000,
  "maxListingPages": 50,
  "maxConcurrency": 5,
  "minRequestDelayMs": 2000,
  "maxRequestRetries": 5,
  "useBrowserFallback": true,
  "debugRenderPath": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "categories": [
        "cleaners"
    ],
    "state": "",
    "city": "",
    "maxListingPages": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/bark-listing-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 = {
    "categories": ["cleaners"],
    "state": "",
    "city": "",
    "maxListingPages": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/bark-listing-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 '{
  "categories": [
    "cleaners"
  ],
  "state": "",
  "city": "",
  "maxListingPages": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/bark-listing-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bark.com Directory Scraper – Listings & Profile URLs",
        "description": "Extract Bark.com business directory listings by category & location: company name, profile URL, rating, area & logo, deduped to one row per provider. Build B2B prospect lists or feed the profile URLs into a Bark Profile Scraper. Returns profiles & URLs, not contact info.",
        "version": "0.1",
        "x-build-id": "HdwUCmG9j7QeWGLkX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapesage~bark-listing-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapesage-bark-listing-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/scrapesage~bark-listing-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapesage-bark-listing-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/scrapesage~bark-listing-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapesage-bark-listing-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": [
                    "country"
                ],
                "properties": {
                    "country": {
                        "title": "Country",
                        "enum": [
                            "us",
                            "gb",
                            "ca",
                            "au",
                            "ie",
                            "nz",
                            "sg",
                            "za",
                            "de",
                            "fr"
                        ],
                        "type": "string",
                        "description": "Bark region to scrape. Determines which locale path (e.g. /en/us/) the actor harvests from the sitemap.",
                        "default": "us"
                    },
                    "categories": {
                        "title": "Service categories",
                        "type": "array",
                        "description": "Bark category slugs, e.g. \"cleaners\", \"plumbers\", \"web-design\" (as they appear in a Bark URL: bark.com/en/us/<slug>/). Don't worry about exact formatting — the actor auto-fixes capitalization, spaces (\"Web Design\" → \"web-design\"), and singular/plural (\"plumber\" → \"plumbers\"). Leave empty to scrape ALL categories (large — use the limits below).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "state": {
                        "title": "State / region (optional)",
                        "type": "string",
                        "description": "Optional regional filter using Bark's own slug for that country: US states (\"california\"), Canadian provinces (\"ontario\"), UK counties or big cities (\"greater-london\", \"berkshire\"), Australian states (\"new-south-wales\"). Note: \"england\" is NOT valid — the UK is split into counties, not nations. Easiest and most reliable: leave State AND City empty to sweep the entire country (all regions and cities)."
                    },
                    "city": {
                        "title": "City (optional — requires a State/region if set)",
                        "type": "string",
                        "description": "Restrict to a single city slug as it appears in Bark URLs, e.g. \"new-york-city\", \"los-angeles\". A city cannot be located without its state, so if you fill this in you MUST also fill in State/region (.../plumbers/california/los-angeles/). Leave empty to cover all cities."
                    },
                    "includeNationalAndState": {
                        "title": "Include national & state listing pages",
                        "type": "boolean",
                        "description": "When true, also pull providers from the national category page and state pages (max coverage). When false, only city pages are scraped (deepest local long-tail). Either way results are deduplicated per provider. Default: true.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Max unique providers",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Hard cap on the number of UNIQUE providers scraped (and charged) in a single run. The primary cost guard. Duplicates are never charged. Default: 1000.",
                        "default": 1000
                    },
                    "maxListingPages": {
                        "title": "Max listing pages to scan",
                        "minimum": 1,
                        "maximum": 200000,
                        "type": "integer",
                        "description": "Safety cap on how many directory listing pages the actor fetches during a run. Pairs with Max unique providers to bound a run's size and cost. Default: 2000.",
                        "default": 2000
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent requests",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum parallel requests. Higher is faster; lower is gentler on the target site. Default: 5.",
                        "default": 5
                    },
                    "minRequestDelayMs": {
                        "title": "Minimum delay between requests (ms)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum wait time before each request (jittered up to +3 seconds). Default: 2000.",
                        "default": 2000
                    },
                    "maxRequestRetries": {
                        "title": "Max retries per request",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many times to retry a failed request with a fresh session/IP before giving up. Default: 5.",
                        "default": 5
                    },
                    "useBrowserFallback": {
                        "title": "Enable headless browser fallback",
                        "type": "boolean",
                        "description": "When true, the crawler may auto-promote a request to a headless Chromium browser if it can't be parsed via HTTP. Bark listing pages are server-rendered, so this rarely fires — leave on for resilience, disable for strictly HTTP-only runs.",
                        "default": true
                    },
                    "debugRenderPath": {
                        "title": "Debug: tag records with rendering path",
                        "type": "boolean",
                        "description": "Diagnostic only. When true, every record gets a `_renderedBy` field ('http' / 'browser' / 'unknown') so you can verify the cheap HTTP path is being used. Off by default to keep output clean.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Default is automatic (datacenter) proxy — tested reliable on Bark at the default concurrency, and cheaper/faster. If a large or high-concurrency run starts returning blocked or empty pages, switch to the Residential group.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
