# Claude Prompt Actor – GEO - API + Web Search, Citations (`automation_nerd/claude-prompt-actor`) Actor

Sends prompts to Claude via the Anthropic API (BYOK) with web search enabled, and returns the answer as text + markdown, the cited sources and aggregated domains.

- **URL**: https://apify.com/automation\_nerd/claude-prompt-actor.md
- **Developed by:** [Egon Maier](https://apify.com/automation_nerd) (community)
- **Categories:** AI, SEO tools, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 prompt processed and analyseds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Claude Prompt Actor - GEO – API + Web Search, Sources & Citations

**Ask Claude anything, with live web search, and capture the answer and every source it cites.**

This Actor sends your prompts to **Claude** through the official **Anthropic API**
and returns each answer as **text and Markdown**, together with the **cited
sources** (URL, title, domain) and an aggregated list of **cited domains** — the
core metric for **Generative Engine Optimization (GEO)**.

Claude's login-only chat UI can't be scraped reliably, so this Actor uses the API
directly. By default it runs with a compact, **Claude.ai / Claude Desktop-style
system prompt** and Anthropic's **server-side web search tool**, so the answers
and citations resemble what a real Claude Desktop user sees.

**Use it to:**

- **Monitor AI search visibility** — is your brand mentioned and cited in Claude's answers?
- **Track competitors** — which domains does Claude cite for your money keywords?
- **GEO & SEO reporting** — measure AI answer coverage across hundreds of prompts
- **Content research** — see exactly what Claude summarizes for a topic, with sources

### Bring Your Own Key (BYOK)

This Actor is **BYOK**: you provide your **own Anthropic API key** in the
encrypted `apiKey` input.

#### Where do I get a key?

1. Go to **<https://platform.claude.com/settings/keys>** (sign in / create a free
   Anthropic account).
2. Click **Create Key**, give it a name, and copy the value — it starts with
   `sk-ant-`.
3. Paste it into this Actor's **`apiKey`** input field.

See **Pricing** below for what this costs.

#### Is it safe to enter my key here?

Yes. The `apiKey` field is a **secret input**, which means:

- **It's stored encrypted.** Apify encrypts secret inputs at rest; the value is
  **not** shown in the run's input view, is **not** written to the run log, and is
  **not** saved into the output dataset. This Actor never prints or stores it.
- **It's only used to call Anthropic.** The key is passed straight to the official
  Anthropic API (`api.anthropic.com`) to answer your prompts — nothing else, no
  other destination.
- **You keep full control.** Tokens are billed to **your** Anthropic account at
  cost (no markup), you can set spend limits in the Anthropic console, and you can
  **revoke or rotate the key any time** at
  <https://platform.claude.com/settings/keys> — that instantly disables it
  everywhere.
- **No reselling.** This Actor does not resell Anthropic access; you run on
  Anthropic's own terms with your own account.

> Tip: create a **dedicated key** for this Actor (and optionally a monthly spend
> limit). Then you can revoke just that key later without affecting anything else.

### Pricing

This Actor uses **pay per event + usage** pricing:

- One **`prompt-answered`** event per **successfully answered** prompt. Prompts
  that fail (refusal, empty response, API error) are **not** charged.
- **Your own Anthropic token cost** (BYOK) is billed to you directly by Anthropic
  — this Actor never marks it up or resells it.
- Apify **platform usage** (compute) is billed separately to you at cost.

So a run costs: the per-answered-prompt event fee **+** your Anthropic tokens **+**
a little Apify compute. Lower `maxSearchUses`/`maxTokens` or pick Sonnet/Haiku to
reduce the token part.

### Input

| Field                  | Type              | Description                                                                                                            |
| ---------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `prompts`              | array (required)  | Questions/prompts to send to Claude. Each runs in its own independent conversation.                                    |
| `apiKey`               | string (required) | Your Anthropic API key (`sk-ant-…`). Stored encrypted (BYOK).                                                          |
| `model`                | string            | `claude-opus-4-8` (default, most capable), `claude-sonnet-5`, `claude-haiku-4-5`, `claude-fable-5`.                    |
| `overrideSystemPrompt` | string            | Empty = use the built-in Claude.ai-style prompt (applied in code). Set only to replace it. `{{CURRENT_DATE}}` → today. |
| `webSearch`            | boolean           | Enable Anthropic's server-side web search tool (default `true`). Off = model-knowledge only, no sources.               |
| `maxSearchUses`        | integer           | Max web searches per prompt (default `5`).                                                                             |
| `extendedThinking`     | boolean           | Adaptive extended thinking (default `false`). Ignored for Haiku 4.5.                                                   |
| `maxTokens`            | integer           | Max answer length in tokens (default `8192`). Requests are streamed, so large values are safe.                         |
| `maxConcurrency`       | integer           | Parallel prompts (default `3`). Bounded by your Anthropic rate limits; no extra memory needed.                         |
| `maxRequestRetries`    | integer           | Retries per prompt on transient API errors (default `2`). Reported per item as `attempts`.                             |

### Output

One dataset item per prompt. The schema is aligned with the other Actors in this
project (ChatGPT, Google AI Overview) so results combine easily.

- `prompt`: the input prompt
- `success`: `true` if an answer was returned, `false` otherwise
- `error`: `null` on success, otherwise an error marker (`REFUSAL: …`, `EMPTY_RESPONSE`, an API error message, …)
- `attempts`: number of tries it took (including the final one)
- `model`: the model that answered
- `responseText`: the answer as plain text
- `responseMarkdown`: the answer with Markdown formatting preserved
- `sources`: array of `{ position, text, url, domain, type }`, deduplicated by normalized URL
    - `type: "citation"` — a source Claude cited inline in its answer
    - `type: "source"` — a page returned by web search (considered, maybe not cited inline)
- `sourceDomains`: unique host names across `sources` (aggregated GEO metric; full hostname, no `www` stripping)
- `webSearchCount`: how many web searches Claude ran for this prompt
- `usage`: token usage `{ input_tokens, output_tokens, … }` — handy for tracking your Anthropic cost
- `stopReason`: why generation stopped (`end_turn`, `max_tokens`, `refusal`, …)
- `responseTimeMs`, `promptIndex`, `totalPrompts`, `timestamp`

### Notes

- **Cost is on your Anthropic account.** Web search and larger models cost more
  tokens; lower `maxSearchUses`, pick Sonnet/Haiku, or reduce `maxTokens` to save.
- **Answers take a while.** A single web-searched Opus answer typically runs
  ~10–40s (Claude searches, reads pages, then writes). This is normal. To finish a
  batch faster, raise `maxConcurrency` so prompts run in parallel, or use a faster
  model (Sonnet/Haiku). The run log and Run-tab status update after every prompt so
  you can follow progress.
- **`stopReason: "max_tokens"`** means the answer was cut off — raise `maxTokens`.
- **Answers are non-deterministic** — wording, sources and counts vary between
  identical runs, and a prompt that needs no current facts may return 0 sources.
- **Fable 5** requires 30-day data retention on your Anthropic org (not available
  under zero-data-retention) and may occasionally refuse a request (reported as
  `success: false`, `error: "REFUSAL: …"`).

# Actor input Schema

## `prompts` (type: `array`):

Questions/prompts to send to Claude. Each prompt runs in its own independent conversation.
## `apiKey` (type: `string`):

Your own Anthropic API key (starts with 'sk-ant-'). Get one at https://platform.claude.com/settings/keys (Create Key). Safe to enter: this is a secret field — Apify stores it encrypted, it is never shown in the run input, log or dataset, and it is only used to call the Anthropic API. Tokens are billed to your own Anthropic account (BYOK, no markup); you can revoke or rotate the key anytime in the Anthropic console.
## `model` (type: `string`):

Which Claude model to use. Opus 4.8 is the most capable (default); switch to Sonnet or Haiku for lower cost. Fable 5 is the strongest and most expensive tier.
## `overrideSystemPrompt` (type: `string`):

Leave empty to use the Actor's built-in Claude.ai/Desktop-style system prompt (warm tone, Jan 2026 knowledge cutoff, minimal formatting, web-search-aware) — it is applied automatically, so you don't need to paste it here. Set this only to REPLACE that default with your own system prompt. The token {{CURRENT_DATE}} is replaced with today's date at runtime.
## `webSearch` (type: `boolean`):

Let Claude use Anthropic's server-side web search tool to ground answers in current information and produce cited sources. Turn off for pure model-knowledge answers (no sources).
## `maxSearchUses` (type: `integer`):

Upper bound on how many web searches Claude may run while answering one prompt. Lower = cheaper and faster; higher = more thorough. Only applies when web search is enabled.
## `extendedThinking` (type: `boolean`):

Enable adaptive extended thinking (Claude reasons before answering). Improves hard questions at the cost of extra tokens/latency. Ignored for Haiku 4.5 (not supported).
## `maxTokens` (type: `integer`):

Maximum length of Claude's answer (in tokens). The request is streamed, so large values are safe from timeouts.
## `maxConcurrency` (type: `integer`):

How many prompts to send to the API in parallel. Higher = faster; bounded by your Anthropic rate limits. No extra memory needed (no browser).
## `maxRequestRetries` (type: `integer`):

How often to retry a prompt on a transient API error (rate limit / 5xx / connection). Reported per item as 'attempts'. Refusals and invalid requests are not retried.

## Actor input object example

```json
{
  "prompts": [
    "What are the most popular Nike products?",
    "What is the best dark chocolate?"
  ],
  "model": "claude-opus-4-8",
  "webSearch": true,
  "maxSearchUses": 5,
  "extendedThinking": false,
  "maxTokens": 8192,
  "maxConcurrency": 3,
  "maxRequestRetries": 2
}
````

# Actor output Schema

## `results` (type: `string`):

All results as JSON (one item per prompt: responseText, responseMarkdown, sources, sourceDomains, usage, …)

## `run` (type: `string`):

API endpoint of this run (status, stats, storages)

# 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 = {
    "prompts": [
        "What are the most popular Nike products?",
        "What is the best dark chocolate?"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation_nerd/claude-prompt-actor").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 = { "prompts": [
        "What are the most popular Nike products?",
        "What is the best dark chocolate?",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("automation_nerd/claude-prompt-actor").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 '{
  "prompts": [
    "What are the most popular Nike products?",
    "What is the best dark chocolate?"
  ]
}' |
apify call automation_nerd/claude-prompt-actor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Claude Prompt Actor – GEO - API + Web Search, Citations",
        "description": "Sends prompts to Claude via the Anthropic API (BYOK) with web search enabled, and returns the answer as text + markdown, the cited sources and aggregated domains.",
        "version": "0.1",
        "x-build-id": "YCAYEYxZVqcomSJXO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation_nerd~claude-prompt-actor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation_nerd-claude-prompt-actor",
                "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/automation_nerd~claude-prompt-actor/runs": {
            "post": {
                "operationId": "runs-sync-automation_nerd-claude-prompt-actor",
                "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/automation_nerd~claude-prompt-actor/run-sync": {
            "post": {
                "operationId": "run-sync-automation_nerd-claude-prompt-actor",
                "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": [
                    "prompts",
                    "apiKey"
                ],
                "properties": {
                    "prompts": {
                        "title": "Prompts",
                        "type": "array",
                        "description": "Questions/prompts to send to Claude. Each prompt runs in its own independent conversation.",
                        "default": [
                            "What are the most popular Nike products?"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "apiKey": {
                        "title": "Anthropic API key (BYOK)",
                        "type": "string",
                        "description": "Your own Anthropic API key (starts with 'sk-ant-'). Get one at https://platform.claude.com/settings/keys (Create Key). Safe to enter: this is a secret field — Apify stores it encrypted, it is never shown in the run input, log or dataset, and it is only used to call the Anthropic API. Tokens are billed to your own Anthropic account (BYOK, no markup); you can revoke or rotate the key anytime in the Anthropic console."
                    },
                    "model": {
                        "title": "Model",
                        "enum": [
                            "claude-opus-4-8",
                            "claude-sonnet-5",
                            "claude-haiku-4-5",
                            "claude-fable-5"
                        ],
                        "type": "string",
                        "description": "Which Claude model to use. Opus 4.8 is the most capable (default); switch to Sonnet or Haiku for lower cost. Fable 5 is the strongest and most expensive tier.",
                        "default": "claude-opus-4-8"
                    },
                    "overrideSystemPrompt": {
                        "title": "Override system prompt",
                        "type": "string",
                        "description": "Leave empty to use the Actor's built-in Claude.ai/Desktop-style system prompt (warm tone, Jan 2026 knowledge cutoff, minimal formatting, web-search-aware) — it is applied automatically, so you don't need to paste it here. Set this only to REPLACE that default with your own system prompt. The token {{CURRENT_DATE}} is replaced with today's date at runtime."
                    },
                    "webSearch": {
                        "title": "Enable web search",
                        "type": "boolean",
                        "description": "Let Claude use Anthropic's server-side web search tool to ground answers in current information and produce cited sources. Turn off for pure model-knowledge answers (no sources).",
                        "default": true
                    },
                    "maxSearchUses": {
                        "title": "Max web searches per prompt",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Upper bound on how many web searches Claude may run while answering one prompt. Lower = cheaper and faster; higher = more thorough. Only applies when web search is enabled.",
                        "default": 5
                    },
                    "extendedThinking": {
                        "title": "Extended thinking",
                        "type": "boolean",
                        "description": "Enable adaptive extended thinking (Claude reasons before answering). Improves hard questions at the cost of extra tokens/latency. Ignored for Haiku 4.5 (not supported).",
                        "default": false
                    },
                    "maxTokens": {
                        "title": "Max output tokens",
                        "minimum": 256,
                        "maximum": 64000,
                        "type": "integer",
                        "description": "Maximum length of Claude's answer (in tokens). The request is streamed, so large values are safe from timeouts.",
                        "default": 8192
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency (parallel prompts)",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many prompts to send to the API in parallel. Higher = faster; bounded by your Anthropic rate limits. No extra memory needed (no browser).",
                        "default": 3
                    },
                    "maxRequestRetries": {
                        "title": "Max retries per prompt",
                        "minimum": 0,
                        "maximum": 8,
                        "type": "integer",
                        "description": "How often to retry a prompt on a transient API error (rate limit / 5xx / connection). Reported per item as 'attempts'. Refusals and invalid requests are not retried.",
                        "default": 2
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
