# Uline Scraper (`getascraper/uline-scraper`) Actor

Scrape Uline product catalog data: SKUs, names, base prices, quantity pricing tiers, dimensions, shipping weights, images, and availability metrics.

- **URL**: https://apify.com/getascraper/uline-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 product records

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

## 📦 Uline scraper: products, bulk pricing, dimensions & stock

Pull structured product data from [Uline](https://www.uline.com/), North America's largest shipping and industrial supply catalog, in minutes. This scraper extracts **SKUs, base prices, quantity price breaks, dimensions, shipping weights, stock status, country of origin, and specifications** across all three Uline regional sites (US, Canada, Mexico).

Search by keyword, paste any Uline category or product URL, or run a full catalog sweep. Export to JSON, CSV, Excel, or Google Sheets.

### 🔍 What does Uline scraper do?

It collects product listings from Uline and returns structured records you can use immediately. Each record includes the product name, SKU, current unit price, all bulk quantity price tiers, physical dimensions and shipping weight, stock status, country of origin, and a direct link to the product page.

You can search a term like "corrugated boxes" or "bubble wrap", paste a specific category page, or point it at any product URL. The scraper follows category and subcategory pages, extracts every product detail it finds, and stops at the limit you set.

Running on Apify means you also get scheduling, a full API, ready integrations (Google Sheets, Make, Zapier, Slack), automatic proxy rotation, and run monitoring out of the box.

### 💡 Why use Uline scraper?

- **Procurement and cost benchmarking.** Compare Uline's bulk pricing tiers against your current supplier costs and identify the quantity break that optimizes your per-unit spend.
- **Freight and logistics automation.** Extract exact length, width, height, and weight for every SKU to feed real shipping cost calculators and carrier rate engines.
- **Reseller and Amazon FBA margin analysis.** Monitor Uline prices on boxes, poly bags, and packing materials to protect resale margins as input costs shift.
- **Catalog and assortment mapping.** Build a complete snapshot of Uline's packaging, storage, or janitorial lines to inform product strategy and competitive positioning.
- **Inventory and reorder planning.** Track stock status across SKUs to anticipate supply gaps and coordinate replenishment before a shortage hits.

### 🚀 How to use Uline scraper to extract products

1. Click **Try for free**.
2. Choose a **Scraping mode**: Search by Keyword, Provided URLs, or Full Catalog.
3. Enter your **search keywords** (in Search mode) or paste **Start URLs** (in Provided URLs mode).
4. Select the **Uline domain** (US, Canada, or Mexico) and language.
5. Toggle any enrichment fields you need (dimensions, pricing tiers, images, descriptions).
6. Set a **Maximum products** limit to control run size and cost.
7. Click **Save & Start**.
8. When the run finishes, preview the results and export to JSON, CSV, Excel, or Google Sheets.

### 📥 Input

Configure the scraper from the Apify Console form or pass the same fields as JSON. Every field has a sensible default, so a run with only a search keyword set works right away.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| scrapeMode | enum | No | How to find products: Search by Keyword, Provided URLs, or Full Catalog auto-discovery. Defaults to Search by Keyword. |
| startUrls | array of URLs | No | Uline category, listing, or product detail URLs to scrape. Used in Provided URLs mode and as optional seed URLs in Full Catalog mode. |
| searchQuery | string | No | Search term to look up across Uline. Required in Search by Keyword mode. |
| domain | enum | No | Regional Uline site: uline.com (US/USD), uline.ca (Canada/CAD), or uline.mx (Mexico/MXN). Defaults to uline.com. |
| language | enum | No | Language subpath: en (English), fr (French), or es (Spanish). Defaults to en. |
| includeSpecs | boolean | No | Extract product length, width, height, and shipping weight. Defaults to true. |
| includeTiers | boolean | No | Extract all quantity price breaks for bulk discount analysis. Defaults to true. |
| includeDescription | boolean | No | Extract the product description text from each detail page. Defaults to true. |
| includeGallery | boolean | No | Extract all secondary product image URLs. Defaults to true. |
| maxItems | integer | No | Maximum number of products to collect in one run. Defaults to 120. |
| proxyConfiguration | proxy object | No | Proxy settings. Residential proxies are required to reliably reach Uline and are the default. |

### 📤 Output

Results are returned as a structured dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Here is a simplified example of one product record:

```json
{
  "sku": "S-4314",
  "name": "Lightweight 32 ECT Box",
  "description": "Lightweight corrugated box for cost-effective shipping.",
  "category": "Boxes",
  "subcategory": "Corrugated Boxes",
  "breadcrumb": ["Boxes", "Corrugated Boxes", "Lightweight 32 ECT Boxes"],
  "unit_price": 0.52,
  "currency": "USD",
  "price_tiers": [
    { "quantity": 1, "price": 0.52 },
    { "quantity": 25, "price": 0.44 },
    { "quantity": 100, "price": 0.38 }
  ],
  "dimensions": "6 x 6 x 6\"",
  "length": 6,
  "width": 6,
  "height": 6,
  "weight_lbs": 0.2,
  "availability": "In Stock",
  "in_stock": true,
  "country_of_origin": "USA",
  "image_url": "https://images.uline.com/is/image/uline/S-4314",
  "product_url": "https://www.uline.com/Product/Detail/S-4314/Boxes/Lightweight-32-ECT-Box",
  "scraped_at": "2026-06-27T12:00:00.000Z"
}
````

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| sku | string | Unique Uline SKU or model number. |
| name | string | Full product name as shown on the Uline listing. |
| description | string | Product description text, when available. |
| category | string | Top-level category from the breadcrumb trail. |
| subcategory | string | Nested subcategory from the breadcrumb trail. |
| breadcrumb | array of strings | Full breadcrumb navigation path. |
| unit\_price | number | Base single-unit price in the regional currency. |
| currency | string | Currency code: USD, CAD, or MXN. |
| price\_tiers | array of objects | All quantity price breaks, each with a quantity and price. |
| dimensions | string | Combined dimension string, for example 6 x 6 x 6 inches. |
| length | number | Product length as a decimal number. |
| width | number | Product width as a decimal number. |
| height | number | Product height as a decimal number. |
| weight\_lbs | number | Shipping weight in pounds. |
| availability | string | Raw stock status text from the product page. |
| in\_stock | boolean | Whether the product is currently in stock and ready to ship. |
| country\_of\_origin | string | Country where the product is manufactured, when listed. |
| image\_url | string | Main product image link. |
| image\_gallery | array of strings | All additional product image links. |
| specifications | object | Technical specification key-value pairs from the product page. |
| product\_url | string | Direct link to the product page on Uline. |
| source\_url | string | The page where this product was discovered. |
| scraped\_at | string | Extraction time in ISO 8601 format. |

### 💰 Pricing

This Actor runs on the pay per result model. You pay only for the products you collect, empty runs cost nothing, and there are no monthly subscriptions. Set a maximum products limit to keep every run within budget. The first results are free to try.

### 🛠️ Tips and advanced options

- **Search mode for quick sweeps.** Enter a keyword like "poly bags" or "packing tape" to pull all matching SKUs across Uline's catalog without knowing the category structure.
- **Provided URLs for targeted runs.** Paste a specific category page (for example `https://www.uline.com/BL_440/Lightweight-32-ECT-Boxes`) to focus the scraper on exactly one product line and get results faster.
- **Turn off enrichment to go faster.** If you only need SKUs and base prices, toggle off descriptions, gallery images, and specs. The run will complete sooner and use fewer resources.
- **Use pricing tiers for procurement decisions.** The `price_tiers` field shows every volume break Uline offers. Combine it with your expected order quantity to calculate your true unit cost at scale.
- **Scrape all three regions in parallel.** Start one run per domain (uline.com, uline.ca, uline.mx) at the same time to compare North American pricing side by side.
- **Schedule weekly.** Run the scraper on a weekly cadence to track price changes on your key SKUs and catch cost increases before they hit your margins.

### ❓ Frequently asked questions

**Is it legal to scrape Uline?**
Scraping publicly available product catalog data is generally legal in most jurisdictions. This scraper collects only public product information and no private account data. You are responsible for how you use the data and for following Uline's terms and applicable laws.

**Do I need a Uline account or login?**
No. The scraper reads public product and category pages, so no Uline account or password is needed.

**Why is price tier data missing for some products?**
Some Uline products are sold only in standard single-unit quantities with no bulk discount structure. The scraper captures price tiers only when Uline displays them, and omits the field otherwise so your dataset stays clean.

**Why does the scraper use residential proxies?**
Uline runs bot protection that blocks datacenter IP addresses at high volume. Residential proxies pass through reliably and are the default. Switching to datacenter proxies is likely to cause blocks and empty results.

**Can I run a full catalog sweep?**
Yes. Set scrapeMode to Full Catalog and the scraper will follow category and subcategory links automatically. Set a maxItems limit to cap the run size and cost, since Uline's catalog contains tens of thousands of SKUs.

### 🛟 Support

Found a problem or need a field that is missing? Open an issue on the Actor's Issues tab. Custom scraping solutions are available on request.

# Actor input Schema

## `scrapeMode` (type: `string`):

How to find products: paste specific Uline URLs, search by keyword, or discover the full catalog automatically.

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

Uline category, listing, or product detail URLs to scrape. Used in Provided URLs mode and as optional seed URLs in Full Catalog mode.

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

Search term to look up across Uline. Required in Search by Keyword mode.

## `domain` (type: `string`):

Regional Uline domain to scrape: US (USD), Canada (CAD), or Mexico (MXN).

## `language` (type: `string`):

Language subpath to use when browsing the Uline site.

## `includeSpecs` (type: `boolean`):

Extract product length, width, height, and shipping weight for freight and logistics calculations.

## `includeTiers` (type: `boolean`):

Extract all quantity price breaks (e.g. 1-unit price vs. 25-unit price), useful for procurement and reseller margin analysis.

## `includeDescription` (type: `boolean`):

Extract the product description text shown on each Uline detail page.

## `includeGallery` (type: `boolean`):

Extract all secondary product image URLs in addition to the main image.

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

Maximum number of product records to collect in one run. Set a lower limit for targeted runs; increase for full category sweeps.

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

Proxy settings. Residential proxies are required to reliably bypass Uline's bot protection. Switching to datacenter proxies will cause blocks.

## Actor input object example

```json
{
  "scrapeMode": "searchKeyword",
  "startUrls": [
    {
      "url": "https://www.uline.com/BL_440/Lightweight-32-ECT-Boxes"
    }
  ],
  "searchQuery": "corrugated boxes",
  "domain": "uline.com",
  "language": "en",
  "includeSpecs": true,
  "includeTiers": true,
  "includeDescription": true,
  "includeGallery": true,
  "maxItems": 120,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "scrapeMode": "searchKeyword",
    "startUrls": [
        {
            "url": "https://www.uline.com/BL_440/Lightweight-32-ECT-Boxes"
        }
    ],
    "searchQuery": "corrugated boxes",
    "domain": "uline.com",
    "language": "en",
    "includeSpecs": true,
    "includeTiers": true,
    "includeDescription": true,
    "includeGallery": true,
    "maxItems": 120,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/uline-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 = {
    "scrapeMode": "searchKeyword",
    "startUrls": [{ "url": "https://www.uline.com/BL_440/Lightweight-32-ECT-Boxes" }],
    "searchQuery": "corrugated boxes",
    "domain": "uline.com",
    "language": "en",
    "includeSpecs": True,
    "includeTiers": True,
    "includeDescription": True,
    "includeGallery": True,
    "maxItems": 120,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/uline-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 '{
  "scrapeMode": "searchKeyword",
  "startUrls": [
    {
      "url": "https://www.uline.com/BL_440/Lightweight-32-ECT-Boxes"
    }
  ],
  "searchQuery": "corrugated boxes",
  "domain": "uline.com",
  "language": "en",
  "includeSpecs": true,
  "includeTiers": true,
  "includeDescription": true,
  "includeGallery": true,
  "maxItems": 120,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call getascraper/uline-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Uline Scraper",
        "description": "Scrape Uline product catalog data: SKUs, names, base prices, quantity pricing tiers, dimensions, shipping weights, images, and availability metrics.",
        "version": "0.2",
        "x-build-id": "1Lyp9y63XcMahIdSr"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~uline-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-uline-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/getascraper~uline-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-uline-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/getascraper~uline-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-uline-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",
                "properties": {
                    "scrapeMode": {
                        "title": "Scraping Mode",
                        "enum": [
                            "providedUrls",
                            "searchKeyword",
                            "fullCatalog"
                        ],
                        "type": "string",
                        "description": "How to find products: paste specific Uline URLs, search by keyword, or discover the full catalog automatically.",
                        "default": "searchKeyword"
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Uline category, listing, or product detail URLs to scrape. Used in Provided URLs mode and as optional seed URLs in Full Catalog mode.",
                        "default": [
                            {
                                "url": "https://www.uline.com/BL_440/Lightweight-32-ECT-Boxes"
                            }
                        ],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchQuery": {
                        "title": "Search Keywords",
                        "type": "string",
                        "description": "Search term to look up across Uline. Required in Search by Keyword mode.",
                        "default": ""
                    },
                    "domain": {
                        "title": "Uline Domain",
                        "enum": [
                            "uline.com",
                            "uline.ca",
                            "uline.mx"
                        ],
                        "type": "string",
                        "description": "Regional Uline domain to scrape: US (USD), Canada (CAD), or Mexico (MXN).",
                        "default": "uline.com"
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "fr",
                            "es"
                        ],
                        "type": "string",
                        "description": "Language subpath to use when browsing the Uline site.",
                        "default": "en"
                    },
                    "includeSpecs": {
                        "title": "Extract dimensions and weight",
                        "type": "boolean",
                        "description": "Extract product length, width, height, and shipping weight for freight and logistics calculations.",
                        "default": true
                    },
                    "includeTiers": {
                        "title": "Extract bulk pricing tiers",
                        "type": "boolean",
                        "description": "Extract all quantity price breaks (e.g. 1-unit price vs. 25-unit price), useful for procurement and reseller margin analysis.",
                        "default": true
                    },
                    "includeDescription": {
                        "title": "Extract product descriptions",
                        "type": "boolean",
                        "description": "Extract the product description text shown on each Uline detail page.",
                        "default": true
                    },
                    "includeGallery": {
                        "title": "Extract image gallery",
                        "type": "boolean",
                        "description": "Extract all secondary product image URLs in addition to the main image.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum products",
                        "minimum": 1,
                        "maximum": 500000,
                        "type": "integer",
                        "description": "Maximum number of product records to collect in one run. Set a lower limit for targeted runs; increase for full category sweeps.",
                        "default": 120
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Residential proxies are required to reliably bypass Uline's bot protection. Switching to datacenter proxies will cause blocks.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
