# Linkedin Profile Post Scraper (`scrapeflow/linkedin-profile-post-scraper`) Actor

🧑‍💼 LinkedIn Profile Post Scraper grabs posts from public profiles—text, timestamps, reactions, comments, shares, hashtags, links & media. 📊 Export CSV/JSON for analytics, outreach & competitive research. 🚀 Ideal for marketing, sales & personal branding.

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

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## 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 Post Scraper

The Linkedin Profile Post Scraper is a purpose-built tool that collects posts from public LinkedIn profile pages, then structures them with post text, timestamps, media, reactions, and comments for analysis and outreach. It solves the pain of manual copy-paste and unreliable tools by providing a dependable LinkedIn profile posts scraper and LinkedIn post extractor that works at scale for marketers, sales teams, researchers, and developers. With automatic resilience and live outputs, you can scrape LinkedIn posts from a profile and turn them into actionable insights fast.

### What data / output can you get?

Below are examples of the structured fields this LinkedIn content scraper for profiles returns. Each dataset item corresponds to a single post.

| Data type | Description | Example value |
| --- | --- | --- |
| urn | LinkedIn post URN identifier parsed or generated | urn:li:activity:7123456789012345678 |
| url | Canonical post URL when available (or OG URL fallback) | https://www.linkedin.com/feed/update/urn:li:activity:7123456789 |
| text | Post body text extracted from JSON-LD or OG tags | Excited to announce our new product launch 🚀 |
| postedAtISO | ISO timestamp string if available | 2026-04-10T15:25:30.000000Z |
| timeSincePosted | Relative time derived from published date | 3d |
| authorFullName | Author’s full name from JSON-LD or OG title | Jane Doe |
| authorType | Author entity type (Person or Company) | Person |
| authorProfileUrl | Source profile URL used for scraping | https://www.linkedin.com/in/janedoe |
| authorProfileId | Parsed profile identifier for the author | janedoe |
| authorHeadline | Author’s description/headline if present | Product Manager at Acme |
| image | First image URL if the post contains media | https://media.licdn.com/dms/image/… |
| images | Array of media URLs detected in the post | ["https://media.licdn.com/dms/image/…"] |
| numLikes | Parsed reaction count (likes/reactions) | 128 |
| numComments | Parsed comment count | 17 |
| comments | Array of extracted top comments (may be truncated) | [{ "text": "Congrats!", … }] |
| reactions | Array of sampled reactors with reaction type | [{ "type": "LOVE", … }] |
| attributes | Detected @mentions and profile mentions | [{ "type": "PROFILE_MENTION", … }] |
| author | Nested author object with basic metadata | { "firstName": "Jane", … } |
| flags | Booleans for sharing, commenting, truncation | commentsTruncated: true |

Notes:
- Posts may include additional metadata like shareAudience, allowedCommentersScope, or booleans such as canReact and commentingDisabled.
- Export results in the Apify dataset and download as CSV or JSON for pipelines like analytics, enrichment, and reporting.

### Key features

- 🔁 Automatic proxy fallback for reliability  
  Begins with a direct connection and seamlessly escalates to datacenter → residential proxy when blocked (including LinkedIn 999 handling), keeping your run resilient.

- ⚡ Live, incremental output  
  Each post is pushed to the dataset as soon as it’s discovered, giving you real-time visibility for monitoring and faster QA.

- 📦 Batch processing of multiple profiles  
  Add many LinkedIn profile URLs and process them in one run—ideal for teams running outreach or benchmarking content across profiles.

- 🖼️ Rich post content & engagement signals  
  Captures post text, timestamps, images, reaction counts, and sampled commenters/reactors—perfect for a LinkedIn profile activity scraper or LinkedIn post insights extractor.

- 🧭 Smart post discovery  
  Starts from the profile page, parses post identifiers, and follows feed pages to surface more items—great for a LinkedIn feed scraper focused on profile activity.

- 🛠️ Developer- and workflow-friendly  
  Results land in an Apify dataset you can fetch via API, export to CSV/JSON, and plug into analytics stacks—an effective LinkedIn profile posts API alternative.

- 🧱 Production-grade stability  
  Built with retry/backoff for 429s, warm-up routines, and shared session handling to automate scraping LinkedIn profile posts reliably at scale.

### How to use Linkedin Profile Post Scraper - step by step

1. Sign in to Apify and open the actor  
   Go to Apify Console → Actors and select Linkedin Profile Post Scraper.

2. Add your input URLs  
   Paste one or more LinkedIn profile URLs (format: https://www.linkedin.com/in/USERNAME). Non-profile URLs are skipped by design.

3. Set extraction limits  
   Configure maxPosts to cap how many posts you collect per profile. Lower values run faster.

4. Configure proxy (optional)  
   By default, the actor starts with no proxy and automatically falls back if blocked. You can explicitly enable Apify Proxy in proxyConfiguration if you need a specific setup.

5. Start the run  
   Click Start. The run will warm up, fetch each profile, and begin pushing posts to the output dataset live.

6. Monitor progress  
   Watch the Log for proxy strategy messages and for the “Output table” progress updates as posts are stored.

7. Export your data  
   Open the Dataset in the Output tab and export to CSV or JSON for downstream use in analytics, CRMs, or reporting tools.

Pro Tip: Connect the dataset via the Apify API to automate pipelines for a LinkedIn posts data extraction tool—e.g., schedule runs and push results into your BI stack.

### Use cases

| Use case name | Description |
| --- | --- |
| Marketing content analysis | Benchmark competitors’ post cadence, topics, and engagement by exporting LinkedIn profile posts to CSV for dashboards. |
| Sales intelligence | Enrich accounts and prospects with recent activity signals from a LinkedIn user posts scraper to time outreach. |
| Personal branding research | Track influencers’ content and engagement using a LinkedIn posts downloader for trend and format analysis. |
| Academic & social research | Collect public profile activity via a LinkedIn activity data scraper for sentiment, topic modeling, and network studies. |
| Editorial & curation | Surface noteworthy posts from industry leaders using a LinkedIn post extractor and curate weekly digests. |
| Data engineering pipeline | Automate scraping LinkedIn profile posts and feed structured JSON into your data lake for modeling and alerts. |

### Why choose Linkedin Profile Post Scraper?

This tool prioritizes precision, automation, and resilience for high-quality post data at scale.

- 🎯 Accurate, structured output: Clean fields for identifiers, text, timestamps, media, and engagement—ready for analysis.
- 🚀 Scalable batch runs: Process many profiles in one go with robust retry/backoff and live outputs.
- 🔌 Developer access: Pull datasets programmatically and integrate with your internal systems as a LinkedIn profile posts API alternative.
- 🛡️ Ethical focus: Targets publicly available profile posts only and avoids private/authenticated data.
- 🔁 Built-in fallback: Direct → datacenter → residential proxy sequence mitigates blocks, including handling status 999.
- 💾 Flexible exports: Download CSV or JSON for BI tools and CRMs without extra transformation.
- 🧩 Works with your workflows: Ideal as a LinkedIn profile activity scraper or LinkedIn post comments scraper within existing automation.

Bottom line: a reliable, production-ready LinkedIn posts data extraction tool that outperforms brittle, manual alternatives.

### Is it legal / ethical to use Linkedin Profile Post Scraper?

Yes—when used responsibly. This actor collects data from publicly available LinkedIn profile pages and does not access private or authenticated content.

Recommended guidelines:
- Collect only public information and respect individual privacy.
- Ensure your use complies with applicable laws and regulations (e.g., GDPR, CCPA).
- Review and respect LinkedIn’s terms where relevant.
- Consult your legal team for edge cases or commercial re-use.

### Input parameters & output format

Example JSON input
```json
{
  "urls": [
    "https://www.linkedin.com/in/ajjames",
    "https://www.linkedin.com/in/satyanadella"
  ],
  "maxPosts": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Parameters

- urls (array, required): Add one or more LinkedIn profile URLs to scrape (e.g., personal profile pages). Paste each URL on a new line. Default: not set.
- maxPosts (integer, optional): Maximum number of posts to collect per URL. Range: 1–500. Default: 10.
- proxyConfiguration (object, optional): By default uses no proxy. If LinkedIn blocks requests, the actor will automatically try datacenter then residential proxy. Optional: enable Apify Proxy here to start with a specific setup. Default: not set.

Example JSON output (single post item)

```json
{
  "urn": "urn:li:activity:7123456789012345678",
  "text": "Excited to announce our new product launch 🚀",
  "url": "https://www.linkedin.com/feed/update/urn:li:activity:7123456789012345678",
  "postedAtTimestamp": 1712753130000,
  "postedAtISO": "2026-04-10T15:25:30.000000Z",
  "timeSincePosted": "3d",
  "isRepost": false,
  "authorType": "Person",
  "authorProfileUrl": "https://www.linkedin.com/in/janedoe",
  "authorProfileId": "janedoe",
  "authorHeadline": "Product Manager at Acme",
  "authorFullName": "Jane Doe",
  "image": "https://media.licdn.com/dms/image/...",
  "type": "image",
  "images": [
    "https://media.licdn.com/dms/image/..."
  ],
  "author": {
    "firstName": "Jane",
    "lastName": "Doe",
    "occupation": "Product Manager at Acme",
    "id": "janedoe",
    "publicId": "janedoe",
    "trackingId": "ZXhhbXBsZXRyYWNrSWQ",
    "profileId": "janedoe",
    "picture": "https://media.licdn.com/dms/image/...",
    "backgroundImage": ""
  },
  "authorName": "Jane Doe",
  "authorTitle": "Product Manager at Acme",
  "attributes": [
    {
      "start": 0,
      "length": 6,
      "type": "PROFILE_MENTION",
      "profile": {
        "firstName": "Acme",
        "lastName": "",
        "occupation": "",
        "id": "reactor-1a2b3c4d5e6f",
        "publicId": "acme",
        "trackingId": "ZXhhbXBsZXRyYWNrSWQ",
        "profileId": "ACoAA1a2b3c4d",
        "picture": "",
        "backgroundImage": ""
      }
    }
  ],
  "comments": [
    {
      "time": 1713000000000,
      "link": "https://www.linkedin.com/feed/update/urn:li:activity:7123456789012345678",
      "text": "Congrats!",
      "entities": [],
      "pinned": false,
      "originalLanguage": "English",
      "author": {
        "firstName": "Alex",
        "lastName": "Smith",
        "occupation": "",
        "id": "commenter-12ab34cd56ef",
        "publicId": "alex-smith",
        "trackingId": "ZXhhbXBsZXRyYWNrSWQ",
        "profileId": "commenter-12ab34cd56ef",
        "picture": "",
        "backgroundImage": "",
        "distance": "OUT_OF_NETWORK"
      }
    }
  ],
  "reactions": [
    {
      "type": "LOVE",
      "profile": {
        "firstName": "Chris",
        "lastName": "Lee",
        "occupation": "",
        "id": "reactor-89ab01cd23ef",
        "publicId": "chris-lee-1234",
        "trackingId": "ZXhhbXBsZXRyYWNrSWQ",
        "profileId": "ACoAA89ab01cd",
        "picture": "",
        "backgroundImage": ""
      }
    }
  ],
  "numShares": 0,
  "numLikes": 128,
  "numComments": 17,
  "commentsTruncated": true,
  "commentsComplete": false,
  "reactionsTruncated": true,
  "canReact": true,
  "canPostComments": true,
  "canShare": true,
  "commentingDisabled": false,
  "allowedCommentersScope": "ALL",
  "rootShare": true,
  "shareAudience": "PUBLIC"
}
```

Notes:

- Some fields may be empty or “Unknown” if not present on the public page (e.g., authorHeadline).
- Comments and reactions are sampled; use commentsTruncated and reactionsTruncated to see if totals exceed the captured arrays.

### FAQ

#### Do I need to provide login or cookies to run this?

No. The actor targets publicly available LinkedIn profile posts without requiring login. It establishes a session and uses proxy fallback strategies to navigate blocks when necessary.

#### Can it scrape posts from companies or groups?

No. This tool specifically supports LinkedIn profile URLs that contain /in/. Non-profile URLs (e.g., /company/, /groups/) are skipped by design.

#### How many posts can I collect per profile?

You control this via maxPosts. It accepts 1–500 and defaults to 10. Smaller limits run faster and reduce the chance of rate limits.

#### Does it capture images, comments, and reactions?

Yes. It extracts images and basic engagement signals. Top comments and sampled reactors are included where available, with flags indicating if arrays are truncated relative to total counts.

#### What formats can I export to?

Results are stored in the Apify dataset. You can download your data as CSV or JSON or access it programmatically via the Apify API for pipelines.

#### How does it handle LinkedIn blocks (e.g., 999)?

The actor automatically escalates its connection strategy: direct → datacenter proxy → residential proxy. It includes retry/backoff logic, warm-up requests, and special handling for status 999 to maximize success.

#### Is this a LinkedIn API?

No. It’s a scraping-based LinkedIn profile posts API alternative that collects public profile posts and structures them for analytics and workflows.

#### Can I run multiple profiles in one job?

Yes. Paste multiple LinkedIn profile URLs in the urls array input to process them in a single run.

### Closing CTA / Final thoughts

Linkedin Profile Post Scraper is built to turn public LinkedIn profile activity into clean, structured datasets for analytics, enrichment, and outreach. With resilient proxy fallback, live outputs, and rich engagement details, it’s ideal for marketers, sales teams, analysts, and researchers who need a dependable LinkedIn profile posts scraper. Developers can automate end-to-end flows by pulling datasets via the Apify API and piping CSV/JSON exports into BI or CRM systems. Start extracting smarter LinkedIn post insights today and scale your content intelligence with confidence.

# Actor input Schema

## `urls` (type: `array`):

Add one or more LinkedIn profile URLs to scrape (e.g. personal profile pages). 📋 Paste each URL on a new line.

## `maxPosts` (type: `integer`):

Maximum number of posts to collect per URL. 🎯 Keep lower for faster runs (e.g. 10–50).

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

By default uses no proxy. If LinkedIn blocks requests, the actor will automatically try datacenter then residential proxy. 🔒 Optional: enable Apify Proxy here to start with a specific setup.

## Actor input object example

```json
{
  "urls": [
    "https://www.linkedin.com/in/ajjames",
    "https://www.linkedin.com/in/satyanadella"
  ],
  "maxPosts": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "urls": [
        "https://www.linkedin.com/in/ajjames",
        "https://www.linkedin.com/in/satyanadella"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapeflow/linkedin-profile-post-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 = {
    "urls": [
        "https://www.linkedin.com/in/ajjames",
        "https://www.linkedin.com/in/satyanadella",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapeflow/linkedin-profile-post-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 '{
  "urls": [
    "https://www.linkedin.com/in/ajjames",
    "https://www.linkedin.com/in/satyanadella"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapeflow/linkedin-profile-post-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Linkedin Profile Post Scraper",
        "description": "🧑‍💼 LinkedIn Profile Post Scraper grabs posts from public profiles—text, timestamps, reactions, comments, shares, hashtags, links & media. 📊 Export CSV/JSON for analytics, outreach & competitive research. 🚀 Ideal for marketing, sales & personal branding.",
        "version": "0.1",
        "x-build-id": "wzUbWHdFLuQLH0lGQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapeflow~linkedin-profile-post-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapeflow-linkedin-profile-post-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/scrapeflow~linkedin-profile-post-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapeflow-linkedin-profile-post-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/scrapeflow~linkedin-profile-post-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapeflow-linkedin-profile-post-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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "🔗 LinkedIn profile URLs",
                        "type": "array",
                        "description": "Add one or more LinkedIn profile URLs to scrape (e.g. personal profile pages). 📋 Paste each URL on a new line.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPosts": {
                        "title": "📄 Max posts per URL",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of posts to collect per URL. 🎯 Keep lower for faster runs (e.g. 10–50).",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy configuration",
                        "type": "object",
                        "description": "By default uses no proxy. If LinkedIn blocks requests, the actor will automatically try datacenter then residential proxy. 🔒 Optional: enable Apify Proxy here to start with a specific setup."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
