# ShopGoodwill Scraper (`crawlerbros/shopgoodwill-scraper`) Actor

Scrape ShopGoodwill.com - Goodwill's official online auction marketplace for secondhand clothing, shoes, accessories, and jewelry. Search by keyword, browse by category or seller, or fetch full item detail by ID.

- **URL**: https://apify.com/crawlerbros/shopgoodwill-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## ShopGoodwill Scraper

Scrape [ShopGoodwill.com](https://shopgoodwill.com) — Goodwill's official online auction marketplace for secondhand clothing, shoes, accessories, and jewelry. Search by keyword, browse by category or seller (Goodwill store), or fetch full item detail by ID. No login, no cookies, no paid proxy required.

### What this actor does

- **Four modes:** `search`, `byCategory`, `bySeller`, `byItemIds`
- **Keyword + brand + size narrowing** — free-text search that can be combined with an optional brand and size keyword
- **Category browsing** — Women's, Men's, Children's, Juniors', Baby clothing, and Jewelry & Gemstones
- **Seller/store browsing** — pull every current listing from a specific Goodwill store
- **Direct item lookup** — full detail (description, all images, seller info, shipping) by item ID
- **Filters** — price range, sort order, buy-it-now only, local-pickup only, include closed/sold auctions
- **Empty fields are omitted** from every record

### Output per item

**Search / category / seller listing records:**
- `itemId`, `title`, `description`
- `currentPrice`, `startingPrice`, `buyNowPrice`, `isBuyNowAvailable`, `minimumBid`, `numBids`
- `shippingPrice`, `discountPercent`
- `categoryId`, `categoryName`, `categoryPath`
- `imageUrl`
- `startTime`, `endTime`, `remainingTime`
- `sellerId`
- `itemQuantity`, `views`, `isStockPhoto`
- `itemUrl` — direct link to the listing
- `recordType: "item"`, `scrapedAt`

**Item-detail records (`mode=byItemIds`) add:**
- `images[]` (full-resolution), `thumbnailUrl`
- `sellerName`, `sellerUrl`
- `keywords[]`
- `weightLbs`
- `pickupCity`, `pickupState`, `pickupZip`, `pickupCountry`, `pickupOnly`
- `handlingPrice`
- `isAuction`, `bidIncrement`
- `shippingCarrier`
- `bidHistory[]` — full live bid ledger (`bidderName` masked by ShopGoodwill, `amount`, `time`, `isBuyNow`) when the item has bids

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byCategory` / `bySeller` / `byItemIds` |
| `searchQuery` | string | `nike` | Free-text keyword search |
| `brand` | string | – | Brand keyword, ANDed into the search text |
| `sizeKeyword` | string | – | Size keyword, ANDed into the search text |
| `categoryId` | string | – | Category to browse/narrow by (see enum below) |
| `sellerId` | integer | – | Numeric seller/store ID (mode=bySeller) |
| `itemIds` | array | – | Numeric item IDs (mode=byItemIds) |
| `priceMin` | integer | – | Minimum price (USD) |
| `priceMax` | integer | – | Maximum price (USD) |
| `sortBy` | string | `endingSoonest` | `endingSoonest` / `endingLatest` / `priceLowToHigh` / `priceHighToLow` |
| `buyNowOnly` | boolean | `false` | Only Buy-It-Now listings |
| `pickupOnly` | boolean | `false` | Only local-pickup listings |
| `includeClosedAuctions` | boolean | `false` | Search recently-ended (sold) listings instead of live ones |
| `maxItems` | integer | `40` | Hard cap on emitted records (1–2000) |

`categoryId` options — Clothing: `10` All Clothing · `27` Women's · `28` Men's · `29` Children's · `1729` Juniors' · `453` Baby · `137` Belt Buckles · `2272` Collegiate Wear · `169` Eyewear. Jewelry & Gemstones: `6` All · `84` Bracelets · `100` Brooches/Pins · `91` Costume Jewelry · `2240` Costume Jewelry Grabbags · `90` Earrings · `2241` Fine Jewelry Grabbags · `85` Jewelry Boxes · `102` Jewelry Sets · `436` Loose Gemstones · `101` Men's Accessories · `86` Necklaces · `87` Pendants · `353` Precious Metal Scrap · `88` Rings · `89` Watches.

#### Example: keyword search with price cap

```json
{
  "mode": "search",
  "searchQuery": "levis jacket",
  "priceMax": 40,
  "sortBy": "priceLowToHigh",
  "maxItems": 50
}
````

#### Example: browse a category

```json
{
  "mode": "byCategory",
  "categoryId": "27",
  "brand": "coach",
  "maxItems": 100
}
```

#### Example: everything from one seller

```json
{
  "mode": "bySeller",
  "sellerId": 16,
  "maxItems": 200
}
```

#### Example: direct item lookup

```json
{
  "mode": "byItemIds",
  "itemIds": ["269254306", "268831482"]
}
```

### Use cases

- **Resale/thrift price research** — track sold prices for a brand or item type over time
- **Sourcing for resellers** — monitor a favorite Goodwill store's new listings
- **Sustainable-fashion apps** — surface secondhand clothing inventory by category
- **Deal alerting** — filter by price range and Buy-It-Now to catch underpriced listings
- **Market analytics** — aggregate category/brand-keyword demand across regions

### Data source / limitations

Data comes from ShopGoodwill's public listing API — the same one that powers the website's search and category pages. No login, cookies, or paid proxy are required.

- ShopGoodwill does not expose **structured brand or size facets** anywhere in its API (listing payload, item-detail payload, or seller-info endpoint) — items are donated goods without a standardized catalog, so `brand` and `sizeKeyword` are keyword terms ANDed into the free-text search rather than exact filters. Results depend on whether the seller mentioned that term in the title/description. The only place "size" appears structurally is as a same-named *category* several levels deep (e.g. `Clothing > Men's Clothing > Shoes Men's > Size 14`), and those size-level category IDs are not enumerated anywhere on the site (the live category-tree endpoint only returns 2 levels) — so they cannot be reliably exposed as a stable input enum.
- The site is an **auction marketplace**, not a fixed-price catalog — most items have a `currentPrice` (current bid) and many also have an optional `buyNowPrice`. There is no "condition" grade the way some resale marketplaces use (New/Like New/Good); the only condition-adjacent text is a generic, seller-wide "sold as-is" disclaimer that is identical across every listing from that seller, not item-specific, so it is intentionally not surfaced as an output field. There is likewise no seller feedback/rating score anywhere on ShopGoodwill (confirmed via the seller-info endpoint) — sellers only expose a company profile (city, return policy, customer-service hours).
- `categoryId` now covers both the top-level departments **and** their live level-2 subcategories (e.g. Jewelry → Rings/Necklaces/Watches/etc., Clothing → Belt Buckles/Collegiate Wear/Eyewear) — these were verified against ShopGoodwill's own live category-tree API and each returns hundreds to thousands of real matching items. Deeper level-3+ nodes (specific shoe/dress sizes) are not enumerable via any stable site API, so those are still reached by combining `categoryId` with a keyword in `searchQuery`.
- `bidHistory` (mode=byItemIds) reflects ShopGoodwill's own server-masked bidder names (e.g. `b****r`) — this is the same ledger shown on the live item page, not derived or guessed.
- `includeClosedAuctions` searches a rolling 7-day window of recently-ended listings.

### FAQ

**Do I need an account or cookies?** No. All modes work anonymously against ShopGoodwill's public listing API.

**What currency are prices in?** US dollars.

**What does `remainingTime` look like?** A short human string like `"16s"`, `"2m 16s"`, or `"3d 4h"` as returned live by ShopGoodwill at scrape time — it is not re-computed, so re-run the actor for a fresh value.

**Why do some items have no `buyNowPrice`?** Many auctions are bid-only; `buyNowPrice` (and `isBuyNowAvailable`) is only included when the seller enabled an instant-purchase price.

**Can I get items ending in the far future?** Some listings use placeholder end dates for ongoing "Buy It Now" style stock; sort by `priceHighToLow` or `priceLowToHigh` if `endingSoonest` results look unexpected.

**How many items can I fetch in one run?** Up to `maxItems` (max 2000) per run. ShopGoodwill paginates in batches of up to 40 items server-side; the actor pages through automatically.

**Is `bySeller` mode the same as a Goodwill "store"?** Yes — each regional Goodwill agency runs its own seller account on ShopGoodwill; `sellerId` identifies that store's listings.

# Actor input Schema

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

What to fetch.

## `searchQuery` (type: `string`):

Free-text keyword search (mode=search). Combine with `brand` / `sizeKeyword` to narrow results — ShopGoodwill has no separate brand/size facets, so these terms are ANDed into the search text.

## `brand` (type: `string`):

Optional brand name to AND into the search text (e.g. `levis`, `coach`, `nike`). ShopGoodwill does not expose a structured brand facet — this is a keyword narrowing, not an exact filter.

## `sizeKeyword` (type: `string`):

Optional size to AND into the search text (e.g. `medium`, `size 8`, `xl`). ShopGoodwill does not expose a structured size facet on most categories — this is a keyword narrowing, not an exact filter.

## `categoryId` (type: `string`):

Fashion category to browse or narrow by (mode=byCategory uses this as the primary filter; other modes use it as an optional narrowing filter). Includes both top-level departments and their live subcategories.

## `sellerId` (type: `integer`):

Numeric ShopGoodwill seller/store ID, e.g. `16` (Goodwill Industries of South Florida). Found in an item's `sellerId` output field or the store's URL.

## `itemIds` (type: `array`):

Numeric ShopGoodwill item IDs to fetch full detail for, e.g. `269254306`.

## `priceMin` (type: `integer`):

Drop items priced below this (current bid / buy-now price).

## `priceMax` (type: `integer`):

Drop items priced above this (current bid / buy-now price).

## `sortBy` (type: `string`):

Result ordering.

## `buyNowOnly` (type: `boolean`):

Only include items with an active Buy-It-Now price (skip bid-only auctions).

## `pickupOnly` (type: `boolean`):

Only include items offered for local pickup (skip shipped-only listings).

## `includeClosedAuctions` (type: `boolean`):

Search recently-ended (sold) listings instead of only live auctions — useful for sold-price research.

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

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "nike",
  "categoryId": "",
  "itemIds": [],
  "sortBy": "endingSoonest",
  "buyNowOnly": false,
  "pickupOnly": false,
  "includeClosedAuctions": false,
  "maxItems": 40
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset containing all scraped ShopGoodwill listings.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "nike",
    "categoryId": "",
    "itemIds": [],
    "sortBy": "endingSoonest",
    "buyNowOnly": false,
    "pickupOnly": false,
    "includeClosedAuctions": false,
    "maxItems": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/shopgoodwill-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "nike",
    "categoryId": "",
    "itemIds": [],
    "sortBy": "endingSoonest",
    "buyNowOnly": False,
    "pickupOnly": False,
    "includeClosedAuctions": False,
    "maxItems": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/shopgoodwill-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "nike",
  "categoryId": "",
  "itemIds": [],
  "sortBy": "endingSoonest",
  "buyNowOnly": false,
  "pickupOnly": false,
  "includeClosedAuctions": false,
  "maxItems": 40
}' |
apify call crawlerbros/shopgoodwill-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ShopGoodwill Scraper",
        "description": "Scrape ShopGoodwill.com - Goodwill's official online auction marketplace for secondhand clothing, shoes, accessories, and jewelry. Search by keyword, browse by category or seller, or fetch full item detail by ID.",
        "version": "1.0",
        "x-build-id": "BJDsbQUNFIecnnICK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~shopgoodwill-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-shopgoodwill-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~shopgoodwill-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-shopgoodwill-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~shopgoodwill-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-shopgoodwill-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byCategory",
                            "bySeller",
                            "byItemIds"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Free-text keyword search (mode=search). Combine with `brand` / `sizeKeyword` to narrow results — ShopGoodwill has no separate brand/size facets, so these terms are ANDed into the search text.",
                        "default": "nike"
                    },
                    "brand": {
                        "title": "Brand keyword",
                        "type": "string",
                        "description": "Optional brand name to AND into the search text (e.g. `levis`, `coach`, `nike`). ShopGoodwill does not expose a structured brand facet — this is a keyword narrowing, not an exact filter."
                    },
                    "sizeKeyword": {
                        "title": "Size keyword",
                        "type": "string",
                        "description": "Optional size to AND into the search text (e.g. `medium`, `size 8`, `xl`). ShopGoodwill does not expose a structured size facet on most categories — this is a keyword narrowing, not an exact filter."
                    },
                    "categoryId": {
                        "title": "Category",
                        "enum": [
                            "",
                            "10",
                            "27",
                            "28",
                            "29",
                            "1729",
                            "453",
                            "137",
                            "2272",
                            "169",
                            "6",
                            "84",
                            "100",
                            "91",
                            "2240",
                            "90",
                            "2241",
                            "85",
                            "102",
                            "436",
                            "101",
                            "86",
                            "87",
                            "353",
                            "88",
                            "89"
                        ],
                        "type": "string",
                        "description": "Fashion category to browse or narrow by (mode=byCategory uses this as the primary filter; other modes use it as an optional narrowing filter). Includes both top-level departments and their live subcategories.",
                        "default": ""
                    },
                    "sellerId": {
                        "title": "Seller ID (mode=bySeller)",
                        "minimum": 1,
                        "maximum": 999999,
                        "type": "integer",
                        "description": "Numeric ShopGoodwill seller/store ID, e.g. `16` (Goodwill Industries of South Florida). Found in an item's `sellerId` output field or the store's URL."
                    },
                    "itemIds": {
                        "title": "Item IDs (mode=byItemIds)",
                        "type": "array",
                        "description": "Numeric ShopGoodwill item IDs to fetch full detail for, e.g. `269254306`.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "priceMin": {
                        "title": "Min price (USD)",
                        "minimum": 0,
                        "maximum": 999999,
                        "type": "integer",
                        "description": "Drop items priced below this (current bid / buy-now price)."
                    },
                    "priceMax": {
                        "title": "Max price (USD)",
                        "minimum": 0,
                        "maximum": 999999,
                        "type": "integer",
                        "description": "Drop items priced above this (current bid / buy-now price)."
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "endingSoonest",
                            "endingLatest",
                            "priceLowToHigh",
                            "priceHighToLow"
                        ],
                        "type": "string",
                        "description": "Result ordering.",
                        "default": "endingSoonest"
                    },
                    "buyNowOnly": {
                        "title": "Buy-it-now listings only",
                        "type": "boolean",
                        "description": "Only include items with an active Buy-It-Now price (skip bid-only auctions).",
                        "default": false
                    },
                    "pickupOnly": {
                        "title": "Local pickup listings only",
                        "type": "boolean",
                        "description": "Only include items offered for local pickup (skip shipped-only listings).",
                        "default": false
                    },
                    "includeClosedAuctions": {
                        "title": "Include closed/ended auctions",
                        "type": "boolean",
                        "description": "Search recently-ended (sold) listings instead of only live auctions — useful for sold-price research.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 40
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
