# GoodRx Drug Price Scraper (`maximedupre/goodrx`) Actor

Compare GoodRx pharmacy prices for medications by US ZIP code. Get pickup or mail-order offers with drug details, price types, offer links, and the time each price was found.

- **URL**: https://apify.com/maximedupre/goodrx.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Business, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.80 / 1,000 pharmacy offers

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### 💊 Compare GoodRx drug prices by ZIP code

GoodRx Drug Price Scraper helps health apps, researchers, and price-comparison teams collect public pharmacy offers. It returns medication details, local or mail-order pharmacies, available price types, offer links, ZIP codes, and collection times in a clean dataset.

- Compare offers for a **[Prescription Discount Card](https://apify.com/maximedupre/goodrx/examples/prescription-discount-card)** across pharmacies.
- Check which offer may fit the **[Best Prescription Discount Card](https://apify.com/maximedupre/goodrx/examples/best-prescription-discount-card)** search for a medication and ZIP code.
- Review public prices when asking **[What Is the Best Free Prescription Discount Card](https://apify.com/maximedupre/goodrx/examples/what-is-the-best-free-prescription-discount-card)**.
- Build a **[Walmart Cash Price Drug List](https://apify.com/maximedupre/goodrx/examples/walmart-cash-price-drug-list)** from offers that GoodRx shows for Walmart.
- Check **[Walmart Prescription Prices Without Insurance](https://apify.com/maximedupre/goodrx/examples/walmart-prescription-prices-without-insurance)** when matching public price types are available.
- Compare public offers for a **[Prescription Discount Card for Zepbound](https://apify.com/maximedupre/goodrx/examples/prescription-discount-card-for-zepbound)** by ZIP code.

#### 📦 Returned data

Each dataset row is one successful GoodRx pharmacy offer. It can include the resolved drug and generic names, form, dosage, quantity, pharmacy facts, distance, available cash, retail, coupon, Gold, or membership prices, public coupon IDs, source links, and the time the price was read.

The run summary lists totals, the lowest offer found for each medication, ZIP code, and delivery mode, and comparisons that returned no offers.

#### 🚀 Running the Actor

1. Add one or more medications and 5-digit US ZIP codes.
2. Pick local pickup, mail order, or both.
3. Add any drug, pharmacy, sorting, or result filters.
4. Click **Start**. Open the dataset for offers or the key-value store for the run summary.

The same filters apply to each medication and ZIP code in one run. GoodRx prices can change. Check the final medication details and price with the pharmacy. This Actor gives price-comparison data, not medical, insurance, or pharmacy advice.

#### 🧾 Input

| Field | Type | What it does |
| --- | --- | --- |
| `medications` | string[] | Adds drug names, GoodRx page slugs, or GoodRx drug page URLs. |
| `zipCodes` | string[] | Adds one or more 5-digit US ZIP codes. |
| `form` | string | Uses one form for every medication. Leave empty to use the form found by GoodRx. |
| `dosage` | string | Uses one dosage for every medication. Leave empty to use the dosage found by GoodRx. |
| `quantity` | integer | Sets one priced quantity for every medication. Leave empty to use the quantity found by GoodRx. |
| `deliveryModes` | string[] | Chooses local pickup, mail order, or both. |
| `radiusMiles` | integer | Sets the pickup search radius in miles. It is not used for mail order. |
| `pharmacyChains` | string[] | Keeps named pharmacy chains in local pickup offers. |
| `sortBy` | string | Orders offers by price, distance, or pharmacy name. Distance applies only to pickup. |
| `maxOffers` | integer | Stops after this many offers for each medication, ZIP code, and delivery mode. Leaving it empty returns all available offers until the source is exhausted. |
| `includePrintableCouponDetails` | boolean | Gets public BIN, PCN, group, and member IDs from found coupon pages. This makes the run slower. |

A successful default-input QA run used:

```json
{
  "medications": [
    "atorvastatin"
  ],
  "zipCodes": [
    "10001"
  ],
  "deliveryModes": [
    "pickup"
  ],
  "sortBy": "price",
  "maxOffers": 5,
  "includePrintableCouponDetails": false
}
````

#### 📤 Output

| Field | Type | What it does |
| --- | --- | --- |
| `medicationName` | string | Medication name resolved by GoodRx. |
| `genericName` | string | Generic name, when GoodRx provides it. |
| `form` | string | Medication form used for the price. |
| `dosage` | string | Medication strength used for the price. |
| `quantity` | number | Medication quantity covered by the offer. |
| `zipCode` | string | US ZIP code used for the comparison. |
| `deliveryMode` | string | `pickup` or `mail_order`. |
| `pharmacyName` | string | Pharmacy or mail-order service with the offer. |
| `pharmacyType` | string | Pharmacy type shown by GoodRx. |
| `pharmacyLogoUrl` | string | Pharmacy logo URL shown by GoodRx. |
| `pharmacyAddress` | string | Store address, when available. |
| `distanceMiles` | number | Distance to a pickup store, when available. |
| `prices` | object\[] | Available price choices for the offer. |
| `prices.type` | string | Cash, retail, coupon, Gold, or membership price type. |
| `prices.amount` | number | Price in US dollars. |
| `prices.savingsPercent` | number | Savings percent shown by GoodRx, when available. |
| `prices.offerUrl` | string | GoodRx coupon or offer link, when available. |
| `printableCoupon` | object | Public coupon IDs, when requested and available. |
| `printableCoupon.bin` | string | Coupon bank identification number. |
| `printableCoupon.pcn` | string | Coupon processor control number. |
| `printableCoupon.group` | string | Coupon group ID. |
| `printableCoupon.memberId` | string | Coupon member ID. |
| `sourceUrl` | string | GoodRx page used for the comparison. |
| `observedAt` | string | Date and time when the price was read. |

This full row came from the current beta build:

```json
{
  "medicationName": "Atorvastatin",
  "genericName": "atorvastatin",
  "form": "tablet",
  "dosage": "40mg",
  "quantity": 30,
  "zipCode": "10001",
  "deliveryMode": "pickup",
  "pharmacyName": "ShopRite",
  "pharmacyType": "chain",
  "pharmacyLogoUrl": "https://www.grxstatic.com/pharmacy_logos/circle_icon/23356.png",
  "prices": [
    {
      "type": "membership",
      "amount": 0,
      "savingsPercent": 100,
      "offerUrl": "https://www.goodrx.com/atorvastatin?label_override=atorvastatin&prices_first=1&zip=10001&location=10001&deliveryType=pickup&sort_type=lowest_price"
    },
    {
      "type": "retail",
      "amount": 46.59,
      "offerUrl": "https://www.goodrx.com/atorvastatin?label_override=atorvastatin&prices_first=1&zip=10001&location=10001&deliveryType=pickup&sort_type=lowest_price"
    }
  ],
  "sourceUrl": "https://www.goodrx.com/atorvastatin?label_override=atorvastatin&prices_first=1&zip=10001&location=10001&deliveryType=pickup&sort_type=lowest_price",
  "observedAt": "2026-07-27T18:13:23.986Z"
}
```

#### 💳 Pricing

This Actor uses pay per event. You are charged $0.0018 for each successful pharmacy price offer saved to the dataset. Comparisons that save no offer do not trigger that event. Asking for printable coupon details does not add a separate event charge.

#### 🔌 Integrations

Send the dataset to Google Sheets, Make, Zapier, Slack, webhooks, or your own app with the Apify API. You can also schedule runs to check the same medication and ZIP code again.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Does this show the final price at the pharmacy?

No. It saves public prices shown by GoodRx. Price, eligibility, stock, and coupon acceptance can change, so check with the pharmacy.

##### Can I compare pickup and mail-order offers?

Yes. Choose either mode or both. Rows keep the delivery mode so you can compare them safely.

##### Can I limit results to Walmart or another chain?

Yes for local pickup offers. Add the chain name under `pharmacyChains`. A chain appears only when GoodRx returns a matching offer.

##### Do I need a GoodRx login?

The input does not ask for GoodRx credentials. The Actor reads public GoodRx price pages and does not sign in or submit order, refill, transfer, SMS, or email forms.

##### Is this the official GoodRx website or API?

No. This is an independent Apify Actor. It returns source URLs so you can review the matching GoodRx pages.

### 📝 Changelog

#### 0.0: Initial release

- Compare GoodRx pickup and mail-order pharmacy offers by medication and US ZIP code, with price filters and optional printable coupon details.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~goodrx/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [ICD-10 Codes Scraper](https://apify.com/maximedupre/icd-10-codes-scraper) — look up diagnosis codes and official code names for health data workflows.
- [Hospital Price Transparency Scraper](https://apify.com/maximedupre/hospital-price-transparency-scraper) — compare public hospital cash prices and payer rates.
- [CMS Open Payments Scraper](https://apify.com/maximedupre/cms-open-payments-scraper) — collect public provider, hospital, company, and payment data.
- [CMS Nursing Home Compare Scraper](https://apify.com/maximedupre/cms-nursing-home-compare-scraper) — export CMS nursing home details, ratings, staffing, and penalties.
- [Disease Outbreak News Scraper](https://apify.com/maximedupre/disease-outbreak-news-scraper) — collect official public-health alerts and outbreak reports.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `medications` (type: `array`):

Add drug names, GoodRx page slugs, or GoodRx drug page URLs. Use one item for each medication you want to compare.

## `zipCodes` (type: `array`):

Add one or more 5-digit US ZIP codes.

## `form` (type: `string`):

Use one form for all medications, such as tablet or capsule. Leave this empty to use the form found by GoodRx.

## `dosage` (type: `string`):

Use one dosage for all medications, such as 20 mg. Leave this empty to use the dosage found by GoodRx.

## `quantity` (type: `integer`):

Set the priced quantity for every medication. Leave this empty to use the quantity found by GoodRx.

## `deliveryModes` (type: `array`):

Choose local pickup, mail order, or both for every comparison.

## `radiusMiles` (type: `integer`):

Set the pickup search radius in miles. This is not used for mail-order offers.

## `pharmacyChains` (type: `array`):

Add pharmacy chain names to keep. This filter applies to local pickup offers.

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

Choose how to order offers. Distance is used only for local pickup offers.

## `maxOffers` (type: `integer`):

Stop after this many offers for each medication, ZIP code, and delivery mode. Leaving it empty returns all available offers until the source is exhausted.

## `includePrintableCouponDetails` (type: `boolean`):

Get public BIN, PCN, group, and member IDs from found coupon pages. This makes the run slower.

## `__isDebug` (type: `boolean`):

Internal operator-only debug mode.

## Actor input object example

```json
{
  "medications": [
    "atorvastatin"
  ],
  "zipCodes": [
    "10001"
  ],
  "deliveryModes": [
    "pickup"
  ],
  "sortBy": "price",
  "maxOffers": 5,
  "includePrintableCouponDetails": false,
  "__isDebug": false
}
```

# Actor output Schema

## `offers` (type: `string`):

Successful GoodRx pharmacy offers from this run.

## `runSummary` (type: `string`):

A JSON summary with run totals, the lowest offer for each comparison, and targets that did not return offers.

# 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 = {
    "medications": [
        "atorvastatin"
    ],
    "zipCodes": [
        "10001"
    ],
    "maxOffers": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/goodrx").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 = {
    "medications": ["atorvastatin"],
    "zipCodes": ["10001"],
    "maxOffers": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/goodrx").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 '{
  "medications": [
    "atorvastatin"
  ],
  "zipCodes": [
    "10001"
  ],
  "maxOffers": 5
}' |
apify call maximedupre/goodrx --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GoodRx Drug Price Scraper",
        "description": "Compare GoodRx pharmacy prices for medications by US ZIP code. Get pickup or mail-order offers with drug details, price types, offer links, and the time each price was found.",
        "version": "0.0",
        "x-build-id": "RY8S2IIraKkcrhqQ8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~goodrx/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-goodrx",
                "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/maximedupre~goodrx/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-goodrx",
                "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/maximedupre~goodrx/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-goodrx",
                "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": [
                    "medications",
                    "zipCodes"
                ],
                "properties": {
                    "medications": {
                        "title": "Medications",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Add drug names, GoodRx page slugs, or GoodRx drug page URLs. Use one item for each medication you want to compare.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "zipCodes": {
                        "title": "ZIP codes",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Add one or more 5-digit US ZIP codes.",
                        "items": {
                            "type": "string",
                            "pattern": "^\\d{5}$"
                        }
                    },
                    "form": {
                        "title": "Medication form",
                        "minLength": 1,
                        "type": "string",
                        "description": "Use one form for all medications, such as tablet or capsule. Leave this empty to use the form found by GoodRx."
                    },
                    "dosage": {
                        "title": "Dosage",
                        "minLength": 1,
                        "type": "string",
                        "description": "Use one dosage for all medications, such as 20 mg. Leave this empty to use the dosage found by GoodRx."
                    },
                    "quantity": {
                        "title": "Quantity",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Set the priced quantity for every medication. Leave this empty to use the quantity found by GoodRx."
                    },
                    "deliveryModes": {
                        "title": "Delivery modes",
                        "minItems": 1,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Choose local pickup, mail order, or both for every comparison.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "pickup",
                                "mail_order"
                            ],
                            "enumTitles": [
                                "Local pickup",
                                "Mail order"
                            ]
                        },
                        "default": [
                            "pickup"
                        ]
                    },
                    "radiusMiles": {
                        "title": "Search radius",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Set the pickup search radius in miles. This is not used for mail-order offers."
                    },
                    "pharmacyChains": {
                        "title": "Pharmacy chains",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Add pharmacy chain names to keep. This filter applies to local pickup offers.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    },
                    "sortBy": {
                        "title": "Order results by",
                        "enum": [
                            "price",
                            "distance",
                            "pharmacy"
                        ],
                        "type": "string",
                        "description": "Choose how to order offers. Distance is used only for local pickup offers.",
                        "default": "price"
                    },
                    "maxOffers": {
                        "title": "Maximum offers",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Stop after this many offers for each medication, ZIP code, and delivery mode. Leaving it empty returns all available offers until the source is exhausted."
                    },
                    "includePrintableCouponDetails": {
                        "title": "Get printable coupon details",
                        "type": "boolean",
                        "description": "Get public BIN, PCN, group, and member IDs from found coupon pages. This makes the run slower.",
                        "default": false
                    },
                    "__isDebug": {
                        "title": "Debug mode",
                        "type": "boolean",
                        "description": "Internal operator-only debug mode.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
