# Shopify Store Intelligence — Products, Apps, Revenue & Alerts (`luckborn/shopify-intelligence`) Actor

Analyze any Shopify store in seconds. Extract full product catalog, detect apps & theme, estimate monthly revenue, find social links, and monitor changes over time. No API key needed.

- **URL**: https://apify.com/luckborn/shopify-intelligence.md
- **Developed by:** [Luck Born](https://apify.com/luckborn) (community)
- **Categories:** E-commerce, AI, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 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 Intelligence API

**Analyze any Shopify store in seconds. Products, apps, revenue estimates & change alerts.**

[![Apify Store](https://img.shields.io/badge/Available_on-Apify_Store-1a73e8?style=flat-square)](https://apify.com/luckborn/shopify-intelligence)
[![PPE](https://img.shields.io/badge/Pricing-Pay_Per_Event-00c853?style=flat-square)](#-pricing)
[![No API Key](https://img.shields.io/badge/No_API_Key_Required-4caf50?style=flat-square)](#-quick-start)

---

### 📋 What It Does

Give it a Shopify store URL. Get back a complete competitive intelligence report.

````

INPUT  →  https://gymshark.com
│
▼
┌──────────────────────────────┐
│  /products.json  (REST API)   │  ← All products in clean JSON
│  Homepage scrape (Cheerio)    │  ← Meta, social links, scripts
└──────────┬───────────────────┘
▼
┌──────────────────────────────┐
│  Product catalog             │  Count, prices, types, vendors
│  App detection               │  40+ known Shopify apps detected
│  Theme detection             │  25+ known themes detected
│  Revenue estimate            │  Heuristic based on signals
│  Social links                │  Instagram, TikTok, YouTube, etc.
│  Change detection            │  New products, price drops, stock
└──────────┬───────────────────┘
▼
OUTPUT → { products, apps, revenue, changes, ... }

````

**No Shopify API key required.** Every public Shopify store has a `/products.json` endpoint that returns clean, structured data. We read that + the public homepage.

---

### ✨ Key Features

| Feature | Description |
|---|---|
| **📦 Full product catalog** | All products, variants, prices, images, types, vendors. Via Shopify's public `/products.json` API |
| **🔌 App detection** | Detects 40+ Shopify apps from script sources — Klaviyo, Judge.me, Yotpo, Okendo, Gorgias, Recharge, and more |
| **🎨 Theme detection** | Identifies the store's theme (Dawn, Debut, Brooklyn, Sense, etc.) from HTML/CSS patterns |
| **💰 Revenue estimation** | Heuristic estimate based on product count × avg price × social signals × reviews × monthly orders benchmark. ±30% accuracy — documented transparently |
| **📱 Social links** | Extracts Instagram, Facebook, Twitter/X, TikTok, YouTube, Pinterest, LinkedIn, and Snapchat links from the homepage |
| **🔄 Change detection** | Run daily → detect new products, removed products, price changes, and stock changes. Stored in KVS across runs |
| **📊 Traffic signals** | Detects blog presence, review apps, multi-language, international shipping — signals of store maturity |
| **⚡ Fast & cheap** | CheerioCrawler + direct JSON API — no Playwright needed. ~2s per store |
| **🔌 No API key** | Works on any public Shopify store. No merchant permission needed |

---

### 🔧 Input

```json
{
  "stores": [
    "https://gymshark.com",
    "https://allbirds.com"
  ],
  "scanDepth": "standard",
  "detectApps": true,
  "includeRevenueEstimate": true,
  "newProductAlert": false
}
````

| Parameter | Type | Default | Description |
|---|---|---|---|
| `stores` | `array` | — | List of Shopify store URLs (required) |
| `scanDepth` | `string` | `standard` | `basic` / `standard` / `deep` |
| `includeRevenueEstimate` | `boolean` | `true` | Estimate monthly revenue (standard+) |
| `detectApps` | `boolean` | `true` | Detect apps & theme from HTML |
| `newProductAlert` | `boolean` | `false` | Enable cross-run change detection |
| `outputFormat` | `string` | `json` | `json` / `csv` |

***

### 📤 Output Example

```json
{
  "status": "success",
  "storeUrl": "https://gymshark.com",
  "storeName": "Gymshark",
  "scanMode": "standard",

  "productCount": 842,
  "productSummary": {
    "count": 842,
    "avgPrice": 54.99,
    "priceRange": { "min": 9.99, "max": 149.99 },
    "topCategories": [
      { "name": "Leggings", "count": 124 },
      { "name": "T-Shirts", "count": 98 }
    ],
    "totalVariants": 2156
  },

  "metaTitle": "Gymshark Official Store | Gymshark.com",
  "metaDescription": "Shop Gymshark...",

  "socialLinks": {
    "instagram": { "url": "https://instagram.com/gymshark", "handle": "gymshark" },
    "tiktok": { "url": "https://tiktok.com/@gymshark", "handle": "gymshark" },
    "youtube": { "url": "https://youtube.com/@gymshark", "handle": "gymshark" }
  },

  "theme": { "name": "Dawn", "detectedBy": "html_comment", "confidence": "high" },

  "apps": [
    { "name": "Klaviyo", "category": "email_marketing", "confidence": "high" },
    { "name": "Yotpo", "category": "reviews", "confidence": "high" },
    { "name": "Gorgias", "category": "customer_service", "confidence": "high" },
    { "name": "Recharge", "category": "subscriptions", "confidence": "high" }
  ],

  "revenueEstimate": {
    "estimatedMonthlyRevenue": 1850000,
    "estimatedAnnualRevenue": 22200000,
    "estimatedMonthlyOrders": 33642,
    "averagePrice": 54.99,
    "priceTier": "mid",
    "confidence": 75,
    "confidenceLabel": "medium",
    "methodology": "Based on product count × avg price × estimated monthly orders per product..."
  },

  "changes": [
    {
      "type": "new_products",
      "count": 12,
      "examples": [
        { "title": "New Flex Leggings", "price": 49.99, "url": "..." }
      ]
    }
  ]
}
```

***

### 💰 Pricing

| Tier | Per store | What's included |
|---|---|---|
| **Basic** | **$0.10** | Product catalog + categories + pricing |
| **Standard** | **$0.25** | + Apps, theme, social, revenue estimate, traffic signals |
| **Deep** | **$0.50** | + Full product export, change detection, price history |

#### Cost examples

| Use case | Stores | Frequency | Monthly cost |
|---|---|---|---|
| Small brand tracking 5 competitors | 5 | Weekly | **~$5/mo** |
| Agency with 20 clients × 3 competitors | 60 | Weekly | **~$60/mo** |
| Investor evaluating 100 DTC brands | 100 | One-time | **~$25** |
| Enterprise monitoring 500 stores | 500 | Daily | **~$375/mo** |

***

### 🎯 Use Cases

| Who | How they use it |
|---|---|
| **DTC brand manager** | Monitor 10 competitors weekly. Get alerted when a competitor launches a new product or drops prices. |
| **Ecommerce analyst** | Build a competitive landscape report. Compare product assortments, pricing tiers, and app stacks across 50+ brands. |
| **Investor** | Vet DTC brands before investment. Revenue estimation + app stack + social presence = quick health check. |
| **Agency** | Onboard new clients with a full competitive analysis. White-label output for client reports. |
| **Shopify app developer** | Find stores that aren't using your competitor's app. Detect which stores use which review/shipping/email tools. |
| **AI agent** | Use the MCP server to let your AI agent research competitors autonomously. |

***

### 📊 Comparison to Existing Tools

| Feature | This Actor | Other Shopify scrapers | BuiltWith | SimilarWeb |
|---|---|---|---|---|
| Product catalog | ✅ Full JSON | ✅ Partial | ❌ | ❌ |
| App detection | ✅ 40+ apps | ❌ | ✅ ($295/mo) | ❌ |
| Theme detection | ✅ 25+ themes | ❌ | ✅ | ❌ |
| Revenue estimate | ✅ Heuristic | ❌ | ❌ | ❌ |
| Social links | ✅ Auto-detect | ❌ | ❌ | ❌ |
| Change alerts | ✅ KVS-based | ❌ | ❌ | ❌ |
| **Pay per use** | **✅ $0.10-0.50** | ❌ Subscription | ❌ $295/mo | ❌ $199/mo |
| **No subscription** | **✅** | ❌ | ❌ | ❌ |

***

### 🧠 Tips

1. **Standard depth is the sweet spot** — Best value ($0.25/store). You get apps, theme, social, and revenue estimate. Save "deep" for stores you're doing deep diligence on.
2. **Run weekly for change detection** — Enable `newProductAlert: true` and schedule weekly runs. After 2-3 runs you'll see meaningful new product / price change data.
3. **Revenue estimate is a heuristic** — It's ±30%. Documented methodology. Great for screening (compare "is store A bigger than store B?") but not for accounting.
4. **Stores with password protection** — If a store is password-protected (coming soon / private), the scraper will fail gracefully with an error.
5. **Custom domains work fine** — Shopify stores on custom domains (gymshark.com, allbirds.com) work identically to .myshopify.com subdomains.

***

### 🔬 Technical Approach

| Component | Technology | Why |
|---|---|---|
| **Product catalog** | Direct `GET /products.json` | Shopify's public REST API — fastest, most reliable, no scraping needed |
| **Homepage analysis** | CheerioCrawler | Fast, lightweight. Shopify stores are server-rendered Liquid templates |
| **App detection** | Regex on HTML scripts | 40+ known app signatures — deterministic, no external API |
| **Revenue estimation** | Heuristic rules engine | No LLM cost. Transparent methodology. ±30% accuracy |
| **Change detection** | Apify KVS | Persists across runs. Per-store keys. |
| **Proxy** | BUYPROXIES94952 (datacenter) | Most Shopify stores don't block datacenter IPs |

#### Why no Playwright?

Shopify is uniquely friendly to scraping:

1. **`/products.json` endpoint** — Every store exposes a clean JSON API of all products
2. **Server-rendered HTML** — No JS required to read meta, social links, or scripts
3. **Minimal anti-bot** — Shopify doesn't block storefront scrapers the way Amazon does

Playwright would add 10x cost and 3x latency with zero benefit. Cheerio + JSON is the right call.

***

### 🔒 Privacy & Compliance

- **No login required** — All data is from public storefront pages and the public `/products.json` API
- **No customer data** — Only product and store-level information
- **Compliant with** standard web scraping practices for publicly available ecommerce data
- **Revenue estimate is clearly marked** as a heuristic, not audited financial data

***

### 🚀 Quick Start

#### 1. Try with the prefill

The input already has 3 stores pre-filled (gymshark.com, allbirds.com, a sample store). Click **"Run"**.

#### 2. Add your own targets

Replace the prefill with your competitors' store URLs. Custom domains work fine.

#### 3. Enable change detection

Set `newProductAlert: true` and schedule a weekly run. You'll start seeing product launch alerts.

#### 4. Integrate via API

```bash
curl -X POST "https://api.apify.com/v2/acts/luckborn~shopify-intelligence/runs" \
  -H "Content-Type: application/json" \
  -d '{
    "stores": ["https://gymshark.com", "https://allbirds.com"],
    "scanDepth": "standard"
  }'
```

#### 5. Use with MCP (AI agents)

```json
{
  "mcpServers": {
    "apify": {
      "type": "apify",
      "actors": ["luckborn/shopify-intelligence"]
    }
  }
}
```

Now your AI agent can run: *"Analyze gymshark.com and tell me their app stack and estimated revenue"*

***

### 📦 Changelog

#### v1.0 (Current)

- Product catalog extraction via `/products.json` (up to 5,000 products)
- Homepage scraping (meta, social links, store name)
- 40+ Shopify app signatures detected
- 25+ Shopify theme signatures detected
- Revenue estimation engine (heuristic, ±30%)
- Social link detection (8 platforms)
- Change detection (new products, price changes, stock changes)
- 3 scan depths (Basic / Standard / Deep)
- Traffic signals (blog, reviews, multi-language, international shipping)
- MCP server compatible

***

*Built with ❤️ by [luckborn](https://apify.com/luckborn) on the Apify platform.*

# Actor input Schema

## `stores` (type: `array`):

List of Shopify store URLs (custom domains or .myshopify.com subdomains). Enter the full URL (e.g., https://gymshark.com) or just the domain name.

## `scanDepth` (type: `string`):

Controls how much data is extracted per store. Basic = products only. Standard = + apps, theme, revenue. Deep = + full export, change detection.

## `includeRevenueEstimate` (type: `boolean`):

Estimate monthly revenue based on product count, pricing, social presence, and industry benchmarks. Available in Standard and Deep modes.

## `detectApps` (type: `boolean`):

Identify which Shopify apps the store is using (Klaviyo, Judge.me, Yotpo, etc.) and detect the theme name from the HTML source.

## `newProductAlert` (type: `boolean`):

Compare each run against previous runs. Detect new products, removed products, price changes, and stock changes. Changes are stored in Key-Value Store across runs.

## `proxyConfiguration` (type: `string`):

Most Shopify stores work fine without proxy. Use 'residential' for stores with aggressive anti-bot protection.

## `outputFormat` (type: `string`):

JSON = structured data (best for API). CSV = spreadsheet-friendly (best for downstream tools).

## Actor input object example

```json
{
  "stores": [
    "https://gymshark.com",
    "https://allbirds.com",
    "https://example.myshopify.com"
  ],
  "scanDepth": "standard",
  "includeRevenueEstimate": true,
  "detectApps": true,
  "newProductAlert": false,
  "proxyConfiguration": "auto",
  "outputFormat": "json"
}
```

# 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 = {
    "stores": [
        "https://gymshark.com",
        "https://allbirds.com",
        "https://example.myshopify.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("luckborn/shopify-intelligence").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 = { "stores": [
        "https://gymshark.com",
        "https://allbirds.com",
        "https://example.myshopify.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("luckborn/shopify-intelligence").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 '{
  "stores": [
    "https://gymshark.com",
    "https://allbirds.com",
    "https://example.myshopify.com"
  ]
}' |
apify call luckborn/shopify-intelligence --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopify Store Intelligence — Products, Apps, Revenue & Alerts",
        "description": "Analyze any Shopify store in seconds. Extract full product catalog, detect apps & theme, estimate monthly revenue, find social links, and monitor changes over time. No API key needed.",
        "version": "1.0",
        "x-build-id": "KXc5k4bB5vcYabXYn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/luckborn~shopify-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-luckborn-shopify-intelligence",
                "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/luckborn~shopify-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-luckborn-shopify-intelligence",
                "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/luckborn~shopify-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-luckborn-shopify-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "stores": {
                        "title": "Shopify Store URLs",
                        "type": "array",
                        "description": "List of Shopify store URLs (custom domains or .myshopify.com subdomains). Enter the full URL (e.g., https://gymshark.com) or just the domain name."
                    },
                    "scanDepth": {
                        "title": "Scan Depth",
                        "enum": [
                            "basic",
                            "standard",
                            "deep"
                        ],
                        "type": "string",
                        "description": "Controls how much data is extracted per store. Basic = products only. Standard = + apps, theme, revenue. Deep = + full export, change detection.",
                        "default": "standard"
                    },
                    "includeRevenueEstimate": {
                        "title": "Estimate Monthly Revenue",
                        "type": "boolean",
                        "description": "Estimate monthly revenue based on product count, pricing, social presence, and industry benchmarks. Available in Standard and Deep modes.",
                        "default": true
                    },
                    "detectApps": {
                        "title": "Detect Shopify Apps & Theme",
                        "type": "boolean",
                        "description": "Identify which Shopify apps the store is using (Klaviyo, Judge.me, Yotpo, etc.) and detect the theme name from the HTML source.",
                        "default": true
                    },
                    "newProductAlert": {
                        "title": "Change Detection Alerts",
                        "type": "boolean",
                        "description": "Compare each run against previous runs. Detect new products, removed products, price changes, and stock changes. Changes are stored in Key-Value Store across runs.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "enum": [
                            "auto",
                            "datacenter",
                            "residential",
                            "none"
                        ],
                        "type": "string",
                        "description": "Most Shopify stores work fine without proxy. Use 'residential' for stores with aggressive anti-bot protection.",
                        "default": "auto"
                    },
                    "outputFormat": {
                        "title": "Output Format",
                        "enum": [
                            "json",
                            "csv"
                        ],
                        "type": "string",
                        "description": "JSON = structured data (best for API). CSV = spreadsheet-friendly (best for downstream tools).",
                        "default": "json"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
