# LinkedIn Newsletter Scraper (`automation-lab/linkedin-newsletter-scraper`) Actor

📰 Extract public LinkedIn newsletter metadata, edition URLs, full issue text, authors, dates, images, and engagement counts—without login.

- **URL**: https://apify.com/automation-lab/linkedin-newsletter-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## LinkedIn Newsletter Scraper

Extract public LinkedIn newsletters and issues into structured, analysis-ready data—without credentials. Start from concrete newsletter or public article URLs and receive metadata, edition links, full article text, images, dates, authors, and best-effort engagement counts.

### What does LinkedIn Newsletter Scraper do?

LinkedIn Newsletter Scraper reads guest-accessible LinkedIn newsletter landing pages and public `pulse` issue pages. It can follow edition links automatically, so one newsletter URL becomes an ordered dataset containing the newsletter and its recent editions.

Use it to:

- 📰 discover editions from a public newsletter
- ✍️ extract full public article text
- 👤 capture author names, profile URLs, and exposed follower counts
- 📅 collect publication and modification dates
- 🖼️ export cover and inline image URLs
- 💬 capture public reaction and comment totals when exposed

### Who is it for?

- **Content intelligence teams** monitoring competitor publishing
- **Agencies** tracking thought-leadership programs
- **Researchers** building public newsletter archives
- **Recruiters and sales teams** studying expert topics and authors
- **Data engineers** feeding digests, search indexes, or RAG pipelines
- **Analysts** comparing cadence and engagement across newsletters

### Why use this actor?

Manual copy-and-paste loses structure and does not scale. This actor produces consistent JSON, CSV, Excel, XML, or RSS-compatible exports through Apify datasets. It uses HTTP-first extraction, structured metadata, bounded retries, and optional Apify Proxy for reliable automation.

### What data can I extract?

| Field | Description |
|---|---|
| `type` | `newsletter` or `issue` |
| `title` | Newsletter or issue title |
| `description` | Public summary or article headline |
| `authorName` | Creator or issue author |
| `authorUrl` | Public LinkedIn profile URL |
| `cadence` | Published daily, weekly, monthly, etc. when shown |
| `followerCount` | Public author follower count when exposed |
| `publishedAt` | Structured issue publication timestamp |
| `modifiedAt` | Structured issue modification timestamp |
| `bodyText` | Clean full issue text |
| `imageUrls` | Cover and article image URLs |
| `issueUrls` | Editions discovered from a newsletter |
| `reactionCount` | Public reaction total when exposed |
| `commentCount` | Public comment total when exposed |
| `canonicalUrl` | Canonical public LinkedIn URL |
| `scrapedAt` | UTC extraction timestamp |

### How to scrape a LinkedIn newsletter

1. Open the actor input.
2. Paste one or more concrete `linkedin.com/newsletters/...` URLs.
3. Leave **Extract linked issues** enabled.
4. Choose a practical record limit.
5. Click **Start**.
6. Export the resulting dataset in your preferred format.

### How to extract one LinkedIn article

Paste a public `linkedin.com/pulse/...` URL and set `includeIssues` to `false`. The actor returns the issue title, author, dates, full body, image URLs, canonical URL, and available engagement totals.

### Input

```json
{
  "startUrls": [
    { "url": "https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248" }
  ],
  "includeIssues": true,
  "maxItems": 10,
  "maxIssuesPerNewsletter": 9
}
````

Only concrete public newsletter and issue URLs are supported. A generic LinkedIn directory, search query, private feed, or authenticated analytics URL is not an input source.

### Output example

```json
{
  "type": "issue",
  "url": "https://www.linkedin.com/pulse/example-slug",
  "canonicalUrl": "https://www.linkedin.com/pulse/example-slug",
  "title": "Example newsletter issue",
  "authorName": "Example Author",
  "publishedAt": "2026-04-18T04:11:38.000+00:00",
  "bodyText": "Full public article text...",
  "imageUrls": ["https://media.licdn.com/example.jpg"],
  "reactionCount": 51,
  "commentCount": 9,
  "scrapedAt": "2026-07-12T00:00:00.000Z"
}
```

Fields that LinkedIn does not expose publicly are omitted rather than fabricated.

### How much does it cost to scrape LinkedIn newsletters?

This actor uses pay-per-event pricing: **$0.005 per run** plus a charge for each saved dataset record. Per-record prices are FREE $0.00024896, BRONZE $0.00021649, SILVER $0.00016886, GOLD $0.00012989, PLATINUM $0.000086596, and DIAMOND $0.000060617. Set `maxItems` to cap both output and variable cost.

### Tips for reliable runs

- Use canonical, public LinkedIn URLs.
- Start with a low `maxItems` while designing a workflow.
- Keep Apify Proxy enabled for scheduled monitoring.
- Split very large source lists across scheduled runs.
- Treat reactions, comments, cadence, and follower counts as best-effort fields.
- Deduplicate downstream by `canonicalUrl`.

### Monitoring workflow

Save a task containing your newsletter URLs and run it on a schedule. Compare `canonicalUrl` values with a previous dataset to identify newly published editions. Send new records to Slack, email, a database, or a vector store through an Apify integration or webhook.

### Competitor intelligence workflow

Group newsletter URLs by company, creator, or topic. Extract recent editions, then analyze publishing cadence, themes, article length, calls to action, and public engagement. The structured dataset is easier to compare than unstructured browser pages.

### RAG and digest workflow

Use `bodyText` as the document content and `canonicalUrl` as the stable source identifier. Store title, author, and `publishedAt` as metadata. Chunk text downstream according to your model or vector database, then generate summaries or searchable knowledge collections.

### Integrations

Send output to:

- Google Sheets for editorial tracking
- Slack for new-edition alerts
- Make or Zapier for no-code workflows
- webhooks for ingestion services
- Amazon S3 or Google Drive for archives
- PostgreSQL, BigQuery, or a vector database for analysis

Apify datasets also expose API endpoints for JSON, CSV, Excel, XML, and RSS exports.

### API usage

Run the actor programmatically with the Apify API or official clients. The examples below use the stable actor ID `automation-lab/linkedin-newsletter-scraper`.

#### JavaScript API example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/linkedin-newsletter-scraper').call({
  startUrls: [{ url: 'https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248' }],
  includeIssues: true,
  maxItems: 10
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/linkedin-newsletter-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248'}],
    'includeIssues': True,
    'maxItems': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

#### cURL API example

```bash
curl -X POST \
  'https://api.apify.com/v2/acts/automation-lab~linkedin-newsletter-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248"}],"maxItems":10}'
```

### MCP and AI assistants

Connect through `https://mcp.apify.com/?tools=automation-lab/linkedin-newsletter-scraper` in Claude Code or another MCP client. Example prompts:

- “Extract this LinkedIn newsletter and summarize its latest editions.”
- “Build a table of issue dates, authors, and engagement.”
- “Collect article text from these public LinkedIn issue URLs for my RAG corpus.”

Add it to Claude Code:

```bash
claude mcp add apify --transport http 'https://mcp.apify.com/?tools=automation-lab/linkedin-newsletter-scraper'
```

For Claude Desktop or another JSON-configured client, add:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=automation-lab/linkedin-newsletter-scraper"
    }
  }
}
```

Authenticate with your Apify account when the client opens the connection.

### Scheduling

Create an Apify task, save validated input, and configure a daily or weekly schedule. A webhook can trigger downstream processing after each successful run. Keep source lists stable and compare canonical URLs to detect additions.

### Error handling

Unsupported URLs are skipped with a warning. Temporary HTTP failures receive bounded retries. Interstitial or incomplete responses are treated as failures instead of producing misleading empty records. A run fails clearly if no valid record can be extracted.

### Troubleshooting

**Why did a field disappear?** LinkedIn does not expose every field on every public page. Optional engagement, follower, or cadence fields are omitted when unavailable.

**Why did my URL fail?** Confirm it is a public `linkedin.com/newsletters/...` or `linkedin.com/pulse/...` URL. Private feeds, profile posts, search pages, and login-only pages are outside this actor's scope.

**Why are fewer issues returned than requested?** A newsletter landing page may expose only a limited recent-edition window. `maxItems` is an upper bound, not a promise to invent records.

### Data quality

The extractor prefers canonical links and Article JSON-LD, then supplements them with semantic page HTML. Text whitespace is normalized. URLs are canonicalized and tracking query strings are removed. Missing optional values remain absent.

### Is scraping LinkedIn legal?

This actor extracts public pages without credentials. Scraping legality depends on jurisdiction, purpose, contract, and data handling. Use the actor responsibly, respect applicable laws and platform terms, avoid personal-data misuse, and consult legal counsel for regulated use cases.

### Privacy and scope

The actor does not collect subscriber identities, private feeds, authenticated analytics, messages, or account credentials. It processes only the concrete public newsletter and issue URLs supplied by the user and public edition links discovered there.

### Related scrapers

Explore other public-data tools from [automation-lab](https://apify.com/automation-lab), including LinkedIn profile, company, jobs, and post actors. Choose the focused actor whose documented public input and output match your workflow.

### FAQ

**Can it discover every LinkedIn newsletter?** No. Supply concrete newsletter or issue URLs.

**Does it need my LinkedIn login?** No. The core workflow uses public guest-accessible pages.

**Can it extract subscriber lists?** No. Subscriber identities and private analytics are explicitly out of scope.

**Can I export CSV or Excel?** Yes. Use the dataset export controls or API.

**Can I scrape multiple newsletters?** Yes. Add multiple entries to `startUrls` and choose an appropriate limit.

**Does it follow editions automatically?** Yes, when `includeIssues` is enabled.

**Are engagement counts guaranteed?** No. They are included only when LinkedIn exposes them publicly.

### Support

If a validated public URL stops working, open an issue from the actor page and include the URL, run ID, expected output, and observed error. Do not include credentials or private data.

# Actor input Schema

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

Concrete public linkedin.com/newsletters/... or linkedin.com/pulse/... URLs.

## `includeIssues` (type: `boolean`):

Follow edition links found on newsletter landing pages and extract article content.

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

Stop after this many newsletter and issue records.

## `maxIssuesPerNewsletter` (type: `integer`):

Maximum linked editions to follow from each newsletter page.

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

Apify Proxy improves reliability when LinkedIn rate-limits direct traffic.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248"
    }
  ],
  "includeIssues": true,
  "maxItems": 10,
  "maxIssuesPerNewsletter": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.linkedin.com/newsletters/artificial-intelligence-7059424690619957248"
        }
    ],
    "includeIssues": true,
    "maxItems": 10,
    "maxIssuesPerNewsletter": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/linkedin-newsletter-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.linkedin.com/newsletters/artificial-intelligence-7059424690619957248" }],
    "includeIssues": True,
    "maxItems": 10,
    "maxIssuesPerNewsletter": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/linkedin-newsletter-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.linkedin.com/newsletters/artificial-intelligence-7059424690619957248"
    }
  ],
  "includeIssues": true,
  "maxItems": 10,
  "maxIssuesPerNewsletter": 10
}' |
apify call automation-lab/linkedin-newsletter-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Newsletter Scraper",
        "description": "📰 Extract public LinkedIn newsletter metadata, edition URLs, full issue text, authors, dates, images, and engagement counts—without login.",
        "version": "0.1",
        "x-build-id": "Cjd9jdGEzm6yegFlJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~linkedin-newsletter-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-linkedin-newsletter-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/automation-lab~linkedin-newsletter-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-linkedin-newsletter-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/automation-lab~linkedin-newsletter-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-linkedin-newsletter-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": "🔗 Newsletter or issue URLs",
                        "type": "array",
                        "description": "Concrete public linkedin.com/newsletters/... or linkedin.com/pulse/... URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "includeIssues": {
                        "title": "Extract linked issues",
                        "type": "boolean",
                        "description": "Follow edition links found on newsletter landing pages and extract article content.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum records",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Stop after this many newsletter and issue records.",
                        "default": 25
                    },
                    "maxIssuesPerNewsletter": {
                        "title": "Issues per newsletter",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum linked editions to follow from each newsletter page.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy improves reliability when LinkedIn rate-limits direct traffic.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
