# AI Visibility Monitor — ChatGPT, Gemini, Perplexity, DeepSeek (`elder_contrabasson/ai-visibility-monitor`) Actor

Track how often your brand appears in AI answers from ChatGPT, Gemini, Perplexity and DeepSeek. Measure visibility score, prominence, Share of Voice vs competitors, and cited sources. Built for GEO and AI search optimization.

- **URL**: https://apify.com/elder\_contrabasson/ai-visibility-monitor.md
- **Developed by:** [Andrei](https://apify.com/elder_contrabasson) (community)
- **Categories:** AI, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $60.00 / 1,000 brand query checkeds

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 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

## AI Visibility Monitor

Track how often your brand appears in AI-generated answers across ChatGPT, Gemini, Perplexity and DeepSeek. As people increasingly ask AI assistants instead of searching Google, being mentioned in AI answers is becoming as important as ranking in search results.

You give it your brand name and product category. It asks each AI platform realistic buyer questions, reads the answers, and reports whether your brand was mentioned, how prominently, and how you compare to competitors.

### What it does

- Queries up to four AI platforms with the same set of prompts
- Detects whether your brand (and any aliases) appears in each answer
- Measures prominence - a 1-10 score for how early the brand is mentioned
- Tracks competitors and computes your Share of Voice
- Collects cited source URLs from web-grounded answers
- Produces an overall AI Visibility Score (0-100)
- Supports per-country, per-language tracking across 37 countries and 26+ languages

### Web search vs memory - an honest distinction

- ChatGPT, Gemini, Perplexity answer with live web search. A mention here reflects real, current AI search visibility.
- DeepSeek answers from model memory only - its API does not perform web search. A mention here means your brand is well-known enough to be in the model's training data. Every result is tagged grounding: memory so you can read it correctly.

### Regional tracking

Brand visibility in AI answers varies by region. A brand that AI mentions as "the best note-taking app" in the US may be invisible in China, irrelevant in Japan, and ranked third in Germany. To capture this:

- Set Country to an ISO code (US, DE, FR, JP, RU, BR, TR, CN, ...) and the actor adds an "in [country]" clause to each default prompt and routes it in the language of that country.
- Set Language to override the country default. For example, Country=DE + Language=en runs English-language prompts about Germany ("What is the best note-taking app in Germany?"), useful for English-speaking expats or B2B buyers.
- Built-in native templates exist for 8 languages (en, de, fr, es, it, ru, pt, ja). Other languages (pl, tr, sv, no, da, fi, zh, ko, id, vi, th, he, ar, uk, cs, el, hu, ro, nl, and more) are translated on the fly via an LLM and cached - the first run in a new language takes ~2 extra seconds, subsequent runs are instant.
- In custom prompts mode the region is recorded in the output but not applied to your prompt text - you write what you want, the country and language fields are saved alongside each result for filtering.

### Fan-out (sub-prompts)

Enable Fan-out to expand each main prompt into related "People Also Ask"-style follow-ups in the same language. An LLM generates 1-5 (default 3) more specific questions per main prompt - narrower use cases, audiences, platforms, price tiers. This reveals where your brand is invisible: AI may mention you for "best note-taking app" but skip you for "best free note-taking app for students" - that gap is a content opportunity.

Each sub-prompt is billed as a separate check, so fan-out multiplies cost proportionally (default 3 mains x 4 sub each x 4 platforms = 48 checks instead of 12). Disabled by default. When enabled, sub-prompts are generated once per (category, language, country) combination and cached, so repeat runs do not re-pay for generation. Each check in the output carries a parentPrompt field that points to the main prompt it expanded from, so you can group results in your analysis.

### Measuring frequency (repeats)

AI answers are not deterministic - the same question can mention your brand once and skip it the next time. By default the actor runs each prompt once. To measure frequency, increase Repeats per prompt to 3-5: with 3 repeats you see whether your brand appears in 1/3, 2/3 or 3/3 answers.

### Input

- Brand name - the brand to track (required)
- Brand aliases - alternate names, abbreviations, domain
- Competitors - competitor names for Share of Voice
- Product category - used to auto-generate realistic prompts
- Prompt source - default (auto-generated from category) or custom (use your own prompts)
- Custom prompts - your own questions, used when Prompt source is custom
- Country - ISO 3166-1 alpha-2 code (US, DE, JP, ...) for regional targeting
- Language - ISO 639-1 code to override the country default (en, de, tr, zh, ...)
- AI platforms - which of the four to query
- Number of prompts - how many prompts per platform when source is default (1-25)
- Repeats per prompt - repeats for frequency measurement (1-10)
- Enable fan-out - off by default; on, an LLM expands each main prompt into follow-up questions
- Sub-prompts per main prompt - how many follow-ups per main when fan-out is on (1-5, default 3)
- Response detail - short excerpt or full answer text

### Output

Two record types: check (one per prompt x platform x repeat) and summary (one per run with overall visibility score, mention rate, Share of Voice, per-platform breakdown). Each check carries country, language, effectiveLanguage and parentPrompt fields so you can group results by market or fold sub-prompts back into their main prompt.

### Pricing

Paid per event - charged once per check (prompt x platform x repeat). All AI API costs (including the optional LLM template translation for non-built-in languages) are included; you need no API keys of your own.

### Use cases

- Generative Engine Optimization (GEO) - measure and improve how AI describes your brand
- Competitive intelligence - see which competitors AI recommends
- Content impact tracking - run before and after publishing
- Multi-market brand audit - compare visibility across US, UK, DE, FR, JP, BR, ... in one report
- Agency reporting - add AI visibility as a KPI

### Notes and limitations

- AI answers change over time - schedule regular runs to build a trend.
- DeepSeek results reflect training-data knowledge, not live web presence.
- This actor measures visibility (are you mentioned), not search volume - AI platforms do not publish how many people ask a given question.
- Brand mentions vary heavily by region. 100% visibility in Germany and 0% in China for the same brand is a real, useful signal - not a measurement error. Use it to identify markets where you need to invest in local content and authority.

# Actor input Schema

## `brandName` (type: `string`):

Your brand, product or company name to track (e.g. Notion, HubSpot). This is the primary name searched for in AI answers.
## `brandAliases` (type: `array`):

Other names the brand is known by - abbreviations, alternate spellings, the domain. The actor counts a mention if ANY alias appears.
## `competitors` (type: `array`):

Competitor brand names to track alongside yours. The actor reports how often each competitor appears in the same answers - your Share of Voice.
## `category` (type: `string`):

Your product category, used to auto-generate realistic search prompts (e.g. note-taking app, CRM software). Ignored if you supply your own customPrompts.
## `promptSource` (type: `string`):

How to choose the questions asked to AI platforms. "default" uses auto-generated prompts based on category (controlled by maxPrompts). "custom" uses only the prompts you provide in customPrompts.
## `country` (type: `string`):

ISO 3166-1 alpha-2 country code (US, DE, FR, JP, RU, BR, ...). When set, default prompts include "in <Country>" and the effective language defaults to the country default unless overridden. Ignored when promptSource is "custom". Examples: US, DE, JP, BR.
## `language` (type: `string`):

ISO 639-1 language code for default prompts (en, de, fr, es, it, ru, pt, ja are built in; pl, tr, sv, no, da, fi, zh, ko, id, vi, th, he, ar, uk, cs, el, hu, ro, nl translate on the fly via LLM with caching). Leave empty to auto-pick from country. Ignored when promptSource is "custom". Examples: en, de, tr, zh.
## `customPrompts` (type: `array`):

Your own questions to ask the AI platforms. Used ONLY when promptSource is set to "custom". When promptSource is "default", this field is ignored.
## `platforms` (type: `array`):

Which AI platforms to check. chatgpt, gemini and perplexity answer WITH live web search (true AI search visibility). deepseek answers from model memory only - it shows whether the brand is well-known enough to be in training data.
## `maxPrompts` (type: `integer`):

How many prompts to run per platform (auto-generated + custom combined). Each prompt x platform x repeat = one paid check. Default 3 keeps Apify Store automated test within 5 minutes; raise to 5-10 for richer measurement.
## `repeatsPerPrompt` (type: `integer`):

How many times to ask each prompt. AI answers vary between runs. Leave at 1 for a quick single snapshot. Increase to 3-5 to MEASURE FREQUENCY: with 3 repeats you see whether your brand appears in 1/3, 2/3 or 3/3 answers. Higher values cost proportionally more.
## `enableFanOut` (type: `boolean`):

When enabled, an LLM generates additional "People Also Ask"-style follow-up questions for each main prompt (in the same language). Multiplies the number of checks: with default 3 main prompts and 3 sub-prompts each, you get 12 prompts per platform instead of 3. Each sub-prompt is billed as a separate check. Disabled by default to keep prompt sets predictable and runs fast.
## `subPromptsPerPrompt` (type: `integer`):

How many follow-up questions to generate per main prompt when fan-out is enabled. Default: 3. Range: 1-5.
## `responseDetail` (type: `string`):

summary stores a short excerpt around each brand mention. full stores the first 1200 characters of every AI answer.

## Actor input object example

```json
{
  "brandName": "Notion",
  "category": "note-taking app",
  "promptSource": "default",
  "platforms": [
    "chatgpt",
    "gemini",
    "perplexity",
    "deepseek"
  ],
  "maxPrompts": 3,
  "repeatsPerPrompt": 1,
  "enableFanOut": false,
  "subPromptsPerPrompt": 3,
  "responseDetail": "summary"
}
````

# 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 = {
    "brandName": "Notion",
    "category": "note-taking app"
};

// Run the Actor and wait for it to finish
const run = await client.actor("elder_contrabasson/ai-visibility-monitor").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 = {
    "brandName": "Notion",
    "category": "note-taking app",
}

# Run the Actor and wait for it to finish
run = client.actor("elder_contrabasson/ai-visibility-monitor").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 '{
  "brandName": "Notion",
  "category": "note-taking app"
}' |
apify call elder_contrabasson/ai-visibility-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI Visibility Monitor — ChatGPT, Gemini, Perplexity, DeepSeek",
        "description": "Track how often your brand appears in AI answers from ChatGPT, Gemini, Perplexity and DeepSeek. Measure visibility score, prominence, Share of Voice vs competitors, and cited sources. Built for GEO and AI search optimization.",
        "version": "0.0",
        "x-build-id": "ypzBB3etymVGBUDbx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/elder_contrabasson~ai-visibility-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-elder_contrabasson-ai-visibility-monitor",
                "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/elder_contrabasson~ai-visibility-monitor/runs": {
            "post": {
                "operationId": "runs-sync-elder_contrabasson-ai-visibility-monitor",
                "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/elder_contrabasson~ai-visibility-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-elder_contrabasson-ai-visibility-monitor",
                "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": [
                    "brandName"
                ],
                "properties": {
                    "brandName": {
                        "title": "Brand name",
                        "type": "string",
                        "description": "Your brand, product or company name to track (e.g. Notion, HubSpot). This is the primary name searched for in AI answers."
                    },
                    "brandAliases": {
                        "title": "Brand aliases (optional)",
                        "type": "array",
                        "description": "Other names the brand is known by - abbreviations, alternate spellings, the domain. The actor counts a mention if ANY alias appears.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "competitors": {
                        "title": "Competitors (optional)",
                        "type": "array",
                        "description": "Competitor brand names to track alongside yours. The actor reports how often each competitor appears in the same answers - your Share of Voice.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Product category",
                        "type": "string",
                        "description": "Your product category, used to auto-generate realistic search prompts (e.g. note-taking app, CRM software). Ignored if you supply your own customPrompts."
                    },
                    "promptSource": {
                        "title": "Prompt source",
                        "enum": [
                            "default",
                            "custom"
                        ],
                        "type": "string",
                        "description": "How to choose the questions asked to AI platforms. \"default\" uses auto-generated prompts based on category (controlled by maxPrompts). \"custom\" uses only the prompts you provide in customPrompts.",
                        "default": "default"
                    },
                    "country": {
                        "title": "Country (optional)",
                        "type": "string",
                        "description": "ISO 3166-1 alpha-2 country code (US, DE, FR, JP, RU, BR, ...). When set, default prompts include \"in <Country>\" and the effective language defaults to the country default unless overridden. Ignored when promptSource is \"custom\". Examples: US, DE, JP, BR."
                    },
                    "language": {
                        "title": "Language (optional)",
                        "type": "string",
                        "description": "ISO 639-1 language code for default prompts (en, de, fr, es, it, ru, pt, ja are built in; pl, tr, sv, no, da, fi, zh, ko, id, vi, th, he, ar, uk, cs, el, hu, ro, nl translate on the fly via LLM with caching). Leave empty to auto-pick from country. Ignored when promptSource is \"custom\". Examples: en, de, tr, zh."
                    },
                    "customPrompts": {
                        "title": "Custom prompts (optional)",
                        "type": "array",
                        "description": "Your own questions to ask the AI platforms. Used ONLY when promptSource is set to \"custom\". When promptSource is \"default\", this field is ignored.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "platforms": {
                        "title": "AI platforms to query",
                        "type": "array",
                        "description": "Which AI platforms to check. chatgpt, gemini and perplexity answer WITH live web search (true AI search visibility). deepseek answers from model memory only - it shows whether the brand is well-known enough to be in training data.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "chatgpt",
                                "gemini",
                                "perplexity",
                                "deepseek"
                            ],
                            "enumTitles": [
                                "ChatGPT (web search)",
                                "Gemini (web search)",
                                "Perplexity (web search)",
                                "DeepSeek (memory only)"
                            ]
                        },
                        "default": [
                            "chatgpt",
                            "gemini",
                            "perplexity",
                            "deepseek"
                        ]
                    },
                    "maxPrompts": {
                        "title": "Number of prompts",
                        "minimum": 1,
                        "maximum": 25,
                        "type": "integer",
                        "description": "How many prompts to run per platform (auto-generated + custom combined). Each prompt x platform x repeat = one paid check. Default 3 keeps Apify Store automated test within 5 minutes; raise to 5-10 for richer measurement.",
                        "default": 3
                    },
                    "repeatsPerPrompt": {
                        "title": "Repeats per prompt (frequency measurement)",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many times to ask each prompt. AI answers vary between runs. Leave at 1 for a quick single snapshot. Increase to 3-5 to MEASURE FREQUENCY: with 3 repeats you see whether your brand appears in 1/3, 2/3 or 3/3 answers. Higher values cost proportionally more.",
                        "default": 1
                    },
                    "enableFanOut": {
                        "title": "Enable fan-out (sub-prompts)",
                        "type": "boolean",
                        "description": "When enabled, an LLM generates additional \"People Also Ask\"-style follow-up questions for each main prompt (in the same language). Multiplies the number of checks: with default 3 main prompts and 3 sub-prompts each, you get 12 prompts per platform instead of 3. Each sub-prompt is billed as a separate check. Disabled by default to keep prompt sets predictable and runs fast.",
                        "default": false
                    },
                    "subPromptsPerPrompt": {
                        "title": "Sub-prompts per main prompt",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "How many follow-up questions to generate per main prompt when fan-out is enabled. Default: 3. Range: 1-5.",
                        "default": 3
                    },
                    "responseDetail": {
                        "title": "Response detail level",
                        "enum": [
                            "summary",
                            "full"
                        ],
                        "type": "string",
                        "description": "summary stores a short excerpt around each brand mention. full stores the first 1200 characters of every AI answer.",
                        "default": "summary"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
