# Shopify Store Leads Scraper — Detect, Extract, Enrich (`buff_pineapple/shopify-store-leads-scraper`) Actor

Detect Shopify stores, extract full product catalogue, identify installed apps & theme, pull contact leads (email, phone, socials, legal business name), estimate plan tier. Works on native Shopify and headless storefronts.

- **URL**: https://apify.com/buff\_pineapple/shopify-store-leads-scraper.md
- **Developed by:** [yossef Nagy](https://apify.com/buff_pineapple) (community)
- **Categories:** E-commerce, Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## 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

## Shopify Store Leads Scraper — Detect, Extract, Enrich

A one-stop Shopify intelligence actor. Give it any URL — get back whether it's a Shopify store, its plan tier, theme, currency, country, installed apps, full product catalogue, and a contact lead (email, phone, social profiles, legal business name).

### What it does

For every URL you give it, the actor will:

1. **Detect Shopify** with confidence score (handles native Shopify *and* headless / Hydrogen / Next.js storefronts that use Shopify as backend).
2. **Identify the tech stack**: 60+ Shopify apps detected — Klaviyo, Recharge, Judge.me, Loox, Yotpo, Gorgias, Tapcart, Smile.io, Postscript, Attentive, Bold, Stamped, PageFly, GemPages, Triple Whale, Northbeam, Algolia, Klevu, Weglot, and many more.
3. **Extract the full product catalogue** — every product with all variants, prices, SKUs, images, tags, vendor, type, availability, sale flag.
4. **Estimate the Shopify plan tier** (Basic / Shopify / Advanced / Plus / headless).
5. **Pull contact info** — emails (mailto, footer, JSON-LD), phones (tel, JSON-LD), social profiles (Instagram, TikTok, Facebook, Twitter/X, YouTube, Pinterest, LinkedIn), the business's legal name (from privacy policy), country hints.
6. **Map collections** with product counts and handles.

### Who uses it

- **B2B SaaS sales teams** finding ecommerce prospects in their ICP.
- **Agencies** prospecting Shopify stores using a specific app stack ("show me stores running Klaviyo + Recharge").
- **Competitive intel** — pull a competitor's entire catalogue, see what's on sale, what's new, what's out of stock.
- **Dropshippers / resellers** monitoring price & inventory.
- **Investors** sizing up DTC brands (plan tier, app stack, product count = revenue proxy).
- **Tech-stack analysts** building "what apps does this store run?" reports.

### Five run modes

Change behavior with the `mode` input:

| Mode | Output | When to use |
|---|---|---|
| `fingerprint` *(default)* | One row per store: detection + apps + theme + lead summary | Bulk-enrich a CRM list |
| `products` | One row per store + one row per product | Catalogue scraping |
| `collections` | One row per store with embedded collections array | Taxonomy mapping |
| `leads` | One row per store with deep contact info | B2B outreach lists |
| `full` | Everything: store row + products + collections + lead | Single-store deep dive |

### Filters

In `products` or `full` mode:

- `maxProductsPerStore` — cap per store
- `minPrice` / `maxPrice` — price range
- `onlyAvailable` — drop sold-out products
- `onlyOnSale` — only items where compare-at-price > price
- `createdSinceDays` — only products added in the last N days (new-arrival monitor)
- `vendorFilter`, `productTypeFilter` — narrow by vendor or product_type
- `collectionHandles` — scope to specific collections only

### App-based discovery

Set `appsFilter` to drop stores that don't have at least one of the listed apps installed. Example:

```json
{ "startUrls": [{"url":"..."}], "appsFilter": ["klaviyo", "recharge"] }
````

→ only returns stores running Klaviyo OR Recharge.

### Example inputs

#### 1. Bulk fingerprint a list of domains

```json
{
  "startUrls": [
    { "url": "https://www.allbirds.com" },
    { "url": "kith.com" },
    { "url": "colourpop.com" },
    { "url": "https://shop.tesla.com" }
  ],
  "mode": "fingerprint"
}
```

#### 2. Pull entire catalogue of a single store

```json
{
  "startUrls": [{ "url": "https://www.allbirds.com" }],
  "mode": "products",
  "maxProductsPerStore": 5000
}
```

#### 3. Find new arrivals on multiple competitors

```json
{
  "startUrls": [{"url":"competitor1.com"},{"url":"competitor2.com"}],
  "mode": "products",
  "createdSinceDays": 7,
  "onlyAvailable": true
}
```

#### 4. Build a Klaviyo-using-beauty-brand leads list

```json
{
  "startUrls": [{"url":"https://www.colourpop.com"}, {"url":"..."} ],
  "mode": "leads",
  "appsFilter": ["klaviyo"]
}
```

### Output (fingerprint mode)

```json
{
  "_kind": "store",
  "url": "https://www.allbirds.com",
  "isShopify": true,
  "confidence": 1.0,
  "headless": false,
  "shop_id": "11044168",
  "myshopify_domain": "allbirds.myshopify.com",
  "theme_id": "129798963280",
  "products_json_accessible": true,
  "product_count": 312,
  "plan_tier_estimate": "Advanced",
  "apps": ["klaviyo", "judge_me", "tapcart"],
  "apps_detail": [{"id":"klaviyo","name":"Klaviyo","category":"email_marketing"}, ...],
  "lead": {
    "email": ["help@allbirds.com"],
    "phone": ["+1 888 963 8944"],
    "socials": {
      "instagram": "https://www.instagram.com/allbirds",
      "tiktok": "https://www.tiktok.com/@allbirds"
    },
    "legal_name": "Allbirds, Inc.",
    "address": "..."
  },
  "signals": ["header:powered-by=Shopify","html_cdn_shopify","products_json_ok"]
}
```

### Output (products mode, one row per product)

```json
{
  "_kind": "product",
  "store": "https://www.allbirds.com",
  "product_id": 6616124981328,
  "title": "Trino® Cozy Crew - Heathered Onyx",
  "handle": "trino-cozy-crew-heathered-onyx",
  "vendor": "Allbirds",
  "product_type": "Socks",
  "url": "https://www.allbirds.com/products/trino-cozy-crew-heathered-onyx",
  "price_min": 12.0,
  "price_max": 12.0,
  "compare_at_price_max": 24.0,
  "on_sale": true,
  "available": true,
  "variant_count": 4,
  "variants": [{...}],
  "images": [{...}],
  "tags": ["..."],
  "created_at": "...",
  "updated_at": "..."
}
```

### Pricing (pay-per-event)

| Event | Price |
|---|---|
| Actor start | $0.005 |
| Per store fingerprinted | $0.002 |
| Per product extracted | $0.0005 |
| Per lead enriched | $0.005 |

A typical fingerprint-only run on 1,000 domains costs **~$2.01**. A full catalogue pull on 100 stores averaging 200 products each costs **~$10.20**.

### Ethics & robots.txt

The actor honors robots.txt by default. Shopify's `/products.json`, `/collections.json` and `/sitemap.xml` are publicly indexable on every store unless the merchant explicitly disallows them in robots.txt — this actor will not bypass that without an explicit input flag.

The actor does **not** scrape behind authentication, attempt to access admin paths, bypass Cloudflare/WAF on protected storefronts, or extract customer/order/PII data.

### License

MIT.

# Actor input Schema

## `startUrls` (type: `array`):

List of store URLs or bare domains to analyze (e.g. https://www.allbirds.com, fashionnova.com).

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

What to extract: fingerprint (detection + summary), products (full catalogue), collections (taxonomy), leads (contacts only), or full (everything per store + all products).

## `maxProductsPerStore` (type: `integer`):

Cap on how many products to pull per store in products/full mode. 0 = no cap.

## `minPrice` (type: `integer`):

Only return products at or above this price (in store currency).

## `maxPrice` (type: `integer`):

Only return products at or below this price. 0 = no cap.

## `onlyAvailable` (type: `boolean`):

Drop products where no variant is currently available.

## `onlyOnSale` (type: `boolean`):

Drop products that are not on sale (no compare-at price set above the current price).

## `createdSinceDays` (type: `integer`):

0 = no filter.

## `vendorFilter` (type: `array`):

Only return products from these vendors (case-insensitive).

## `productTypeFilter` (type: `array`):

Only return products with one of these product\_type values.

## `collectionHandles` (type: `array`):

If set, fetch products from /collections/<handle>/products.json instead of /products.json. Empty = all products.

## `includeAppDetection` (type: `boolean`):

Inspect homepage for Klaviyo, Judge.me, Loox, Gorgias, Recharge, Yotpo, Tapcart, Bold, etc.

## `appsFilter` (type: `array`):

If set, only emit stores that have AT LEAST ONE of these apps installed (e.g. klaviyo, recharge, judge\_me).

## `includeLeads` (type: `boolean`):

Parse homepage + contact/about pages + JSON-LD for emails, phones, social profiles. Adds 1-2 HTTP requests per store.

## `includePolicies` (type: `boolean`):

Fetch /policies/privacy-policy and parse for the registered legal business name. Helpful for B2B outbound personalisation.

## `respectRobots` (type: `boolean`):

If false, the actor will still hit Shopify's public JSON endpoints even when robots.txt disallows them. Default is to respect.

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

Proxy settings. Apify proxy recommended for residential IPs on rate-limited stores.

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

Max number of stores processed in parallel. Higher = faster but more memory and likely more proxy usage.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.allbirds.com"
    },
    {
      "url": "https://kith.com"
    },
    {
      "url": "https://www.colourpop.com"
    }
  ],
  "mode": "fingerprint",
  "maxProductsPerStore": 250,
  "minPrice": 0,
  "maxPrice": 0,
  "onlyAvailable": false,
  "onlyOnSale": false,
  "createdSinceDays": 0,
  "vendorFilter": [],
  "productTypeFilter": [],
  "collectionHandles": [],
  "includeAppDetection": true,
  "appsFilter": [],
  "includeLeads": true,
  "includePolicies": true,
  "respectRobots": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 10
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.allbirds.com"
        },
        {
            "url": "https://kith.com"
        },
        {
            "url": "https://www.colourpop.com"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("buff_pineapple/shopify-store-leads-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 = {
    "startUrls": [
        { "url": "https://www.allbirds.com" },
        { "url": "https://kith.com" },
        { "url": "https://www.colourpop.com" },
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("buff_pineapple/shopify-store-leads-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 '{
  "startUrls": [
    {
      "url": "https://www.allbirds.com"
    },
    {
      "url": "https://kith.com"
    },
    {
      "url": "https://www.colourpop.com"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call buff_pineapple/shopify-store-leads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopify Store Leads Scraper — Detect, Extract, Enrich",
        "description": "Detect Shopify stores, extract full product catalogue, identify installed apps & theme, pull contact leads (email, phone, socials, legal business name), estimate plan tier. Works on native Shopify and headless storefronts.",
        "version": "0.1",
        "x-build-id": "0itE3GbMEa5cMXpGq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/buff_pineapple~shopify-store-leads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-buff_pineapple-shopify-store-leads-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/buff_pineapple~shopify-store-leads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-buff_pineapple-shopify-store-leads-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/buff_pineapple~shopify-store-leads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-buff_pineapple-shopify-store-leads-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Store URLs",
                        "type": "array",
                        "description": "List of store URLs or bare domains to analyze (e.g. https://www.allbirds.com, fashionnova.com).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "mode": {
                        "title": "Run mode",
                        "enum": [
                            "fingerprint",
                            "products",
                            "collections",
                            "leads",
                            "full"
                        ],
                        "type": "string",
                        "description": "What to extract: fingerprint (detection + summary), products (full catalogue), collections (taxonomy), leads (contacts only), or full (everything per store + all products).",
                        "default": "fingerprint"
                    },
                    "maxProductsPerStore": {
                        "title": "Max products per store",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Cap on how many products to pull per store in products/full mode. 0 = no cap.",
                        "default": 250
                    },
                    "minPrice": {
                        "title": "Filter: min price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return products at or above this price (in store currency).",
                        "default": 0
                    },
                    "maxPrice": {
                        "title": "Filter: max price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return products at or below this price. 0 = no cap.",
                        "default": 0
                    },
                    "onlyAvailable": {
                        "title": "Filter: only in-stock variants",
                        "type": "boolean",
                        "description": "Drop products where no variant is currently available.",
                        "default": false
                    },
                    "onlyOnSale": {
                        "title": "Filter: only items on sale (compare_at_price > price)",
                        "type": "boolean",
                        "description": "Drop products that are not on sale (no compare-at price set above the current price).",
                        "default": false
                    },
                    "createdSinceDays": {
                        "title": "Filter: new products in the last N days",
                        "minimum": 0,
                        "type": "integer",
                        "description": "0 = no filter.",
                        "default": 0
                    },
                    "vendorFilter": {
                        "title": "Filter: vendor names",
                        "type": "array",
                        "description": "Only return products from these vendors (case-insensitive).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "productTypeFilter": {
                        "title": "Filter: product types",
                        "type": "array",
                        "description": "Only return products with one of these product_type values.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "collectionHandles": {
                        "title": "Collection handles to scope to (modes: products, full)",
                        "type": "array",
                        "description": "If set, fetch products from /collections/<handle>/products.json instead of /products.json. Empty = all products.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeAppDetection": {
                        "title": "Detect installed apps & tech stack",
                        "type": "boolean",
                        "description": "Inspect homepage for Klaviyo, Judge.me, Loox, Gorgias, Recharge, Yotpo, Tapcart, Bold, etc.",
                        "default": true
                    },
                    "appsFilter": {
                        "title": "Filter: stores with these apps installed",
                        "type": "array",
                        "description": "If set, only emit stores that have AT LEAST ONE of these apps installed (e.g. klaviyo, recharge, judge_me).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeLeads": {
                        "title": "Extract contact info (emails, phones, socials)",
                        "type": "boolean",
                        "description": "Parse homepage + contact/about pages + JSON-LD for emails, phones, social profiles. Adds 1-2 HTTP requests per store.",
                        "default": true
                    },
                    "includePolicies": {
                        "title": "Pull business legal name from privacy policy",
                        "type": "boolean",
                        "description": "Fetch /policies/privacy-policy and parse for the registered legal business name. Helpful for B2B outbound personalisation.",
                        "default": true
                    },
                    "respectRobots": {
                        "title": "Respect robots.txt",
                        "type": "boolean",
                        "description": "If false, the actor will still hit Shopify's public JSON endpoints even when robots.txt disallows them. Default is to respect.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Apify proxy recommended for residential IPs on rate-limited stores."
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Max number of stores processed in parallel. Higher = faster but more memory and likely more proxy usage.",
                        "default": 10
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
