# Instagram Scraper — Profiles, Posts, Reels & Hashtags (`dltik/instagram-scraper`) Actor

Scrape Instagram profiles, posts, reels and hashtags with no browser. Get followers, likes, comments, video views, captions, hashtags, mentions, music and media URLs. Residential proxy recommended.

- **URL**: https://apify.com/dltik/instagram-scraper.md
- **Developed by:** [Walid](https://apify.com/dltik) (community)
- **Categories:** Social media, Marketing, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.02 / actor start

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Instagram Scraper — Profiles, Posts, Reels, Comments, Hashtags & Search

> Scrape Instagram profiles, posts, reels, hashtags, comments and search results — no account setup, residential proxy included. Get followers, likes, views, captions, business email/phone, tagged users and locations as clean JSON.

⭐ **Bookmark this actor** to keep it on top of your Apify dashboard.

### What is the Instagram Scraper?

The **Instagram Scraper** extracts public data from [Instagram](https://www.instagram.com) at scale and returns it as structured JSON or CSV. Point it at usernames, post URLs, hashtags or search queries and get profiles (with business email, phone and category for creator/business accounts), posts and reels (likes, comments, views, caption, hashtags, tagged users, location, carousel children), post comments, and discovery search for users, hashtags and places. A residential proxy is bundled and rotates IPs automatically, so the **Instagram Scraper** works out of the box without you configuring proxies or logging in for the core modes.

### Use cases

- **Influencer marketing**: Pull follower counts, engagement and business contact details (email + phone) to build creator shortlists.
- **Social listening & brand monitoring**: Track posts and comments on a hashtag or profile to measure sentiment and reach.
- **Lead generation**: Extract public `business_email` and `business_phone_number` from creator/business profiles for outreach.
- **Competitor research**: Monitor a competitor's reels, engagement and posting cadence over time.
- **Trend discovery**: Use the `search` and `hashtags` modes to find rising accounts, tags and places in a niche.

### Input

Set a `mode` (`profiles`, `posts`, `reels`, `hashtags`, `comments`, `search`) and a list of `inputs`. Full reference is in the input schema. Minimal example:

```json
{
  "mode": "profiles",
  "inputs": ["natgeo", "nike"],
  "maxResultsPerInput": 50
}
````

Filters like `onlyPostsNewerThan` and `skipPinnedPosts` trim results (and proxy cost). The `comments` and `search` modes reach deeper endpoints that Instagram now gates behind a login — supply `sessionCookies` from your logged-in session to unlock them.

### Output

One record per profile, post, reel, comment or search hit. A trimmed post example:

```json
{
  "type": "post",
  "shortcode": "C8xY1zAbCdE",
  "owner_username": "natgeo",
  "caption": "...",
  "like_count": 128940,
  "comment_count": 812,
  "video_view_count": null,
  "taken_at": "2026-06-30T14:02:11Z",
  "hashtags": ["wildlife", "photography"],
  "tagged_users": ["joelsartore"],
  "location": { "name": "Serengeti", "id": "212988663" },
  "is_paid_partnership": false,
  "display_url": "https://..."
}
```

### Pricing

This actor uses **PAY\_PER\_EVENT**: **$0.02 per run** (Actor start) + **$0.0015 per result** ($1.50 / 1,000 records). Login-walled runs, instruction rows and the bookmark CTA are never charged, and there is no charge for failed runs.

### Automate & schedule

Schedule the **Instagram Scraper** to run daily or weekly for fresh engagement data, or wire it to Google Sheets, Slack, a webhook or your CRM through Apify integrations. Recurring runs keep your influencer lists and competitor metrics current — set it once and forget it.

### FAQ

**Is there an official Instagram API, and is it free?** Instagram's Graph API only covers accounts you own or manage and requires app review. This actor reads public data from any public profile, post or hashtag with no app registration.

**Can I scrape Instagram without logging in?** Yes — `profiles`, `reels` and `hashtags` run anonymously through the bundled residential proxy. `comments`, `search` and single-post lookups now require `sessionCookies` because Instagram gates those endpoints.

**How do I get an Instagram profile's email and phone?** Creator and business accounts expose `business_email`, `business_phone_number` and `category` in the profile record — this actor surfaces them automatically when Instagram publishes them.

**What are the best alternatives to the official Instagram API?** An Apify actor like this one is the usual alternative: no account, no app review, pay only for what you extract.

**Does it get rate limited?** The bundled residential proxy rotates exit IPs on every run and retries on a fresh IP if Instagram serves a checkpoint, so most runs complete without intervention.

***

⭐ **Found this useful? Bookmark it** — Apify ranks actors by bookmarks, and the more you bookmark, the more you support the dev.

#### Related actors

- [TikTok Scraper](https://apify.com/dltik/tiktok-scraper) — profiles, videos, hashtags, trending
- [Pinterest Scraper](https://apify.com/dltik/pinterest-scraper) — pins, boards and rich metadata
- [TikTok Video Downloader](https://apify.com/dltik/tiktok-video-downloader) — no-watermark HD downloads

# Actor input Schema

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

What to scrape from Instagram. 'profiles' returns the profile (with business email/phone, category, bio links) plus recent posts for each username. 'posts' returns full data for each post/reel URL or shortcode (tagged users, location, paid-partnership, carousel children). 'reels' returns a profile's reels (or a hashtag's reels). 'hashtags' returns top/recent posts for each hashtag. 'comments' returns the comments (and optional replies) of each post/reel. 'search' discovers users, hashtags or places matching each query string.

## `inputs` (type: `array`):

Usernames for 'profiles' and 'reels' (e.g. \['natgeo','nasa']), post/reel URLs or shortcodes for 'posts' and 'comments' (e.g. \['https://www.instagram.com/p/C1abcdEFghi/'] or \['C1abcdEFghi']), hashtag names for 'hashtags' (e.g. \['travel','food']), or free-text query strings for 'search' (e.g. \['coffee shop','nasa']). For 'reels' you may also pass a hashtag by prefixing '#'.

## `commentsLimit` (type: `integer`):

Maximum number of top-level comments to fetch per post in 'comments' mode. Each delivered comment is one billed result. Replies (when 'includeReplies' is on) are nested under their parent comment and are NOT billed separately. Ignored in other modes.

## `includeReplies` (type: `boolean`):

When enabled in 'comments' mode, also fetch the threaded replies (child comments) of each top-level comment and nest them under its 'replies' field. This makes extra requests and consumes more proxy bandwidth. Ignored in other modes.

## `searchType` (type: `string`):

What to return in 'search' mode. 'top' returns a blended mix of users, hashtags and places. 'user' returns only user/account matches. 'hashtag' returns only hashtag matches. 'place' returns only location/place matches. Ignored in other modes.

## `onlyPostsNewerThan` (type: `string`):

Keep only posts on or after this date (applies to 'profiles', 'reels' and 'hashtags' modes). Accepts an absolute date 'YYYY-MM-DD' (e.g. '2025-01-01') or a relative window like '7 days', '2 weeks', '3 months', '1 year'. Older posts are dropped and pagination stops early to save proxy bandwidth. Leave empty to disable.

## `skipPinnedPosts` (type: `boolean`):

When enabled, drop posts that the account pinned to the top of its grid (applies to 'profiles', 'reels' and 'hashtags' modes). Useful when you only want the natural reverse-chronological feed.

## `maxResultsPerInput` (type: `integer`):

Maximum posts/reels to return per input (per username or per hashtag). Ignored in 'posts' mode (one record per URL). Higher values paginate deeper and consume more residential-proxy bandwidth.

## `customProxyUrl` (type: `string`):

STRONGLY RECOMMENDED for reliable results. This target edge-blocks the shared Apify residential pool (anti-bot challenge / login-wall). When set, this single premium-unblocker URL is used as the ONLY proxy (no rotation — the unblocker handles IPs + challenge solving). Format: http://user:pass@host:port. Works with Bright Data Web Unlocker, Oxylabs Web Unblocker, ScraperAPI (proxy mode), ZenRows. Leave empty to fall back to the Apify proxy below.

## `proxyConfig` (type: `object`):

Proxy settings. Instagram blocks datacenter IPs, so a RESIDENTIAL proxy is strongly recommended: set {"useApifyProxy": true, "apifyProxyGroups": \["RESIDENTIAL"]}. Without it you will likely hit a login-wall and get an instructions record instead of data.

## `sessionCookies` (type: `array`):

Optional Instagram session cookies to raise rate limits and unlock more results. In Chrome DevTools -> Application -> Cookies on instagram.com, copy at least sessionid, csrftoken and ds\_user\_id. Format: \[{"name": "sessionid", "value": "..."}, {"name": "csrftoken", "value": "..."}]. Leave empty to run unauthenticated (residential proxy then recommended).

## Actor input object example

```json
{
  "mode": "profiles",
  "inputs": [
    "natgeo"
  ],
  "commentsLimit": 50,
  "includeReplies": false,
  "searchType": "top",
  "skipPinnedPosts": false,
  "maxResultsPerInput": 30,
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "sessionCookies": []
}
```

# Actor output Schema

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

Dataset containing Instagram post/reel records (shortcode, caption, likes, comments, video views, taken\_at, owner, hashtags, mentions, music, media URLs) and profile records (followers, following, bio, verified status).

# 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 = {
    "inputs": [
        "natgeo"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("dltik/instagram-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 = { "inputs": ["natgeo"] }

# Run the Actor and wait for it to finish
run = client.actor("dltik/instagram-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 '{
  "inputs": [
    "natgeo"
  ]
}' |
apify call dltik/instagram-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Scraper — Profiles, Posts, Reels & Hashtags",
        "description": "Scrape Instagram profiles, posts, reels and hashtags with no browser. Get followers, likes, comments, video views, captions, hashtags, mentions, music and media URLs. Residential proxy recommended.",
        "version": "1.0",
        "x-build-id": "YdLQmAYTj6seB1vM3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dltik~instagram-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dltik-instagram-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/dltik~instagram-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dltik-instagram-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/dltik~instagram-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dltik-instagram-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": [
                    "mode",
                    "inputs"
                ],
                "properties": {
                    "mode": {
                        "title": "Scraping mode",
                        "enum": [
                            "profiles",
                            "posts",
                            "reels",
                            "hashtags",
                            "comments",
                            "search"
                        ],
                        "type": "string",
                        "description": "What to scrape from Instagram. 'profiles' returns the profile (with business email/phone, category, bio links) plus recent posts for each username. 'posts' returns full data for each post/reel URL or shortcode (tagged users, location, paid-partnership, carousel children). 'reels' returns a profile's reels (or a hashtag's reels). 'hashtags' returns top/recent posts for each hashtag. 'comments' returns the comments (and optional replies) of each post/reel. 'search' discovers users, hashtags or places matching each query string.",
                        "default": "profiles"
                    },
                    "inputs": {
                        "title": "Inputs",
                        "type": "array",
                        "description": "Usernames for 'profiles' and 'reels' (e.g. ['natgeo','nasa']), post/reel URLs or shortcodes for 'posts' and 'comments' (e.g. ['https://www.instagram.com/p/C1abcdEFghi/'] or ['C1abcdEFghi']), hashtag names for 'hashtags' (e.g. ['travel','food']), or free-text query strings for 'search' (e.g. ['coffee shop','nasa']). For 'reels' you may also pass a hashtag by prefixing '#'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "commentsLimit": {
                        "title": "Comments limit (comments mode)",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of top-level comments to fetch per post in 'comments' mode. Each delivered comment is one billed result. Replies (when 'includeReplies' is on) are nested under their parent comment and are NOT billed separately. Ignored in other modes.",
                        "default": 50
                    },
                    "includeReplies": {
                        "title": "Include comment replies (comments mode)",
                        "type": "boolean",
                        "description": "When enabled in 'comments' mode, also fetch the threaded replies (child comments) of each top-level comment and nest them under its 'replies' field. This makes extra requests and consumes more proxy bandwidth. Ignored in other modes.",
                        "default": false
                    },
                    "searchType": {
                        "title": "Search type (search mode)",
                        "enum": [
                            "top",
                            "user",
                            "hashtag",
                            "place"
                        ],
                        "type": "string",
                        "description": "What to return in 'search' mode. 'top' returns a blended mix of users, hashtags and places. 'user' returns only user/account matches. 'hashtag' returns only hashtag matches. 'place' returns only location/place matches. Ignored in other modes.",
                        "default": "top"
                    },
                    "onlyPostsNewerThan": {
                        "title": "Only posts newer than",
                        "type": "string",
                        "description": "Keep only posts on or after this date (applies to 'profiles', 'reels' and 'hashtags' modes). Accepts an absolute date 'YYYY-MM-DD' (e.g. '2025-01-01') or a relative window like '7 days', '2 weeks', '3 months', '1 year'. Older posts are dropped and pagination stops early to save proxy bandwidth. Leave empty to disable."
                    },
                    "skipPinnedPosts": {
                        "title": "Skip pinned posts",
                        "type": "boolean",
                        "description": "When enabled, drop posts that the account pinned to the top of its grid (applies to 'profiles', 'reels' and 'hashtags' modes). Useful when you only want the natural reverse-chronological feed.",
                        "default": false
                    },
                    "maxResultsPerInput": {
                        "title": "Max results per input",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum posts/reels to return per input (per username or per hashtag). Ignored in 'posts' mode (one record per URL). Higher values paginate deeper and consume more residential-proxy bandwidth.",
                        "default": 30
                    },
                    "customProxyUrl": {
                        "title": "Custom proxy / unblocker URL (recommended)",
                        "type": "string",
                        "description": "STRONGLY RECOMMENDED for reliable results. This target edge-blocks the shared Apify residential pool (anti-bot challenge / login-wall). When set, this single premium-unblocker URL is used as the ONLY proxy (no rotation — the unblocker handles IPs + challenge solving). Format: http://user:pass@host:port. Works with Bright Data Web Unlocker, Oxylabs Web Unblocker, ScraperAPI (proxy mode), ZenRows. Leave empty to fall back to the Apify proxy below."
                    },
                    "proxyConfig": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Instagram blocks datacenter IPs, so a RESIDENTIAL proxy is strongly recommended: set {\"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"]}. Without it you will likely hit a login-wall and get an instructions record instead of data.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "sessionCookies": {
                        "title": "Session cookies (optional)",
                        "type": "array",
                        "description": "Optional Instagram session cookies to raise rate limits and unlock more results. In Chrome DevTools -> Application -> Cookies on instagram.com, copy at least sessionid, csrftoken and ds_user_id. Format: [{\"name\": \"sessionid\", \"value\": \"...\"}, {\"name\": \"csrftoken\", \"value\": \"...\"}]. Leave empty to run unauthenticated (residential proxy then recommended).",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "title": "Cookie name",
                                    "type": "string",
                                    "description": "Cookie name (e.g. sessionid)"
                                },
                                "value": {
                                    "title": "Cookie value",
                                    "type": "string",
                                    "description": "Cookie value"
                                }
                            }
                        },
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
