# Instagram Transcript Scraper — Reels, Posts & IGTV to Text (`memo23/instagram-transcript-cheerio`) Actor

Transcribe Instagram Reels, posts & IGTV to text — even videos with no captions. Flat $0.05 per video, any length: no per-second metering. On-device Whisper ASR returns the full transcript, subtitle-style timestamps and creator metadata. Paste URLs, no login, 30+ languages. JSON/CSV out.

- **URL**: https://apify.com/memo23/instagram-transcript-cheerio.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** AI, Social media, Agents
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 transcript delivereds

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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Instagram Transcript Scraper — Reels, Posts & IGTV to Text

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/f8SgWMlVFM5dt0Mn5/records/card-2x" alt="Instagram Transcript Scraper — Reels, posts & IGTV to text with on-device Whisper AI" width="820">
</p>

Turn any public **Instagram Reel, video post or IGTV** into a clean, structured transcript. Paste video URLs, get back one row per video with the full spoken text, subtitle-style timestamped segments, and rich metadata — username, caption, likes, comments and more. Powered by on-device Whisper AI, 30+ languages, no login, JSON or CSV out. Flat **$0.05 per video, any length** — long Reels and IGTV don't cost extra.

### Why use this Instagram Transcript Scraper?

- **No Instagram login or cookies required** — works on any public reel/post/IGTV URL.
- **Real speech-to-text, not just captions** — Instagram exposes no caption track to the public, so this actor downloads each video's audio and transcribes it with Whisper AI. You get a transcript even when the creator never added captions.
- **Timestamped segments** — every transcript comes with a `segments` array (`start`, `end`, `text`) you can turn into subtitles or jump-to-moment links.
- **30+ languages** — set the language or let Whisper auto-detect it per video.
- **Rich metadata included** — username, display name, caption, like/comment counts, thumbnail and upload date alongside the transcript.
- **Pay per transcript** — one clear charge per delivered transcript; image-only or private posts are skipped free.

### What does it do?

Give it a list of Instagram video URLs. For each one the actor:

1. Resolves the public video and its metadata (cookieless).
2. Downloads the audio.
3. Runs on-device Whisper speech-to-text.
4. Pushes one row: metadata + full transcript + timestamped segments.

### Supported input

| Input | Example |
|-------|---------|
| Reel URL | `https://www.instagram.com/reel/Dabg9j1xNHM/` |
| Post URL (video) | `https://www.instagram.com/p/ABC123xyz/` |
| IGTV URL | `https://www.instagram.com/tv/ABC123xyz/` |

Image-only posts are detected and skipped (there is no audio to transcribe).

### Use cases

- **Content research & repurposing** — turn a creator's reels into searchable text, blog drafts or scripts.
- **Social listening & brand monitoring** — analyze what's actually *said* in videos, not just captions.
- **Accessibility** — generate subtitles/VTT from the timestamped segments.
- **Competitive & influencer analysis** — mine talking points, hooks and CTAs across many videos.
- **Dataset building** — collect speech transcripts for NLP, trend detection or LLM fine-tuning.

### How it works

<p align="center">
  <img src="https://api.apify.com/v2/key-value-stores/f8SgWMlVFM5dt0Mn5/records/how-it-works" alt="How the Instagram Transcript Scraper works — paste URLs, fetch audio, transcribe with on-device Whisper" width="820">
</p>

The actor uses `yt-dlp` to resolve each public Instagram video and pull its audio without any login, then transcribes the audio locally with **faster-whisper** (a fast CTranslate2 build of OpenAI Whisper). Because transcription runs on-device, your data never goes to a third-party API. Instagram traffic is routed through Apify Residential proxies by default.

### Input configuration

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `startUrls` | array | — (required) | Instagram reel/post/IGTV URLs to transcribe. |
| `whisperModel` | select | `tiny` | `tiny` (fast, reliable), `base` or `small` (more accurate, slower). |
| `language` | string | `auto` | ISO code (`en`, `es`, `ar`, …) or `auto` to detect per video. |
| `includeSegments` | boolean | `true` | Include the `segments` array of timestamped chunks. |
| `maxItems` | integer | `25` | Maximum videos to transcribe this run. |
| `maxDurationSec` | integer | `300` | Skip videos longer than this (compute guard). `0` disables. |
| `maxConcurrency` | integer | `2` | Videos transcribed in parallel (1–4). |
| `proxy` | object | Residential | Proxy configuration. |

#### Example input

```json
{
    "startUrls": [
        { "url": "https://www.instagram.com/reel/Dabg9j1xNHM/" }
    ],
    "whisperModel": "tiny",
    "language": "auto",
    "includeSegments": true,
    "maxItems": 25
}
````

### Output

One row per video. Example (abridged):

```json
{
    "id": "Dabg9j1xNHM",
    "shortcode": "Dabg9j1xNHM",
    "url": "https://www.instagram.com/reel/Dabg9j1xNHM/",
    "username": "nasaadmin",
    "userId": "79712351002",
    "fullName": "NASA Administrator Jared Isaacman",
    "caption": "For 250 years, America has inspired generations to dream bigger…",
    "durationSec": 58,
    "thumbnailUrl": "https://instagram.f…/735552979_….jpg",
    "timestamp": 1783294802,
    "uploadDate": "20260705",
    "likeCount": 56053,
    "commentCount": 1923,
    "viewCount": null,
    "isVideo": true,
    "transcript": "For 250 years, the United States of America has been the hope, the promise, the light and the glory of all the nations of the world…",
    "language": "en",
    "segments": [
        { "start": 0.46, "end": 5.46, "text": "For 250 years, the United States of America has been the hope" }
    ],
    "transcriptSource": "whisper",
    "whisperModel": "tiny",
    "transcribedAt": "2026-07-15T09:49:00.990Z"
}
```

### Key output fields

| Field | Description |
|-------|-------------|
| `transcript` | Full spoken text of the video. |
| `segments` | Array of `{start, end, text}` timestamped chunks (subtitle-ready). |
| `language` | Detected (or specified) spoken language. |
| `username` / `fullName` | Creator handle and display name. |
| `caption` | The post's written caption. |
| `likeCount` / `commentCount` | Engagement metrics when available. |
| `durationSec` | Video length in seconds. |
| `transcribedAt` | UTC timestamp of transcription. |

### FAQ

**What does it cost?** A flat $0.05 per transcribed video plus a $0.005 run start — a 10-minute IGTV costs the same as a 15-second Reel, timestamps and metadata included. Per-second-metered alternatives reach $0.30+ for a 5-minute video, and there are no paid speed or translation upgrades here. Skipped items (no audio) are never charged.

**Do I need an Instagram account or cookies?** No. The actor works on public videos without any login.

**Why not just read Instagram's captions?** Instagram does not expose a caption/subtitle track to logged-out clients. This actor transcribes the actual audio, so you get text even for videos the creator never captioned.

**What about image posts or carousels with no video?** They're detected and skipped (reported as skipped, not charged) — there is no audio to transcribe.

**Which languages are supported?** 30+ via Whisper. Set `language` for best speed/accuracy, or use `auto`.

**Why is `tiny` the default model?** It is ~5× faster than larger models and reliable on Apify's CPU. Use `base`/`small` for higher accuracy on clear speech; they are slower and can time out on long videos.

### Support

- **Found a bug or need a new field?** Open a ticket on the **Issues** tab of this actor — it's the fastest way to reach me and I actively maintain this scraper.
- **Email:** <muhamed.didovic@gmail.com>
- **Website:** [muhamed-didovic.github.io](https://muhamed-didovic.github.io/)

### Additional Services

Need something beyond the standard output? I build and maintain custom scrapers and data pipelines. Happy to help with:

- Transcripts from other platforms (TikTok, YouTube, Douyin) in the same output shape
- Scheduled, incremental transcript feeds wired into your CMS, data warehouse, or vector store
- Custom fields, summaries, translations, or export formats tailored to your workflow
- Private or dedicated actors for high-volume or compliance-sensitive use

Reach out via the Issues tab or email and describe what you need.

### Explore More Scrapers

More of my actors in the same space:

- [Social Video Transcript Scraper](https://apify.com/memo23/tiktok-profile-videos-cheerio) — transcribe TikTok **and** Instagram videos in one run, same Whisper pipeline
- [Douyin Scraper](https://apify.com/memo23/douyin-scraper) — Chinese TikTok profiles, videos and search
- [YouTube Shorts Scraper](https://apify.com/memo23/youtube-shorts-scraper) — Shorts metadata at scale
- [Instagram Profile Scraper](https://apify.com/memo23/apify-instagram-profile-scraper-ppe) — profiles, followers, bio and contact data

Browse the full catalog — job boards, business directories, review sites, social platforms — on my profile: [memo23 on Apify](https://apify.com/memo23).

### ⚠️ Disclaimer

This actor collects only publicly available data from Instagram and is intended for lawful uses such as research, accessibility and content analysis. You are responsible for how you use the output, including compliance with Instagram's Terms of Service, applicable copyright, and data-protection laws (e.g. GDPR/CCPA) where relevant. Do not use transcripts to infringe copyright or process personal data unlawfully.

### SEO Keywords

Instagram transcript scraper, Instagram reel transcript, Instagram video to text, transcribe Instagram reels, Instagram speech to text, Instagram captions scraper, IGTV transcript, Instagram subtitles generator, Whisper Instagram, Instagram audio transcription, Instagram reels text extractor, social media transcription, Instagram AI transcript extractor, reel to text converter, Instagram video transcription API, extract text from Instagram videos, Instagram content analysis, Instagram VTT subtitles, bulk Instagram transcription, Instagram NLP dataset, influencer content research, no-code Instagram scraper.

# Actor input Schema

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

One or more Instagram <b>Reel</b>, <b>post</b> (/p/) or <b>IGTV</b> (/tv/) URLs, e.g. <code>https://www.instagram.com/reel/Dabg9j1xNHM/</code>. Each video's audio is downloaded and transcribed. Image-only posts are skipped (nothing to transcribe).

## `whisperModel` (type: `string`):

<b>tiny</b> (default) is ~5× faster and reliable on Apify's CPU. <b>base</b>/<b>small</b> are more accurate but slower and can time out on longer videos.

## `language` (type: `string`):

Spoken language of the videos as an ISO code (e.g. <code>en</code>, <code>es</code>, <code>ar</code>), or <code>auto</code> to let Whisper detect it per video. Setting the correct language is faster and more accurate than auto-detect.

## `includeSegments` (type: `boolean`):

When enabled (default), each row includes a <code>segments</code> array of <code>{start, end, text}</code> chunks (subtitle-style timings) in addition to the full <code>transcript</code> string. Disable for a smaller, text-only output.

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

Maximum number of videos to transcribe this run. Transcription is the slow/costly step, so start small.

## `maxDurationSec` (type: `integer`):

Videos longer than this are skipped (a guard so one very long video can't burn minutes of compute). Default 300 (5 min); set 0 to disable.

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

How many videos to transcribe in parallel. Each Whisper pass is CPU-heavy, so 1–2 is safest on standard Apify runners; higher can time out.

## `proxy` (type: `object`):

By default the actor routes Instagram traffic through Apify Residential proxies. Only change this if you need a specific country or your own proxies.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.instagram.com/reel/Dabg9j1xNHM/"
    }
  ],
  "whisperModel": "tiny",
  "language": "auto",
  "includeSegments": true,
  "maxItems": 25,
  "maxDurationSec": 300,
  "maxConcurrency": 2,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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.instagram.com/reel/Dabg9j1xNHM/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/instagram-transcript-cheerio").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.instagram.com/reel/Dabg9j1xNHM/" }] }

# Run the Actor and wait for it to finish
run = client.actor("memo23/instagram-transcript-cheerio").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.instagram.com/reel/Dabg9j1xNHM/"
    }
  ]
}' |
apify call memo23/instagram-transcript-cheerio --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Transcript Scraper — Reels, Posts & IGTV to Text",
        "description": "Transcribe Instagram Reels, posts & IGTV to text — even videos with no captions. Flat $0.05 per video, any length: no per-second metering. On-device Whisper ASR returns the full transcript, subtitle-style timestamps and creator metadata. Paste URLs, no login, 30+ languages. JSON/CSV out.",
        "version": "0.0",
        "x-build-id": "SqNc6QZXKVmVkxE9j"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~instagram-transcript-cheerio/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-instagram-transcript-cheerio",
                "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/memo23~instagram-transcript-cheerio/runs": {
            "post": {
                "operationId": "runs-sync-memo23-instagram-transcript-cheerio",
                "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/memo23~instagram-transcript-cheerio/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-instagram-transcript-cheerio",
                "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": "Instagram video URLs",
                        "type": "array",
                        "description": "One or more Instagram <b>Reel</b>, <b>post</b> (/p/) or <b>IGTV</b> (/tv/) URLs, e.g. <code>https://www.instagram.com/reel/Dabg9j1xNHM/</code>. Each video's audio is downloaded and transcribed. Image-only posts are skipped (nothing to transcribe).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "whisperModel": {
                        "title": "Whisper model",
                        "enum": [
                            "tiny",
                            "base",
                            "small"
                        ],
                        "type": "string",
                        "description": "<b>tiny</b> (default) is ~5× faster and reliable on Apify's CPU. <b>base</b>/<b>small</b> are more accurate but slower and can time out on longer videos.",
                        "default": "tiny"
                    },
                    "language": {
                        "title": "Language",
                        "type": "string",
                        "description": "Spoken language of the videos as an ISO code (e.g. <code>en</code>, <code>es</code>, <code>ar</code>), or <code>auto</code> to let Whisper detect it per video. Setting the correct language is faster and more accurate than auto-detect.",
                        "default": "auto"
                    },
                    "includeSegments": {
                        "title": "Include timestamped segments",
                        "type": "boolean",
                        "description": "When enabled (default), each row includes a <code>segments</code> array of <code>{start, end, text}</code> chunks (subtitle-style timings) in addition to the full <code>transcript</code> string. Disable for a smaller, text-only output.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Max videos",
                        "type": "integer",
                        "description": "Maximum number of videos to transcribe this run. Transcription is the slow/costly step, so start small.",
                        "default": 25
                    },
                    "maxDurationSec": {
                        "title": "Skip videos longer than (seconds)",
                        "type": "integer",
                        "description": "Videos longer than this are skipped (a guard so one very long video can't burn minutes of compute). Default 300 (5 min); set 0 to disable.",
                        "default": 300
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 4,
                        "type": "integer",
                        "description": "How many videos to transcribe in parallel. Each Whisper pass is CPU-heavy, so 1–2 is safest on standard Apify runners; higher can time out.",
                        "default": 2
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "By default the actor routes Instagram traffic through Apify Residential proxies. Only change this if you need a specific country or your own proxies.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
