# Instacart Scraper (`solidcode/instacart-scraper`) Actor

\[💰 $10 / 1K] Scrape Instacart products by keyword for any US delivery ZIP — names, brands, prices, sizes, images, availability, and dietary info. Search multiple terms at once; results reflect real location-based pricing.

- **URL**: https://apify.com/solidcode/instacart-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (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 $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Instacart Scraper

Pull live grocery and retail product data from Instacart at scale — real, location-specific prices, unit prices, pack sizes, images, stock levels, and nutrition and dietary attributes for any US ZIP code. Enter a ZIP and you get the exact stores and prices Instacart shows a shopper standing in that location, across every retailer serving the area. Built for CPG brands, grocery pricing and market-research analysts, and e-commerce teams who need real location-level Instacart pricing without checking dozens of stores by hand.

### Why This Scraper?

- **Prices are genuinely location-aware** — enter ZIP `10001` and you get real Manhattan stores and NYC prices; enter `60601` and you get Chicago stores and Chicago prices. The ZIP drives the whole result set, not one fixed region baked into the actor.
- **Every product row includes a live price** — no blank price fields to clean up. Each row carries the real, current price Instacart shows for that store and ZIP.
- **Four pricing fields per product** — the displayed price string, a numeric price for math, the per-unit price (e.g. "$0.08/fl oz"), and the full/original price for spotting discounts.
- **Searches every retailer at the ZIP automatically** — Costco, Key Food, Zabar's, Jewel-Osco, Strack & Van Til and whichever other stores deliver to that location. Leave the store filter empty for the top stores, or name specific stores by slug (`costco`, `safeway`, `sprouts`) to compare one banner.
- **Inline nutrition and dietary data** — per-product nutrition attributes (protein, fat, sugar, calories, with values and units) and dietary badges (organic, gluten-free, non-GMO) pulled straight from the product card.
- **Batch many search terms in one run** — pass `["milk", "organic eggs", "olive oil"]` and each keyword runs its own search across your chosen stores in a single job.
- **Stock and availability on every row** — an availability flag, a stock-level label, plus an optional in-stock-only filter that drops anything you can't order right now.
- **The resolved location travels with the data** — every row records the exact ZIP and the store (name, slug, and store ID) it was collected from, so multi-ZIP and multi-store datasets stay unambiguous.

### Use Cases

**Pricing Intelligence**
- Track the same product's price across ZIP codes and retailers
- Compare a competitor's shelf price against yours at the store level
- Monitor per-unit pricing to catch "shrinkflation" and pack-size changes
- Build price indexes for a basket of staple groceries by market

**CPG & Brand Monitoring**
- Verify your products are listed and in stock across target markets
- Audit how your brand's items are priced versus private-label alternatives
- Confirm nutrition and dietary badges display correctly on your listings
- Spot unauthorized discounting or full-price gaps across retailers

**Market Research**
- Map which retailers actually serve a given ZIP or metro
- Measure assortment breadth for a category (e.g. "olive oil") by store
- Compare grocery baskets across neighborhoods and cities
- Analyze the mix of organic, gluten-free, and specialty products by area

**Data Enrichment & Integration**
- Enrich product catalogs with live Instacart prices and images
- Feed location-level pricing into dashboards and BI tools
- Power price-comparison and deal-alert products
- Keep an internal grocery price database current on a schedule

### Getting Started

#### Simple — one keyword, one ZIP

The fastest way to start: a search term and a delivery ZIP.

```json
{
    "searchTerms": ["milk"],
    "postalCode": "10001"
}
````

#### Multiple keywords with a result cap

```json
{
    "searchTerms": ["milk", "organic eggs", "olive oil"],
    "postalCode": "60601",
    "maxResults": 100
}
```

#### Target specific stores, in-stock only

```json
{
    "searchTerms": ["greek yogurt"],
    "postalCode": "10001",
    "streetAddress": "350 5th Ave, New York",
    "retailers": ["costco", "key-food"],
    "inStockOnly": true,
    "maxResults": 200
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchTerms` | string\[] | `["milk"]` | Plain keywords to search for, such as "milk", "organic eggs", or "olive oil". Add as many as you like — each runs its own search across your chosen stores. |

#### Delivery Location

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `postalCode` | string | `"10001"` | US ZIP code for the delivery area you want prices for. This genuinely controls the location — results come from the stores that deliver to this ZIP, with that area's real prices. Leave empty to use an approximate location detected automatically. |
| `streetAddress` | string | `null` | Optional street address for a more precise delivery point within the ZIP (e.g. "350 5th Ave, New York"). Leave empty to use the ZIP's center. |

#### Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum number of products to return in total, across all search terms and stores. Set to `0` to collect everything available. Start with 20-100 to test. |
| `inStockOnly` | boolean | `false` | When on, only products currently available to order are returned; anything out of stock is skipped. |
| `retailers` | string\[] | `[]` | Optionally search only specific stores by their Instacart store slug (e.g. "costco", "safeway", "sprouts"). Matching is case-insensitive. Leave empty to search the top stores for your ZIP. |

### Output

Every result is one flat, priced product row. Here's a representative example:

```json
{
    "searchTerm": "milk",
    "name": "Organic Whole Milk",
    "brand": "horizon organic",
    "price": 5.99,
    "priceString": "$5.99",
    "priceAvailable": true,
    "fullPriceString": "$6.49",
    "pricePerUnit": "$0.09/fl oz",
    "size": "64 fl oz",
    "productId": "16789234",
    "imageUrl": "https://www.instacart.com/image-server/example.jpg",
    "url": "https://www.instacart.com/store/key-food/products/16789234",
    "available": true,
    "stockLevel": "high",
    "availabilityLabel": "Many in stock",
    "nutrition": [
        { "label": "Protein", "value": "8", "unit": "g" },
        { "label": "Total Fat", "value": "8", "unit": "g" }
    ],
    "dietary": ["Organic", "Gluten-Free"],
    "retailer": "Key Food",
    "retailerSlug": "key-food",
    "shopId": "12345",
    "postalCode": "10001"
}
```

#### Product & Search

| Field | Type | Description |
|-------|------|-------------|
| `searchTerm` | string | The keyword that produced this product |
| `name` | string | Product name |
| `brand` | string | null | Brand name |
| `size` | string | null | Pack size (e.g. "64 fl oz", "1 gal") |
| `productId` | string | null | Instacart product identifier |
| `imageUrl` | string | null | Product image URL |
| `url` | string | null | Direct product page URL |

#### Pricing

| Field | Type | Description |
|-------|------|-------------|
| `price` | number | null | Current price as a number for calculations |
| `priceString` | string | null | Price exactly as displayed (e.g. "$5.99") |
| `priceAvailable` | boolean | Whether a price was captured for this product |
| `fullPriceString` | string | null | Full or original price, useful for spotting discounts |
| `pricePerUnit` | string | null | Per-unit price if shown (e.g. "$0.09/fl oz") |

#### Availability & Attributes

| Field | Type | Description |
|-------|------|-------------|
| `available` | boolean | null | Whether the product is currently orderable |
| `stockLevel` | string | null | Stock level indicator |
| `availabilityLabel` | string | null | Human-readable stock label (e.g. "Many in stock") |
| `nutrition` | object\[] | null | Nutrition attributes, each with `label`, `value`, and `unit` |
| `dietary` | string\[] | Dietary badges (Organic, Gluten-Free, Non-GMO, etc.) |

#### Store & Location

| Field | Type | Description |
|-------|------|-------------|
| `retailer` | string | null | Store name the product came from |
| `retailerSlug` | string | null | Store slug (use this value in the `retailers` input) |
| `shopId` | string | Instacart store identifier |
| `postalCode` | string | The delivery ZIP the search was run for |

### Tips for Best Results

- **The ZIP is your most powerful lever** — different ZIPs surface different stores and different prices. To compare markets, run the same keywords across a list of ZIPs (e.g. `10001`, `60601`, `90001`) and group the output by `postalCode`.
- **Compare one banner across cities** — put the same slug in `retailers` (e.g. `["costco"]`) and change only the ZIP between runs to see how a single chain prices the same product city by city.
- **Start small, then scale** — set `maxResults` to 20-100 on your first run to confirm the data fits your needs, then raise it or set `0` for everything available.
- **Use the store slug, not the display name** — the `retailers` filter matches Instacart slugs like `key-food` or `jewel-osco`. Grab the exact value from the `retailerSlug` field of an earlier run.
- **Store availability is ZIP-specific** — a store that exists in one ZIP may not deliver to another. If a requested store is skipped, it isn't available for that location; leave `retailers` empty to fall back to the top stores.
- **Broad keywords return the most** — "milk" or "olive oil" pull a full grid; very specific brand phrases return fewer products.
- **The same product can appear once per store and once per search term** — that's intended, not a duplicate: prices differ by store and each keyword runs its own search. To collapse to one row per product, group by `productId` and `retailerSlug`.
- **Turn on `inStockOnly` for order-ready data** — ideal when you only care about products a shopper can actually add to cart today.

### Pricing

**From $10.00 per 1,000 results** — up to a third cheaper than comparable Instacart data tools. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $1.20 | $1.13 | $1.07 | $1.00 |
| 1,000 | $12.00 | $11.30 | $10.70 | $10.00 |
| 10,000 | $120.00 | $113.00 | $107.00 | $100.00 |
| 100,000 | $1,200.00 | $1,130.00 | $1,070.00 | $1,000.00 |

A "result" is any product row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate price monitoring, market research, and product intelligence. Users are responsible for complying with applicable laws and Instacart's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose. Collect only publicly available product information and use it responsibly.

# Actor input Schema

## `searchTerms` (type: `array`):

Plain keywords to search Instacart for, such as 'milk', 'organic eggs' or 'olive oil'. We build the search for you — no need to create URLs. Add as many terms as you like; each one runs its own search across the stores you choose.

## `postalCode` (type: `string`):

US ZIP code for the delivery area you want prices for (e.g. '10001' for Manhattan). This genuinely controls the location: results come from the stores that deliver to this ZIP, with that area's real prices. Every result also reports the ZIP it was collected for. Leave empty to use an approximate location detected automatically (enter a ZIP for precise, location-specific pricing).

## `streetAddress` (type: `string`):

Optional street address for a more precise delivery point within the ZIP (e.g. '350 5th Ave, New York'). Leave empty to use the ZIP's centre. Most searches only need the ZIP.

## `maxResults` (type: `integer`):

Maximum number of products to return in total, across all search terms and stores. Set to 0 to collect everything available. Results are collected in batches and complete batches are always kept, so the final count can slightly exceed this number (you are never charged less than the data you receive). Tip: start with 20-100 to test, then increase.

## `inStockOnly` (type: `boolean`):

When on, only products currently available to order are returned (products marked out of stock are skipped).

## `retailers` (type: `array`):

Optionally search only specific stores by their Instacart store slug, e.g. 'costco', 'safeway', 'cvs', 'walmart', 'sprouts'. Matching is case-insensitive. Leave empty to automatically search the top 3 stores available for your ZIP (a good, fast default). The stores available depend on the location, so a slug that exists in one area may not exist in another; unavailable slugs are skipped with a note in the log.

## Actor input object example

```json
{
  "searchTerms": [
    "milk"
  ],
  "postalCode": "10001",
  "maxResults": 100,
  "inStockOnly": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped products with key fields.

# 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 = {
    "searchTerms": [
        "milk"
    ],
    "postalCode": "10001",
    "maxResults": 100,
    "inStockOnly": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/instacart-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 = {
    "searchTerms": ["milk"],
    "postalCode": "10001",
    "maxResults": 100,
    "inStockOnly": False,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/instacart-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 '{
  "searchTerms": [
    "milk"
  ],
  "postalCode": "10001",
  "maxResults": 100,
  "inStockOnly": false
}' |
apify call solidcode/instacart-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instacart Scraper",
        "description": "[💰 $10 / 1K] Scrape Instacart products by keyword for any US delivery ZIP — names, brands, prices, sizes, images, availability, and dietary info. Search multiple terms at once; results reflect real location-based pricing.",
        "version": "1.0",
        "x-build-id": "5VI9UFZaXWseOyZdk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~instacart-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-instacart-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/solidcode~instacart-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-instacart-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/solidcode~instacart-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-instacart-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": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Plain keywords to search Instacart for, such as 'milk', 'organic eggs' or 'olive oil'. We build the search for you — no need to create URLs. Add as many terms as you like; each one runs its own search across the stores you choose.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "postalCode": {
                        "title": "Delivery ZIP Code",
                        "pattern": "^\\d{5}$",
                        "type": "string",
                        "description": "US ZIP code for the delivery area you want prices for (e.g. '10001' for Manhattan). This genuinely controls the location: results come from the stores that deliver to this ZIP, with that area's real prices. Every result also reports the ZIP it was collected for. Leave empty to use an approximate location detected automatically (enter a ZIP for precise, location-specific pricing)."
                    },
                    "streetAddress": {
                        "title": "Street Address (optional)",
                        "type": "string",
                        "description": "Optional street address for a more precise delivery point within the ZIP (e.g. '350 5th Ave, New York'). Leave empty to use the ZIP's centre. Most searches only need the ZIP."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to return in total, across all search terms and stores. Set to 0 to collect everything available. Results are collected in batches and complete batches are always kept, so the final count can slightly exceed this number (you are never charged less than the data you receive). Tip: start with 20-100 to test, then increase."
                    },
                    "inStockOnly": {
                        "title": "In-stock products only",
                        "type": "boolean",
                        "description": "When on, only products currently available to order are returned (products marked out of stock are skipped).",
                        "default": false
                    },
                    "retailers": {
                        "title": "Limit to specific stores (optional)",
                        "type": "array",
                        "description": "Optionally search only specific stores by their Instacart store slug, e.g. 'costco', 'safeway', 'cvs', 'walmart', 'sprouts'. Matching is case-insensitive. Leave empty to automatically search the top 3 stores available for your ZIP (a good, fast default). The stores available depend on the location, so a slug that exists in one area may not exist in another; unavailable slugs are skipped with a note in the log.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
