# Figma MCP Server (`dramatic_jonquil/figma-mcp-server`) Actor

Production-grade MCP server connecting AI agents to Figma. 30 tools: file reads, asset exports (PNG/SVG/PDF), component search, design-system audits, Claude 4.7 vision analysis, WCAG compliance, and React+Tailwind code generation. Works with Claude Desktop, Cursor, Windsurf, ChatGPT.

- **URL**: https://apify.com/dramatic\_jonquil/figma-mcp-server.md
- **Developed by:** [Alex Mercer](https://apify.com/dramatic_jonquil) (community)
- **Categories:** AI, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

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

## Figma MCP Server — The AI-Native Bridge to Figma

**Turn any AI into a Figma power-user.** One Model Context Protocol (MCP) server. 24+ Figma tools. Zero setup friction.

> Plug this Actor into Claude Desktop, Cursor, Windsurf, Zed, ChatGPT Desktop, or any MCP-compatible client and your AI instantly gains the ability to read, analyze, export, comment on, and transform Figma designs — with full Claude 4.7 vision support.

---

### Why this Actor

- **Drop-in for every major AI client** — one URL, done.
- **24+ Figma tools** — files, nodes, components, variables, styles, comments, exports, dev resources, branches.
- **Claude 4.7 vision** — WCAG 2.2 AA audits, component documentation, design critique, and layout analysis from real frame pixels.
- **Design-system insights** — quantitative reports on component usage, token consistency, and style fragmentation.
- **Design → Code** — generate React + Tailwind scaffolds and W3C design tokens.
- **Production-grade** — queue-based rate limiting, exponential backoff with jitter, OAuth refresh, redacted logs, observability records in every dataset push.
- **Three modes** — long-running MCP server, single command, batch pipeline.

---

### Quickstart

#### 1. Run on Apify (MCP server mode)

```json
{
  "mode": "mcp-server",
  "figmaToken": "figd_XXXXXXXXX",
  "enableVision": true,
  "anthropicApiKey": "sk-ant-XXXXXXXX",
  "persistSession": true
}
````

Start the Actor and copy the Container URL from the run detail (e.g. `https://abcd-xyz.apify.actor`).

#### 2. Connect Claude Desktop

Edit `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "figma": {
      "type": "http",
      "url": "https://abcd-xyz.apify.actor/mcp",
      "headers": { "Authorization": "Bearer <APIFY_API_TOKEN>" }
    }
  }
}
```

Restart Claude. The 24+ Figma tools are now available.

#### 3. Talk to your designs

> *"Open Figma file `abc123`, summarize the design system, list the top 10 most-used components, and post a comment on frame `42:99` suggesting contrast fixes."*

Claude will chain `figma.getFile` → `insights.designSystemReport` → `insights.componentUsage` → `vision.wcagAudit` → `figma.postComment` automatically.

***

### Tools

| Category | Tool | Purpose |
|---|---|---|
| Files | `figma.getFile` | Compact file summary |
| | `figma.getFileNodes` | Specific node subtrees |
| | `figma.getFileVersions` | Version history |
| | `figma.getBranches` | Branch list |
| Library | `figma.getFileComponents` | All components |
| | `figma.getFileComponentSets` | Component sets (variants) |
| | `figma.getFileStyles` | Shared styles |
| | `figma.getFileVariables` | Local variables/tokens |
| | `figma.searchComponents` | Fuzzy component search |
| Projects | `figma.getTeamProjects` | List team projects |
| | `figma.getProjectFiles` | List project files |
| | `figma.getMe` | Current Figma user |
| Exports | `figma.exportImages` | PNG/SVG/PDF/JPG URLs |
| | `figma.exportAssetsBatch` | Batch export to key-value store |
| Comments | `figma.getComments` | List |
| | `figma.postComment` | Create |
| | `figma.replyToComment` | Reply |
| | `figma.resolveComment` | Mark resolved |
| | `figma.deleteComment` | Delete |
| Dev | `figma.getDevResources` | Attached dev links |
| Vision | `vision.analyzeFrame` | Layout/typography/color analysis |
| | `vision.wcagAudit` | WCAG 2.2 AA audit |
| | `vision.componentDoc` | Storybook-style docs |
| | `vision.designCritique` | Principal-designer critique |
| Insights | `insights.designSystemReport` | DS health report |
| | `insights.componentUsage` | Component usage ranking |
| | `insights.tokenConsistency` | Color/size fragmentation |
| Transform | `transform.toReactTailwind` | Node → React+Tailwind |
| | `transform.toDesignTokens` | W3C / Style Dictionary / CSS / Tailwind |
| | `handoff.generateSpecs` | Dev handoff specs |

***

### Use cases

#### Designers

- *"Audit every screen in this file for WCAG AA and give me a ranked fix list."*
- *"Summarize unresolved comments and draft empathetic replies."*
- *"Export every icon in the `Icons/` page as optimized SVGs, prefixed `ic-`."*

#### Dev teams

- *"Generate React + Tailwind components for every variant in the Button set."*
- *"Produce W3C design tokens from this file's variables."*
- *"Write dev-handoff specs (geometry, fills, typography) for frame `12:345`."*

#### AI/agent builders

- Drop-in Figma capability for any MCP agent — no custom SDK work.
- Structured JSON outputs, strict types, stable schemas.

#### Design agencies

- Batch multi-file audits: run the Actor in `batch` mode across 20 client files in one run.
- Consolidated reports in the Apify dataset.

***

### Security

- `figmaToken` and `anthropicApiKey` are stored as Apify secrets and never logged.
- Automatic token redaction in all dataset records and stdout.
- OAuth refresh path with client ID/secret support.
- Dedicated undici agent with connection pooling; strict request timeouts.

***

### Inputs

See `input_schema.json` for full details. Highlights:

| Field | Required | Default |
|---|---|---|
| `mode` | yes | — |
| `figmaToken` or `figmaOAuthToken` | yes | — |
| `command` / `args` | for `mode=command` | — |
| `batch` | for `mode=batch` | — |
| `enableVision` | no | `false` |
| `anthropicApiKey` | when `enableVision=true` | — |
| `visionModel` | no | `claude-opus-4-7` |
| `maxConcurrency` | no | `2` |
| `requestTimeoutMs` | no | `30000` |
| `maxRetries` | no | `5` |

***

### Pricing

Pay-per-event:

| Event | Price |
|---|---|
| Read operation | $0.005 |
| Asset export | $0.02 |
| Vision analysis | $0.05 |
| Batch job (<=500 ops) | $0.10 |

**Free tier:** 50 operations/month.

***

### Example: single command

```json
{
  "mode": "command",
  "figmaToken": "figd_XXXX",
  "command": "figma.exportAssetsBatch",
  "args": {
    "fileKey": "Qw8z9x7y",
    "nodeIds": ["1:234", "1:235", "1:236"],
    "format": "svg",
    "scale": 2,
    "folderPrefix": "icons/"
  }
}
```

### Example: batch pipeline

```json
{
  "mode": "batch",
  "figmaToken": "figd_XXXX",
  "enableVision": true,
  "anthropicApiKey": "sk-ant-XXXX",
  "batch": [
    { "command": "insights.designSystemReport", "args": { "fileKey": "Qw8z9x7y" }, "label": "DS health" },
    { "command": "insights.componentUsage",     "args": { "fileKey": "Qw8z9x7y" }, "label": "usage" },
    { "command": "vision.wcagAudit",            "args": { "fileKey": "Qw8z9x7y", "nodeId": "42:99", "scale": 2 }, "label": "a11y" },
    { "command": "transform.toDesignTokens",    "args": { "fileKey": "Qw8z9x7y", "format": "w3c" }, "label": "tokens" }
  ]
}
```

***

### Keywords

figma, mcp, model context protocol, claude, claude desktop, cursor, windsurf, chatgpt, design automation, design tokens, wcag, accessibility, design to code, react, tailwind, storybook, design system, figma api, design to dev handoff, apify mcp, ai design tools, vision ai, anthropic

***

### License

Apache-2.0.

# Actor input Schema

## `mode` (type: `string`):

mcp-server: long-running HTTP MCP endpoint (connect Claude/Cursor/Windsurf). command: one-shot tool call. batch: array of tool calls executed sequentially.

## `figmaToken` (type: `string`):

Create at figma.com/developers/api#access-tokens. Used unless OAuth token is provided.

## `figmaOAuthToken` (type: `string`):

Optional OAuth 2.0 access token. Overrides figmaToken when provided.

## `figmaRefreshToken` (type: `string`):

Optional OAuth refresh token. Enables automatic token refresh on 401 responses.

## `figmaOAuthClientId` (type: `string`):

OAuth app Client ID — required only if figmaRefreshToken is provided.

## `figmaOAuthClientSecret` (type: `string`):

OAuth app Client Secret — required only if figmaRefreshToken is provided.

## `command` (type: `string`):

Tool name (e.g. figma.getFile, vision.wcagAudit, transform.toReactTailwind). Required when mode=command.

## `args` (type: `object`):

Arguments object for the command. See README for per-tool shape (fileKey, nodeIds, etc.).

## `batch` (type: `array`):

Array of {command, args, label?} entries to execute sequentially when mode=batch.

## `enableVision` (type: `boolean`):

Unlock vision.\* tools (WCAG audit, component docs, design critique). Requires anthropicApiKey.

## `anthropicApiKey` (type: `string`):

Required when enableVision=true. Get one at console.anthropic.com.

## `visionModel` (type: `string`):

Claude model used for vision analysis. Opus 4.7 = highest quality; Haiku 4.5 = fastest/cheapest.

## `maxConcurrency` (type: `integer`):

Concurrent Figma API calls. Figma throttles aggressively — keep this at 2 unless you have enterprise quota.

## `requestTimeoutMs` (type: `integer`):

Per-request timeout in milliseconds.

## `maxRetries` (type: `integer`):

Max retry attempts on 429/5xx with exponential backoff + jitter.

## `verboseLogging` (type: `boolean`):

Enable DEBUG-level logs for observability and troubleshooting.

## `persistSession` (type: `boolean`):

Persist MCP session IDs across requests so AI clients can resume multi-step tasks.

## `defaultExport` (type: `object`):

Defaults merged into every figma.exportImages / figma.exportAssetsBatch call when fields are omitted.

## Actor input object example

```json
{
  "mode": "mcp-server",
  "enableVision": false,
  "visionModel": "claude-opus-4-7",
  "maxConcurrency": 2,
  "requestTimeoutMs": 30000,
  "maxRetries": 5,
  "verboseLogging": false,
  "persistSession": true,
  "defaultExport": {
    "format": "svg",
    "scale": 2,
    "useAbsoluteBounds": false
  }
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("dramatic_jonquil/figma-mcp-server").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("dramatic_jonquil/figma-mcp-server").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 '{}' |
apify call dramatic_jonquil/figma-mcp-server --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Figma MCP Server",
        "description": "Production-grade MCP server connecting AI agents to Figma. 30 tools: file reads, asset exports (PNG/SVG/PDF), component search, design-system audits, Claude 4.7 vision analysis, WCAG compliance, and React+Tailwind code generation. Works with Claude Desktop, Cursor, Windsurf, ChatGPT.",
        "version": "1.0",
        "x-build-id": "dbLtOCJHDEdFa3Vwi"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dramatic_jonquil~figma-mcp-server/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dramatic_jonquil-figma-mcp-server",
                "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/dramatic_jonquil~figma-mcp-server/runs": {
            "post": {
                "operationId": "runs-sync-dramatic_jonquil-figma-mcp-server",
                "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/dramatic_jonquil~figma-mcp-server/run-sync": {
            "post": {
                "operationId": "run-sync-dramatic_jonquil-figma-mcp-server",
                "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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Run mode",
                        "enum": [
                            "mcp-server",
                            "command",
                            "batch"
                        ],
                        "type": "string",
                        "description": "mcp-server: long-running HTTP MCP endpoint (connect Claude/Cursor/Windsurf). command: one-shot tool call. batch: array of tool calls executed sequentially.",
                        "default": "mcp-server"
                    },
                    "figmaToken": {
                        "title": "Figma Personal Access Token",
                        "type": "string",
                        "description": "Create at figma.com/developers/api#access-tokens. Used unless OAuth token is provided."
                    },
                    "figmaOAuthToken": {
                        "title": "Figma OAuth Access Token",
                        "type": "string",
                        "description": "Optional OAuth 2.0 access token. Overrides figmaToken when provided."
                    },
                    "figmaRefreshToken": {
                        "title": "Figma OAuth Refresh Token",
                        "type": "string",
                        "description": "Optional OAuth refresh token. Enables automatic token refresh on 401 responses."
                    },
                    "figmaOAuthClientId": {
                        "title": "Figma OAuth Client ID",
                        "type": "string",
                        "description": "OAuth app Client ID — required only if figmaRefreshToken is provided."
                    },
                    "figmaOAuthClientSecret": {
                        "title": "Figma OAuth Client Secret",
                        "type": "string",
                        "description": "OAuth app Client Secret — required only if figmaRefreshToken is provided."
                    },
                    "command": {
                        "title": "Command",
                        "type": "string",
                        "description": "Tool name (e.g. figma.getFile, vision.wcagAudit, transform.toReactTailwind). Required when mode=command."
                    },
                    "args": {
                        "title": "Args",
                        "type": "object",
                        "description": "Arguments object for the command. See README for per-tool shape (fileKey, nodeIds, etc.)."
                    },
                    "batch": {
                        "title": "Batch operations",
                        "type": "array",
                        "description": "Array of {command, args, label?} entries to execute sequentially when mode=batch."
                    },
                    "enableVision": {
                        "title": "Enable Claude vision analysis",
                        "type": "boolean",
                        "description": "Unlock vision.* tools (WCAG audit, component docs, design critique). Requires anthropicApiKey.",
                        "default": false
                    },
                    "anthropicApiKey": {
                        "title": "Anthropic API Key",
                        "type": "string",
                        "description": "Required when enableVision=true. Get one at console.anthropic.com."
                    },
                    "visionModel": {
                        "title": "Vision model",
                        "enum": [
                            "claude-opus-4-7",
                            "claude-sonnet-4-6",
                            "claude-haiku-4-5-20251001"
                        ],
                        "type": "string",
                        "description": "Claude model used for vision analysis. Opus 4.7 = highest quality; Haiku 4.5 = fastest/cheapest.",
                        "default": "claude-opus-4-7"
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Concurrent Figma API calls. Figma throttles aggressively — keep this at 2 unless you have enterprise quota.",
                        "default": 2
                    },
                    "requestTimeoutMs": {
                        "title": "Request timeout (ms)",
                        "minimum": 1000,
                        "maximum": 120000,
                        "type": "integer",
                        "description": "Per-request timeout in milliseconds.",
                        "default": 30000
                    },
                    "maxRetries": {
                        "title": "Max retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Max retry attempts on 429/5xx with exponential backoff + jitter.",
                        "default": 5
                    },
                    "verboseLogging": {
                        "title": "Verbose logs",
                        "type": "boolean",
                        "description": "Enable DEBUG-level logs for observability and troubleshooting.",
                        "default": false
                    },
                    "persistSession": {
                        "title": "Persist session",
                        "type": "boolean",
                        "description": "Persist MCP session IDs across requests so AI clients can resume multi-step tasks.",
                        "default": true
                    },
                    "defaultExport": {
                        "title": "Default export settings",
                        "type": "object",
                        "description": "Defaults merged into every figma.exportImages / figma.exportAssetsBatch call when fields are omitted.",
                        "default": {
                            "format": "svg",
                            "scale": 2,
                            "useAbsoluteBounds": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
