# Product Hunt Scraper (`fetch_cat/product-hunt-scraper`) Actor

Scrape recent Product Hunt launches with product names, taglines, launch dates, Product Hunt URLs, outbound links, and cache-aware freshness controls.

- **URL**: https://apify.com/fetch\_cat/product-hunt-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.08 / 1,000 product row (cached)s

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

## Product Hunt Scraper

Export recent Product Hunt launches into a clean Apify dataset with product names, taglines, launch dates, Product Hunt URLs, outbound links, and cache-aware freshness controls.

Use this actor to monitor new products, collect launch inspiration, build lead lists, compare competitors, and keep a lightweight record of Product Hunt activity without paying for heavy browser automation.

### What does Product Hunt Scraper do?

Product Hunt Scraper collects product rows from Product Hunt's current launch feed and saves them as structured dataset items.

Each row includes the product name, tagline, Product Hunt URL, launch timestamp, launch date, optional outbound redirect URL, cache status, and scrape timestamp.

### Who is it for?

- 🧑‍💼 Founders tracking adjacent launches.
- 📈 Growth teams building daily launch dashboards.
- 🕵️ Competitive intelligence analysts watching new tools.
- 📰 Newsletter writers collecting fresh startup ideas.
- 🧪 Product researchers validating category momentum.
- 🤖 Automation builders feeding Product Hunt rows into CRMs, Sheets, Airtable, or Slack.

### Why use this actor?

Product Hunt pages can be expensive to crawl with browsers. This actor is intentionally lightweight. It focuses on launch rows that are available through a low-cost feed path and avoids third-party email enrichment by default.

That means faster runs, lower compute cost, and predictable pay-per-event billing.

### Product Hunt launch fields you can export

| Field | Description |
| --- | --- |
| `id` | Stable ID derived from the Product Hunt product URL. |
| `title` | Product name. |
| `tagline` | Short product tagline or description. |
| `productUrl` | Product Hunt product page URL. |
| `discussionUrl` | Product Hunt discussion URL. |
| `outboundUrl` | Product Hunt outbound redirect URL when present. |
| `launchedAt` | Launch/update timestamp from Product Hunt. |
| `launchDate` | Date portion of the launch timestamp. |
| `source` | Source feed URL. |
| `cacheStatus` | `fresh` or `cached`. |
| `scrapedAt` | Time this actor saved the row. |

### How much does it cost to scrape Product Hunt launches?

The actor uses pay-per-event pricing.

- Actor start: small one-time run charge.
- Fresh product row: charged when a row is read from Product Hunt during the run.
- Cached product row: charged at a lower rate when a still-fresh cache entry is reused.

The default cache TTL is 12 hours. Set `forceFresh` to true when freshness matters more than cost. Use fresh runs for time-sensitive launch monitoring; use cached rows when cost matters more than freshness.

### Cost-saving cache behavior

The actor stores product rows in a named key-value cache keyed by Product Hunt URL.

If another run asks for the same row while the cache entry is still inside `cacheTtlHours`, the actor returns the cached row and marks it as `cacheStatus: "cached"`.

This is designed to reduce repeat-run cost for dashboards and scheduled automations.

### Freshness guardrails

You stay in control of stale data risk.

- Set `forceFresh` to ignore cache.
- Set `cacheTtlHours` to `0` to disable cache reads and writes.
- Lower `cacheTtlHours` for fast-moving workflows.
- Check `cacheStatus` and `scrapedAt` in every output row.

### Input options

| Input | Type | Default | Description |
| --- | --- | --- | --- |
| `maxItems` | integer | `20` | Maximum number of products to save, up to 50 recent launches from Product Hunt's current public feed. |
| `launchDate` | string | empty | Optional `YYYY-MM-DD` date filter. |
| `startUrls` | array | empty | Optional Product Hunt URLs to keep if present in the current feed. |
| `includeRedirectUrl` | boolean | `true` | Include Product Hunt outbound redirect URLs. |
| `cacheTtlHours` | integer | `12` | Cache lifetime from 0 to 168 hours. |
| `forceFresh` | boolean | `false` | Ignore cache for this run. |

### Example input

```json
{
  "maxItems": 20,
  "cacheTtlHours": 12,
  "forceFresh": false,
  "includeRedirectUrl": true
}
````

### Example input for a fresh run

```json
{
  "maxItems": 50,
  "forceFresh": true,
  "cacheTtlHours": 0,
  "includeRedirectUrl": true
}
```

### Example input with URL filter

```json
{
  "startUrls": [
    { "url": "https://www.producthunt.com/products/example-product" }
  ],
  "maxItems": 10
}
```

### Output example

```json
{
  "id": "www.producthunt.com_products_crewdle",
  "title": "Crewdle AI",
  "tagline": "Use every business AI tool without every subscription",
  "productUrl": "https://www.producthunt.com/products/crewdle",
  "discussionUrl": "https://www.producthunt.com/products/crewdle",
  "outboundUrl": "https://www.producthunt.com/r/p/1178240?app_id=339",
  "launchedAt": "2026-06-24T13:12:05-07:00",
  "launchDate": "2026-06-24",
  "source": "https://www.producthunt.com/feed",
  "cacheStatus": "fresh",
  "scrapedAt": "2026-06-24T20:00:00.000Z"
}
```

### How to run

1. Open the actor on Apify.
2. Keep the prefilled input for a quick test.
3. Choose your maximum product count, up to 50 recent launches.
4. Decide whether cached rows are acceptable.
5. Start the run.
6. Export the dataset as JSON, CSV, Excel, XML, or RSS.

### Tips for best results

- Use a small `maxItems` for quick checks.
- Use `maxItems: 50` when you want the full currently available public feed; older archive-scale exports are intentionally out of scope for this low-cost mode.
- Use scheduled runs for daily launch monitoring.
- Keep caching on for dashboards that refresh frequently.
- Use `forceFresh` before publishing a report.
- Leave `launchDate` empty unless you specifically need to filter the current feed by date.

### Limitations

This actor focuses on low-cost launch rows. It does not enrich third-party websites for emails, founders, or social profiles.

Older Product Hunt archive pages may require heavier crawling. Product Hunt's current public feed currently exposes up to 50 recent launches; if it does not contain a requested date or URL, the actor may return no rows for that filter.

### Integrations

Send Product Hunt rows to:

- Google Sheets for a daily launch tracker.
- Airtable for startup research databases.
- Slack for launch alerts.
- Notion for content planning.
- CRMs for founder outreach workflows.
- BI tools through Apify dataset exports.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/product-hunt-scraper').call({
  maxItems: 20,
  cacheTtlHours: 12,
});
console.log(run.defaultDatasetId);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/product-hunt-scraper').call(run_input={
    'maxItems': 20,
    'cacheTtlHours': 12,
})
print(run['defaultDatasetId'])
```

### API usage with cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~product-hunt-scraper/runs?token=<APIFY_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{"maxItems":20,"cacheTtlHours":12}'
```

### MCP usage

Use this actor through Apify MCP from Claude Desktop or Claude Code.

MCP URL pattern:

```text
https://mcp.apify.com/?tools=fetch_cat/product-hunt-scraper
```

Claude Code setup:

```bash
claude mcp add apify-product-hunt --url "https://mcp.apify.com/?tools=fetch_cat/product-hunt-scraper"
```

Claude Desktop JSON config example:

```json
{
  "mcpServers": {
    "apify-product-hunt": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/product-hunt-scraper"
    }
  }
}
```

Example prompts:

- "Run Product Hunt Scraper for 25 products and summarize the most interesting AI launches."
- "Export today's Product Hunt rows and draft a founder outreach shortlist."
- "Compare cached and fresh Product Hunt rows from my latest run."

### Scheduling ideas

Run the actor every morning to collect launches.

Run it every few hours during a launch day if you are monitoring competitors.

Turn on cache for frequent schedules to reduce repeated row cost.

### Troubleshooting: no results

If a run returns no rows, remove `launchDate` and `startUrls` and run the prefilled input.

The current feed may not include older dates or a specific product URL.

### Troubleshooting: stale rows

If a row is marked `cached`, lower `cacheTtlHours` or set `forceFresh` to true.

Every row includes `scrapedAt` so you can audit freshness.

### FAQ

#### Can I scrape older Product Hunt launch dates?

The actor can filter by `launchDate` when that date is present in the current Product Hunt feed. Older archive pages may not be available through this low-cost mode.

#### How do I avoid stale cached rows?

Set `forceFresh` to true or set `cacheTtlHours` to `0`.

#### Does this actor collect emails?

No. Email enrichment is intentionally excluded from the default Product Hunt launch workflow to keep runs cheaper and simpler.

### Legality

Use Product Hunt Scraper responsibly and follow Product Hunt terms, Apify terms, and applicable laws. The actor exports publicly available launch-feed fields and does not bypass login-only data.

### Legal and ethical use

Use this actor responsibly and follow Product Hunt's terms and applicable laws.

Do not use exported data for spam, harassment, or prohibited profiling.

Respect privacy when combining this dataset with other sources.

### Related scrapers

Explore other Apify actors from our catalog for startup, company, jobs, and social data workflows:

- [Y Combinator Companies Scraper](https://apify.com/fetch_cat/y-combinator-companies-scraper) for startup/company discovery.
- [GitHub Repositories Search Scraper](https://apify.com/fetch_cat/github-repositories-search-scraper) for developer-tool market research.
- [LinkedIn Jobs Scraper](https://apify.com/fetch_cat/linkedin-jobs-scraper) for hiring and startup-growth signals.

### Changelog

Initial version:

- Recent Product Hunt launch extraction.
- Cache-aware output and pricing events.
- Product URL, tagline, date, outbound redirect, and freshness metadata.

### Support

If you need additional Product Hunt fields such as maker profiles, comments, votes, or emails, open an issue with a sample workflow and desired output columns.

### Data freshness summary

Cached rows are cheaper and faster.

Fresh rows are better for time-sensitive reporting.

Choose the mode that matches your workflow.

### Cost summary

This actor is designed for predictable costs:

- no browser by default,
- no proxy by default,
- one Product Hunt feed request per run,
- optional cache reuse,
- per-row charge events.

### Final note

Product Hunt Scraper is best for lightweight, repeatable launch monitoring and dataset exports.

# Actor input Schema

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

Maximum number of Product Hunt products to save from the currently available launch feed. Product Hunt's public feed currently exposes up to 50 recent launches per run.

## `launchDate` (type: `string`):

Filter launches by UTC date in YYYY-MM-DD format. Leave empty for the newest Product Hunt feed items.

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

Optional Product Hunt product URLs to keep if they are present in the current feed. Leave empty to export recent launches.

## `includeRedirectUrl` (type: `boolean`):

Save Product Hunt's outbound redirect URL when it is present in the feed content.

## `cacheTtlHours` (type: `integer`):

Reuse product rows from previous runs for this many hours to lower cost. Set to 0 to disable cache reads/writes.

## `forceFresh` (type: `boolean`):

Ignore cached rows and refresh from Product Hunt's feed. Use this when freshness matters more than cost.

## Actor input object example

```json
{
  "maxItems": 20,
  "startUrls": [],
  "includeRedirectUrl": true,
  "cacheTtlHours": 12,
  "forceFresh": false
}
```

# Actor output Schema

## `overview` (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 = {
    "maxItems": 20,
    "launchDate": "",
    "startUrls": [],
    "includeRedirectUrl": true,
    "cacheTtlHours": 12,
    "forceFresh": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/product-hunt-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 = {
    "maxItems": 20,
    "launchDate": "",
    "startUrls": [],
    "includeRedirectUrl": True,
    "cacheTtlHours": 12,
    "forceFresh": False,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/product-hunt-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 '{
  "maxItems": 20,
  "launchDate": "",
  "startUrls": [],
  "includeRedirectUrl": true,
  "cacheTtlHours": 12,
  "forceFresh": false
}' |
apify call fetch_cat/product-hunt-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Product Hunt Scraper",
        "description": "Scrape recent Product Hunt launches with product names, taglines, launch dates, Product Hunt URLs, outbound links, and cache-aware freshness controls.",
        "version": "0.1",
        "x-build-id": "jr9ZgnUj77Yu8TnoF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~product-hunt-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-product-hunt-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/fetch_cat~product-hunt-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-product-hunt-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/fetch_cat~product-hunt-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-product-hunt-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": {
                    "maxItems": {
                        "title": "Maximum products",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of Product Hunt products to save from the currently available launch feed. Product Hunt's public feed currently exposes up to 50 recent launches per run.",
                        "default": 20
                    },
                    "launchDate": {
                        "title": "Launch date (optional)",
                        "type": "string",
                        "description": "Filter launches by UTC date in YYYY-MM-DD format. Leave empty for the newest Product Hunt feed items."
                    },
                    "startUrls": {
                        "title": "Product Hunt URLs (optional)",
                        "type": "array",
                        "description": "Optional Product Hunt product URLs to keep if they are present in the current feed. Leave empty to export recent launches.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "includeRedirectUrl": {
                        "title": "Include outbound redirect URL",
                        "type": "boolean",
                        "description": "Save Product Hunt's outbound redirect URL when it is present in the feed content.",
                        "default": true
                    },
                    "cacheTtlHours": {
                        "title": "Cache TTL in hours",
                        "minimum": 0,
                        "maximum": 168,
                        "type": "integer",
                        "description": "Reuse product rows from previous runs for this many hours to lower cost. Set to 0 to disable cache reads/writes.",
                        "default": 12
                    },
                    "forceFresh": {
                        "title": "Force fresh read",
                        "type": "boolean",
                        "description": "Ignore cached rows and refresh from Product Hunt's feed. Use this when freshness matters more than cost.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
