# Linkedin Profile Posts Scraper (`scrapedrift/linkedin-profile-posts-scraper`) Actor

LinkedIn Profile Posts Scraper extracts publicly available posts, comments, engagement metrics, profile data, and activity history from LinkedIn profiles. Ideal for content analysis, lead generation, B2B research, competitor tracking, and building data-driven outreach strategies at scale.

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

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

### Linkedin Profile Posts Scraper 🎯

Getting posts from a LinkedIn profile one-by-one is slow, messy, and hard to scale. **Linkedin Profile Posts Scraper** collects public post content and engagement details for a profile URL in a single run. It’s also useful as a LinkedIn post scraper or LinkedIn profile scraper when you want structured data fast. This tool is ideal for outreach teams, marketers, data analysts, and researchers who need consistent LinkedIn posts export-ready results. In many cases, you can pull up to your selected limit of posts from a profile URL without manual copy-pasting.

---

### See the Data: Sample Output

Here's a real record from a single run:

```json
{
  "urn": {
    "activity_urn": "1234567890123456789",
    "share_urn": null,
    "ugcPost_urn": "9876543210987654321"
  },
  "full_urn": "urn:li:activity:1234567890123456789",
  "posted_at": {
    "date": "2026-06-01 14:22:10",
    "relative": "2d",
    "timestamp": 1717251730000
  },
  "text": "Excited to share our latest update! 🚀\n\nWe’re focusing on…",
  "url": "https://www.linkedin.com/feed/update/urn:li:activity:1234567890123456789",
  "post_type": "regular",
  "author": {
    "first_name": "Alex",
    "last_name": "Johnson",
    "headline": "Product Manager | Building tools for teams",
    "username": "alex-johnson",
    "profile_url": "https://www.linkedin.com/in/alex-johnson",
    "profile_picture": "https://media.licdn.com/dms/image/D4E03AQEexample/profile-displayphoto-shrink_400_400/0/0/0"
  },
  "stats": {
    "total_reactions": 128,
    "like": 128,
    "support": 0,
    "love": 0,
    "insight": 0,
    "celebrate": 0,
    "funny": 0,
    "comments": 34,
    "reposts": 0
  },
  "media": {
    "type": "image",
    "url": "https://media.licdn.com/dms/image/D4E03AQEexample/original/example.jpg",
    "images": [
      {
        "url": "https://media.licdn.com/dms/image/D4E03AQEexample/original/example.jpg",
        "width": 1080,
        "height": 1350
      }
    ]
  }
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `urn` | object | Internal identifiers for the post activity and related URNs (useful for deduping and tracking). |
| `urn.activity_urn` | string | null | The post’s primary activity identifier extracted from the page. |
| `urn.share_urn` | string | null | Identifies a share when present, otherwise stays `null`. |
| `urn.ugcPost_urn` | string | null | Identifies UGC content when present, otherwise stays `null`. |
| `full_urn` | string | null | A standardized full activity URN string built from `activity_urn`. |
| `posted_at` | object | Timestamp details for the post, including a formatted date and raw epoch value. |
| `posted_at.date` | string | null | Date in `"%Y-%m-%d %H:%M:%S"` format when an epoch timestamp is available. |
| `posted_at.relative` | string | null | Relative time text (with an “Edited” suffix when detected). |
| `posted_at.timestamp` | integer | null | Epoch timestamp (milliseconds) when detected; otherwise `null`. |
| `text` | string | The main post text content extracted from the post page. |
| `url` | string | The post URL that was processed. |
| `post_type` | string | Post classification; this actor returns `"regular"`. |
| `author` | object | Author/profile metadata used alongside the post (first name, headline, profile link, etc.). |
| `author.profile_url` | string | Normalized LinkedIn profile URL for the author. |
| `stats` | object | Engagement counts (reactions and comments) captured from the post metadata. |
| `stats.total_reactions` | number | Total “LikeAction” count mapped into `total_reactions` (and `like`). |
| `stats.comments` | number | Number of comments detected in the post metadata. |
| `media` | object | Media details for the post (text/image/video handling and image list). |
| `media.type` | string | Media type: `"text"`, `"image"`, or `"video"`. |
| `status` | not present | This actor pushes extracted records to the dataset via `Actor.push_data(...)` and does not include a `status` field in the pushed output. |

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

***

### Setting It Up

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

```json
{
  "url": "https://www.linkedin.com/showcase/linkedin-news/",
  "limit": 20
}
```

| Parameter | Required | What It Does |
|---|---|---|
| `url` | ✅ | The LinkedIn profile, showcase, or company URL to scrape posts from. |
| `limit` | ⬜ | Maximum number of posts to scrape per provided URL. Default is `20` and the minimum value is `1`. |

***

### What It Does

This actor fetches a LinkedIn profile (or showcase/company feed), discovers recent activity post URLs, then scrapes each post page to extract structured content and engagement details.

#### Pull LinkedIn profile posts in one run

You provide a single LinkedIn URL, and Linkedin Profile Posts Scraper extracts multiple posts from that target. The `limit` input caps how many posts are processed and pushed to your dataset.

#### Clean, structured output for LinkedIn post analytics

Each scraped post is returned as a consistent JSON object with author metadata, post text, `posted_at` details, engagement `stats`, and `media`. This makes it straightforward to build dashboards, do content analysis, or support a LinkedIn post analytics scraper workflow.

#### Built for LinkedIn profile post extraction

The actor captures author fields like `first_name`, `last_name`, `headline`, `username`, `profile_url`, and `profile_picture`, paired with each post’s `url`. That author/post pairing is exactly what you want when extracting posts from LinkedIn profile pages for reporting or exports.

#### Includes retries and fallbacks for resilience

Requests include retry logic, and the run continues through discovery paths to improve your chances of getting results. If a post page can’t be downloaded, that post is skipped rather than breaking the entire run.

#### Media-aware scraping for images and videos

For each post, the output includes a `media` object with `type`, a primary `url`, and an `images` array when images are present. If a post contains video content, the output sets `media.type` to `"video"` and populates `media.url` accordingly.

Overall, Linkedin Profile Posts Scraper turns LinkedIn content into structured, export-ready data—ideal for anyone building a LinkedIn content scraper tool or LinkedIn posts downloader workflow.

***

### Why Linkedin Profile Posts Scraper?

There are plenty of ways to pull data from LinkedIn—here’s why Linkedin Profile Posts Scraper stands out.

#### Designed for getting results quickly

Instead of manual copy-pasting posts one-by-one, this actor automates discovery and post-page extraction in a single run. Set your `limit`, launch, and your dataset fills as posts are processed.

#### Output that’s easy to analyze downstream

The returned objects include `posted_at` (date, relative text, and epoch timestamp), `stats` (reactions and comments), and `media`. That makes the results immediately useful for LinkedIn post analytics scraper use cases and automated reporting.

#### Works smoothly with public profile URLs

You only need to provide the `url` to a LinkedIn profile, showcase, or company feed. This makes it simple to use the actor as a LinkedIn public posts scraper when you have a list of targets for a content research workflow.

***

### Real-World Use Cases

Here's how different teams put Linkedin Profile Posts Scraper to work:

**Outreach and sales enablement teams**\
A sales team needs consistent, comparable evidence of a prospect’s activity before outreach. They run Linkedin Profile Posts Scraper for target profile URLs, export LinkedIn posts export data, and quickly summarize engagement trends and post themes to personalize messages.

**Marketing analysts and brand researchers**\
A marketer researching competitor positioning wants to measure what kinds of posts drive engagement over time. They scrape posts from multiple profiles, then analyze `posted_at`, `text`, and `stats` to compare content performance without spending days on manual review.

**Content strategists and community managers**\
A content lead audits their industry to spot which formats and topics perform best. They use the actor’s structured `media` data (image/video handling) and post text extraction to build a repeatable process for LinkedIn profile post extraction.

**Freelance researchers and data consultants**\
A consultant delivering a client brief needs results fast and organized. They run Linkedin Profile Posts Scraper, export the dataset, and deliver consistent JSON fields for downstream analysis or visualization.

**Automation and data engineering workflows**\
A developer building an internal pipeline triggers Linkedin Profile Posts Scraper runs programmatically via the Apify API, then ingests the dataset into a warehouse. The consistent JSON structure supports reliable ETL and helps maintain a LinkedIn scraping software workflow.

***

### How to Run It

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

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and find Linkedin Profile Posts Scraper.
2. **Enter your inputs** — set `url` to the LinkedIn profile, showcase, or company URL you want to scrape, and optionally set `limit`.
3. **Configure proxy settings (recommended)** — if you’re running multiple targets or larger limits, enable proxy support for better reliability.
4. **Start the run** — launch the actor and watch the live log for progress on discovered posts.
5. **Open the Dataset tab** — results are pushed to the dataset as each post is processed.
6. **Export your data** — download JSON, CSV, or Excel from the Apify dashboard.
7. **Iterate** — increase or decrease `limit` depending on how many posts you need per target.

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

***

### Export & Integration Options

Once your data is collected, Linkedin Profile Posts Scraper fits directly into your existing workflow.

You can export from the Apify dataset tab as JSON, CSV, or Excel for reporting and content audits. If you prefer automation, connect outputs to your pipeline using Apify’s integrations and tools like Zapier or Make.

For developers, you can access results programmatically via the Apify API, and you can also trigger downstream actions using webhooks when a run completes. If you need scheduled runs for recurring research, you can set the actor to run automatically.

***

### Pricing

Linkedin Profile Posts Scraper runs on Apify, which includes a **free tier** — no credit card needed to start. The free tier provides $5 platform credits on sign-up, enough for several real test runs.

After that, pricing is pay-as-you-go based on Actor compute unit (CU) usage, so you only pay for what you run. For heavier workloads or ongoing monitoring, use Apify’s subscription plans—check the Apify pricing page for up-to-date details.

Start free at [apify.com](https://apify.com) — scale up when you need to.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Rate-related failures | Includes retry logic when fetching pages. |
| Blocked/failed fetches | If a fetch fails or results are blocked, the actor continues discovery paths and processes what it can. |
| Post-level download issues | If an individual post page can’t be downloaded, it’s skipped without stopping the whole run. |
| Export continuity | Extracted records are pushed as posts are processed. |

Limitations: this actor is built for public LinkedIn pages only, and results can vary based on how accessible the target content is at run time. If a profile requires login to view content fully, you may receive fewer posts than expected.

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

***

### Frequently Asked Questions

#### Is there a free plan?

Yes. Apify offers a free tier with monthly usage credits so you can test Linkedin Profile Posts Scraper before scaling up.

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

No. You provide the public `url`, and the actor scrapes publicly accessible page content as needed for extracting posts.

#### How accurate is the extracted data?

The output is based on what the actor can extract from the post page metadata and content it retrieves. If a post layout differs or content isn’t fully present in the retrieved HTML, some fields (like `media` or `posted_at`) may be missing or `null`.

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

You control that with the `limit` input. The actor processes up to `limit` posts per provided `url`.

#### How fresh is the data?

The data reflects what’s available on the LinkedIn pages at the time the run is executed. For the freshest results, run the actor again for the same profile later.

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

The actor is intended to collect **publicly available data** from public LinkedIn pages. You’re responsible for ensuring your use complies with GDPR, CCPA, applicable laws, and LinkedIn’s Terms of Service.

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

Yes. You can export your dataset as JSON, CSV, or Excel from the Apify dashboard, then import into Google Sheets or other tools.

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

Yes. On Apify, you can schedule actor runs so Linkedin Profile Posts Scraper runs automatically on a recurring basis.

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

Yes. You can trigger runs via the Apify API and retrieve dataset outputs programmatically.

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

The actor uses retry logic for fetches and continues processing what it can. If a specific post can’t be downloaded or parsed, that post is skipped while the rest of the run proceeds.

***

### Get Help & Use Responsibly

Got a question about Linkedin Profile Posts Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com>. We actively maintain this actor and respond to user feedback—share your target use case (e.g., LinkedIn post analytics scraper needs or profile-to-report workflows) and we’ll help.

**publicly available data** is accessed. The actor does not access private profiles, login-gated pages, or password-protected content. You are responsible for complying with GDPR, CCPA, and LinkedIn’s Terms of Service. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

## `url` (type: `string`):

The LinkedIn profile, showcase, or company URL to scrape posts from.

## `limit` (type: `integer`):

Maximum number of posts to scrape per provided URL.

## Actor input object example

```json
{
  "url": "https://www.linkedin.com/showcase/linkedin-news/",
  "limit": 20
}
```

# 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 = {
    "url": "https://www.linkedin.com/showcase/linkedin-news/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapedrift/linkedin-profile-posts-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 = { "url": "https://www.linkedin.com/showcase/linkedin-news/" }

# Run the Actor and wait for it to finish
run = client.actor("scrapedrift/linkedin-profile-posts-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 '{
  "url": "https://www.linkedin.com/showcase/linkedin-news/"
}' |
apify call scrapedrift/linkedin-profile-posts-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Linkedin Profile Posts Scraper",
        "description": "LinkedIn Profile Posts Scraper extracts publicly available posts, comments, engagement metrics, profile data, and activity history from LinkedIn profiles. Ideal for content analysis, lead generation, B2B research, competitor tracking, and building data-driven outreach strategies at scale.",
        "version": "1.0",
        "x-build-id": "2AIDKOnU9ZCXxYBgw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapedrift~linkedin-profile-posts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapedrift-linkedin-profile-posts-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/scrapedrift~linkedin-profile-posts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapedrift-linkedin-profile-posts-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/scrapedrift~linkedin-profile-posts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapedrift-linkedin-profile-posts-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": [
                    "url"
                ],
                "properties": {
                    "url": {
                        "title": "Url to check",
                        "type": "string",
                        "description": "The LinkedIn profile, showcase, or company URL to scrape posts from."
                    },
                    "limit": {
                        "title": "Maximum Posts per URL",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of posts to scrape per provided URL.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
