# Loom Transcript Scraper (`scrapecraze/loom-transcript-scraper`) Actor

Loom Transcript Scraper extracts video transcripts, captions, titles, descriptions, and metadata from Loom videos. Perfect for content analysis, AI training, research, documentation, SEO optimization, meeting summaries, and workflow automation.

- **URL**: https://apify.com/scrapecraze/loom-transcript-scraper.md
- **Developed by:** [ScrapeCraze](https://apify.com/scrapecraze) (community)
- **Categories:** Automation, SEO tools, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 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

### Loom Transcript Scraper ⚡

Getting a Loom transcript out of each Loom link one by one is painfully slow, especially when you’re trying to reuse captions for notes, blogs, or research. **Loom Transcript Scraper** pulls transcripts directly from the Loom video URLs you provide, so you can export clean text data faster. This Loom transcript scraper and Loom video transcript downloader workflow is ideal for teams that need extract Loom transcripts at scale—marketing ops, researchers, and content teams alike. In one run, you can process multiple Loom links and get structured transcript phrases ready for downstream analysis.

---

### See the Data: Sample Output

Here's a real record from a single run:

```json
{
  "url": "https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5",
  "video_id": "e41353f2fe1c43eba6c6829693e0f2c5",
  "transcript": [
    {
      "start": 1.24,
      "value": "Welcome everyone—thanks for joining today."
    },
    {
      "start": 6.88,
      "value": "In this session, we'll walk through the main changes."
    }
  ],
  "transcript_count": 2,
  "status": true,
  "timestamp": "2026-06-07T12:34:56.789012"
}
````

If a video can’t be processed, the actor still writes a consistent record (with `status: false`) so your dataset stays usable:

```json
{
  "url": "https://www.loom.com/share/invalid-or-blocked-id",
  "video_id": "invalid-or-blocked-id",
  "transcript": [],
  "transcript_count": 0,
  "status": false,
  "used_proxy_type": "error",
  "timestamp": "2026-06-07T12:34:56.789012",
  "error_message": "Some request error message here"
}
```

| Field | Type | What It Tells You |
|---|---|---|
| `url` | string | The Loom video URL that was processed—useful for traceability back to the source |
| `video_id` | string | The Loom video identifier extracted from the URL |
| `transcript` | array | The transcript content as an array of timestamped phrases |
| `transcript_count` | number | Quick count of how many transcript phrases were captured |
| `status` | boolean | `true` if transcript data was fetched, `false` if it failed |
| `timestamp` | string | ISO timestamp of when the record was created in the dataset |
| `used_proxy_type` | string | Shows which path ended up being used when an error occurs (e.g., `"error"`) |
| `error_message` | string | Human-readable error details when the actor encounters a processing issue |

Export your full dataset as JSON, CSV, or Excel from the Apify dashboard.

***

### Setting It Up

Drop this into your `input.json` and you're ready to go:

```json
{
  "startUrls": [
    { "url": "https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5" },
    { "url": "https://www.loom.com/share/9a3b2c1d0e8f7a6b5c4d3e2f1a0b9c8d" }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

| Parameter | Required | What It Does |
|---|---:|---|
| `startUrls` | ✅ | A list of Loom video URLs to scrape. You can pass URLs as simple strings or as objects with a `url` field. |
| `proxyConfiguration` | ⬜ | Proxy settings for the scraper. If disabled, it will use direct connections and fall back automatically if Loom blocks requests. |
| ↳ `proxy support` | ⬜ | Set `true` to route requests through Apify Proxy (with automatic fallback behavior if needed). |

***

### What It Does

Loom Transcript Scraper fetches transcript phrases for each Loom link you provide and writes a structured result record into your Apify dataset.

#### Automatically extract Loom transcripts from share links

For every item in `startUrls`, the actor attempts to retrieve the transcript and returns it as an array of `{ start, value }` phrases. This makes the output ready for “Loom transcript to text” workflows and quick text analysis.

#### Built-in Loom transcript automation with timestamped phrases

The transcript is stored as timestamped phrases, so you can preserve the timing information while converting captions into usable text. This is especially helpful when you’re doing “parse Loom transcript text” for research, summaries, or recaps.

#### Clean output designed for export and analysis

Each processed Loom video produces one dataset entry with consistent fields like `url`, `video_id`, `transcript`, `transcript_count`, `status`, and `timestamp`. That structure makes it easy to filter failed runs and keep your pipeline stable.

#### Handles errors gracefully (and keeps dataset rows consistent)

If the actor can’t fetch a transcript, it still pushes a record with `transcript: []`, `transcript_count: 0`, and `status: false`. When available, you’ll also see `error_message` and `used_proxy_type` so you can decide whether to retry.

#### Proxy support for more reliable scraping at scale

Loom Transcript Scraper supports proxyConfiguration to improve reliability on larger batches. If direct connections fail due to blocking, the actor is designed to fall back automatically to keep your run moving.

Overall, Loom Transcript Scraper turns Loom captions into structured, exportable transcript data you can use immediately.

***

### Why Loom Transcript Scraper?

There are plenty of ways to pull data from Loom links—here’s why Loom Transcript Scraper stands out.

#### Faster than manual copy-paste

Instead of opening each Loom link and copying captions by hand, Loom Transcript Scraper processes multiple URLs and writes results to the dataset as it goes. That means less busywork and more time for actual analysis.

#### Reliable run behavior with fallbacks

If access is blocked or a request fails, the actor uses fallback logic and retry behavior so you don’t lose the entire batch to a single problem. You’ll still get consistent dataset records even when something doesn’t work for a given video.

#### Output that fits real workflows

The data is already structured as transcript phrases with `start` timestamps and `value` text. Whether you’re building a Loom transcript export tool, doing transcript AI tool preprocessing, or preparing content drafts, the format is ready to consume.

***

### Real-World Use Cases

Here's how different teams put Loom Transcript Scraper to work:

**Marketing teams**\
A marketer has 30 Loom recordings from client onboarding calls and needs cleaned transcript text for recap emails and blog drafts. They feed the Loom video URLs into Loom Transcript Scraper, export the dataset, and quickly filter the successful transcripts for reuse.

**Researchers & analysts**\
A researcher collects Loom video transcripts as evidence for a study and wants consistent timestamps plus the spoken text. With this Loom transcript scraper, they extract transcripts into a structured format that’s easier to analyze, quote, and reference.

**Sales enablement**\
An enablement lead wants to build a searchable knowledge base from product demos recorded in Loom. They run Loom video transcript downloader on a list of Loom share links and use the transcript phrases to speed up internal documentation.

**Automation specialists**\
A developer needs a repeatable pipeline that can take a batch of Loom links and push transcript outputs downstream for summarization. Loom Transcript Scraper fits into that automation by producing consistent JSON fields (`transcript`, `status`, `timestamp`) per video.

**Content creators**\
A creator uses captions as the starting point for scripts, show notes, and multi-platform content. They run Loom transcript automation on their Loom share links, export the transcript text, and reuse the timestamped phrases to assemble drafts faster.

***

### How to Run It

No code required. Here's how to get your first results in under 5 minutes:

1. **Open the actor on Apify**\
   Go to the actor page on Apify (console.apify.com) and open the Loom Transcript Scraper listing.

2. **Enter your Loom links**\
   Add one or more Loom video URLs into the `startUrls` field.

3. **Configure proxy settings (optional)**\
   If you have proxy preferences, set `proxyConfiguration` and `proxy support` accordingly.

4. **Start the run**\
   Click Run and watch the live log for progress as each Loom link is processed.

5. **Review results in the Dataset tab**\
   Open the dataset to see transcript entries appear while the run is still in progress.

6. **Export your data**\
   Download your results from the dataset tab in your preferred format (JSON, CSV, or Excel).

The whole setup takes under 5 minutes — results start appearing within seconds of launch.

***

### Export & Integration Options

Once your data is collected, Loom Transcript Scraper fits directly into your existing workflow.

Export formats are available directly from the Apify dataset tab, including JSON, CSV, or Excel. If you want to load results into a spreadsheet, CRM, or internal tool, this dataset structure is ready to move immediately.

You can also connect the actor to automation flows via Apify’s API and integrations like Zapier or Make, and trigger downstream steps using webhooks when runs complete. For scheduled runs, you can set the actor to run automatically on a recurring schedule through Apify.

***

### Pricing

Loom Transcript Scraper runs on Apify, which includes a **free tier** — no credit card needed to start. Free tier access typically provides `$5` platform credits on sign-up, enough to complete several real test runs. After that, pay-as-you-go runs are billed per Actor compute unit (CU), so there’s no monthly fee lock-in for ongoing use. Start free at [apify.com](https://apify.com) — scale up when you need to.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Rate-limit and access failures | Uses retry behavior and fallback logic to keep batch runs moving |
| Proxy connection failures | Detects proxy connection issues and triggers proxy fallback paths |
| Partial success within a batch | Writes a dataset row per video, so successful records aren’t lost |
| Error transparency | Provides `status: false` and, when available, `error_message` for troubleshooting |
| Timestamped transcript structure | Returns transcript phrases as `{ start, value }` arrays for consistent downstream use |

Limitations: This tool is designed to extract transcripts from Loom video links that are accessible for transcript fetching. If a given video can’t be processed, you’ll receive a dataset record with `transcript: []` and `status: false`.

For enterprise-scale needs or custom configurations, reach out and we'll help.

***

### Frequently Asked Questions

#### Is there a free plan?

Apify offers a free tier for Loom Transcript Scraper, which includes platform credits for testing. The exact availability depends on your Apify account and current plan.

#### Do I need to log in or create an account on Loom?

No, you can run Loom Transcript Scraper using the Loom video URLs you provide in `startUrls`. This actor is built to scrape transcript data from publicly accessible sources tied to those links.

#### How accurate is the extracted data?

The actor returns transcript phrases as provided by the transcript source it fetches for each video. Accuracy depends on what the transcript data contains for each Loom video.

#### How many results can I get per run?

You can submit multiple Loom URLs in the `startUrls` list and the actor processes them one by one, pushing a record for each URL. The practical number depends on your run size and platform compute allocation.

#### How fresh is the data?

The transcript data is fetched during your run, so it reflects what is available at the time it’s requested. If a transcript changes after you run, you’ll need to run again to refresh the dataset.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor collects transcript data from publicly available sources. It’s your responsibility to ensure your use complies with GDPR, CCPA, platform ToS, and any other applicable regulations.

#### Can I export to Google Sheets or Excel?

Yes. You can export your Apify dataset to JSON, CSV, or Excel from the dataset tab. From there, you can import into Google Sheets or other tools.

#### Can I schedule this to run automatically?

Yes. Apify supports scheduled runs so you can run Loom Transcript Scraper automatically on a recurring schedule. Check Apify’s scheduling options for the exact setup.

#### Can I access results via the API?

Yes. Apify provides API access to actors and their runs, so you can fetch dataset results programmatically. This makes it easy to integrate Loom transcript automation into larger pipelines.

#### What happens when the actor encounters an error?

If an error occurs for a specific video, the actor still pushes a dataset record with consistent fields such as `transcript: []`, `transcript_count: 0`, and `status: false`. When available, you’ll also see `error_message` to help diagnose what went wrong for that URL.

***

### Get Help & Use Responsibly

Got a question about Loom Transcript Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com>. We’re happy to help with run setup and ideas like better transcript formatting options or additional export-friendly fields.

**Disclaimer:** This actor works with **publicly available data**. It does not access private accounts, login-gated pages, or password-protected content. You’re responsible for compliance with GDPR, CCPA, and the Loom Terms of Service (and any applicable local regulations). For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

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

Enter one or more Loom video URLs (e.g., https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5).

## `proxyConfiguration` (type: `object`):

Proxy settings for the scraper. If disabled, will use direct connections with automatic fallback to datacenter and then residential proxies if Loom blocks requests.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapecraze/loom-transcript-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5" }],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapecraze/loom-transcript-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapecraze/loom-transcript-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Loom Transcript Scraper",
        "description": "Loom Transcript Scraper extracts video transcripts, captions, titles, descriptions, and metadata from Loom videos. Perfect for content analysis, AI training, research, documentation, SEO optimization, meeting summaries, and workflow automation.",
        "version": "0.1",
        "x-build-id": "XUScFqMOsscXfCey9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapecraze~loom-transcript-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapecraze-loom-transcript-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapecraze~loom-transcript-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapecraze-loom-transcript-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapecraze~loom-transcript-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapecraze-loom-transcript-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Loom Video URLs",
                        "type": "array",
                        "description": "Enter one or more Loom video URLs (e.g., https://www.loom.com/share/e41353f2fe1c43eba6c6829693e0f2c5).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings for the scraper. If disabled, will use direct connections with automatic fallback to datacenter and then residential proxies if Loom blocks requests.",
                        "default": {}
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
