# 💬 LinkedIn Conversation Scraper (`scraply/linkedin-conversation-scraper`) Actor

- **URL**: https://apify.com/scraply/linkedin-conversation-scraper.md
- **Developed by:** [Scraply](https://apify.com/scraply) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.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 Conversation Scraper

> **Pull every conversation from your LinkedIn inbox into structured JSON — messages, dates, participants, headlines, distance, pronouns, and more.** No fragile API hacks. Just your own session cookie and a real Chromium tab under the hood.

---

### ✨ Why Choose Us?

- 🛡️ **API-free, fingerprint-proof** — drives a real Chromium browser, immune to LinkedIn's JA3 / queryId / CSRF rotations
- ⚡ **Live streaming** — every conversation is pushed to the dataset the moment it's parsed (crash mid-run? you still keep what was collected)
- 🌐 **Smart proxy escalation** — starts direct, falls back to **datacenter**, then **residential** (3 retries) only when LinkedIn pushes back
- 🧩 **Optional profile enrichment** — pulls headline, distance (1st/2nd/3rd), and pronouns from each participant's profile page
- 📅 **Date filters** — `today_limit` or `date_limit` to grab only what's recent
- 🔗 **Bulk URL mode** — feed it a list of thread or profile URLs to scrape specific conversations
- 🎯 **Stylish, modern input UI** with emoji-rich field labels

---

### 🔑 Key Features

| Feature | What it does |
|--------|-------------|
| 📥 **Inbox sweep** | Primary, All, Other, Archive, Spam |
| 🔎 **Filters** | InMail, Starred, 1st-degree only, Unread only |
| 💬 **Per-thread depth** | Configurable max messages per conversation |
| ✨ **Profile enrichment** | Headline + distance + pronouns from each participant |
| 🌐 **Tiered proxy fallback** | Direct → Datacenter → Residential (×3 retries) |
| 📅 **Date filters** | Today-only or older-than-cutoff |
| 💾 **Live saving** | `Actor.push_data` per conversation — no data loss on crash |

---

### 📥 Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| 🔐 `li_at` | string | **Yes** | Your `li_at` cookie from www.linkedin.com (treat as a password) |
| 🔗 `urls` | array | No | Optional bulk list of thread URLs or profile URLs |
| 📥 `list_type` | string | No | `PRIMARY_INBOX` (default), `INBOX`, `SECONDARY_INBOX`, `ARCHIVE`, `SPAM` |
| 🔎 `filter` | string | No | `INMAIL`, `STARRED`, `firstDegreeConnections:true`, `read:false` |
| 💬 `max_convs` | integer | No | Max conversations to scrape (`0` = unlimited) |
| 📝 `max_messages_per_conv` | integer | No | Max messages per conversation (`0` = unlimited) |
| 📅 `today_limit` | boolean | No | If true, only today's conversations |
| 🗓️ `time_frame` | string | No | `ALL_TIME` (default), `LAST_24_HOURS`, `LAST_3_DAYS`, `LAST_7_DAYS`, `LAST_14_DAYS`, `LAST_30_DAYS`, `LAST_90_DAYS`, `LAST_6_MONTHS`, `LAST_YEAR` |
| ✨ `enrich_profiles` | boolean | No | Visit each participant's profile page for headline / distance / pronouns |
| ⏱️ `request_delay` | number | No | Float seconds between requests (default `1.0`) |
| 🌐 `proxyConfiguration` | object | No | Defaults to **no proxy**; auto-escalates if LinkedIn blocks |

#### Example input

```json
{
  "li_at": "AQEDAU...your_cookie...",
  "list_type": "PRIMARY_INBOX",
  "filter": "",
  "max_convs": 10,
  "max_messages_per_conv": 25,
  "enrich_profiles": true,
  "today_limit": false,
  "proxyConfiguration": { "useApifyProxy": false }
}
````

***

### 📤 Output

Each dataset record is one conversation:

```json
{
  "participants": [
    {
      "url": "https://www.linkedin.com/in/ACoAADM...",
      "distance": "DISTANCE_1",
      "pronoun": "she/her",
      "picture": "https://media.licdn.com/.../profile.jpg",
      "firstname": "Raisul",
      "lastname": "Islam",
      "headline": "Founder @ Authentic Digital Marketing",
      "entityUrn": "ACoAADM..."
    }
  ],
  "status": "ACTIVE",
  "unread_count": 0,
  "last_read_at": null,
  "last_activity_at": "2026-05-03 15:15:00",
  "is_group_chat": false,
  "creator": "ACoAAEjB...",
  "created_at": "2026-05-03 15:15:00",
  "messages": [
    { "content": "test message", "date": "2026-05-03 15:15:00", "who": "me" }
  ],
  "total_messages": 1,
  "last_message_date": "2026-05-03 15:15:00",
  "last_message_content": "test message",
  "last_message_who": "me",
  "days_from_today": 11,
  "_conversation_id": "2-ZmExYTkx..."
}
```

#### Field reference

| Field | Description |
|-------|-------------|
| `participants` | Array of participant objects (name, URL, headline, distance, pronoun, picture, entityUrn) |
| `status` | Conversation status (`ACTIVE`) |
| `unread_count` | Number of unread messages |
| `last_activity_at` | Timestamp of the most recent message (`YYYY-MM-DD HH:MM:SS`) |
| `is_group_chat` | True if multi-person thread |
| `creator` | URN of whoever sent the first message we collected |
| `created_at` | Timestamp of the first collected message |
| `messages` | Array of `{ content, date, who }` (oldest → newest) |
| `total_messages` | Number of messages collected |
| `last_message_*` | Convenience fields for the most recent message |
| `days_from_today` | Days since the last activity |
| `_conversation_id` | LinkedIn's thread URN |

***

### 🚀 How to Use (Apify Console)

1. 🔓 Log in to [Apify Console](https://console.apify.com) → **Actors**.
2. 🔍 Find **LinkedIn Conversation Scraper** and open it.
3. 🍪 Grab your `li_at` cookie:
   - Open [linkedin.com](https://www.linkedin.com) in Chrome → press **F12** → **Application** → **Cookies** → `https://www.linkedin.com` → copy the value of `li_at`.
4. 📝 Paste it into the **🔐 LinkedIn Session Cookie (li\_at)** field.
5. ⚙️ Configure inbox type, filter, limits, and proxy if needed.
6. ▶️ Click **Start**.
7. 📺 Watch the live log — each conversation is logged as it's saved.
8. 📂 Open the **Dataset** tab when the run finishes.
9. 📤 Export to **JSON / CSV / XLSX / Excel**.

> 💡 **Tip:** Start with `max_convs = 5` to validate everything is working before launching a full sweep.

***

### 🤖 Use via API / MCP

#### Run the actor via REST

```bash
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "li_at": "AQEDAU...",
       "list_type": "PRIMARY_INBOX",
       "max_convs": 10,
       "max_messages_per_conv": 25,
       "enrich_profiles": true,
       "proxyConfiguration": { "useApifyProxy": false }
     }'
```

#### Wait for results synchronously

```bash
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"li_at":"AQEDAU...","max_convs":3}'
```

***

### 🌐 Proxy Strategy

The scraper escalates **only when LinkedIn pushes back**:

| Step | Tier | What happens |
|------|------|--------------|
| 1️⃣ | 🟢 **Direct** | Try without any proxy first |
| 2️⃣ | 🟡 **Datacenter** | If LinkedIn blocks → switch to a datacenter proxy |
| 3️⃣ | 🔴 **Residential** | If datacenter still gets blocked → residential proxy with **3 retries** |
| 🔒 | **Sticky** | Once we escalate, we stay on that tier for the rest of the run |

Every escalation step is logged so you can see what's happening:

```
🌐 Attempting connection without proxy (attempt 1/1)…
🛑 [NONE] LinkedIn redirected to login/checkpoint — treated as a block
🌐 Attempting connection via DATACENTER proxy (proxy.apify.com) — attempt 1/1
✅ [DATACENTER] Connected successfully to LinkedIn.
🟢 Locked onto DATACENTER proxy for the rest of the run.
```

***

### 💎 Best Use Cases

- 🧑‍💼 **CRM hygiene** — sync LinkedIn DMs into HubSpot / Salesforce
- 💼 **Recruitment ops** — track candidate replies across hundreds of outreach threads
- 📞 **Sales enablement** — surface stale conversations and follow-ups
- 🗂️ **Personal archive** — back up your own messaging history before LinkedIn deletes it
- 🔬 **Research** — analyze your own DM patterns for sentiment / topic / response time

***

### 💰 Pricing

This actor runs on **pay-per-usage** — you pay only the underlying Apify platform usage (compute units, proxies if used, dataset writes). No additional per-event charges from us.

> Run-time guideline: with `enrich_profiles = true`, expect ~5–10 seconds per conversation. With enrichment off, it's typically ~2–3 seconds per conversation.

***

### ❓ Frequently Asked Questions

#### Where do I find my `li_at` cookie?

Open [linkedin.com](https://www.linkedin.com), press **F12**, go to **Application → Cookies → https://www.linkedin.com**, and copy the **Value** of the `li_at` cookie. It looks like `AQEDA...`. Treat it like a password.

#### Will this work without a cookie?

No. LinkedIn's messaging endpoints all require an authenticated session. We use *your* cookie so the scraper sees the same inbox you do.

#### Why does it sometimes need a proxy?

If you run the actor often (or from a flagged IP), LinkedIn may redirect to a login wall. The actor detects this automatically and escalates to a datacenter proxy, then residential. **Most users will never need a proxy.**

#### Will LinkedIn ban my account?

Use sensible limits. Don't run dozens of large sweeps a day. Increase `request_delay` if you see warnings. Scraping your **own** inbox at human-realistic rates is the lowest-risk pattern.

#### Can I scrape group chats?

Currently the actor labels every thread as `is_group_chat: false` and only enriches the first participant. Multi-participant threads still work — you just get the first participant's profile detail.

#### Can I scrape someone else's inbox?

No. The `li_at` cookie ties to whoever generated it. You can only scrape your own inbox.

#### How is this different from the LinkedIn API?

The official API doesn't expose messaging to third parties. This actor uses a real browser to render the page exactly as you'd see it, bypassing API restrictions while staying within your own account's permissions.

***

### ⚠️ Cautions / Legal

- 📚 You may only scrape data your account is **authorized to see** (your own inbox).
- 🔐 Never share your `li_at` cookie publicly — it grants full access to your LinkedIn account.
- 📜 You are responsible for compliance with LinkedIn's **User Agreement**, GDPR, CCPA, and any other applicable law in your jurisdiction.
- 🤝 Don't use this to spam, harass, or unsolicited-message anyone — automated outreach violates LinkedIn's rules.
- 🚦 Respect rate limits — protect your account by keeping `request_delay ≥ 1.0` and `max_convs` reasonable.

***

### 🛟 Support and Feedback

- 🐛 Found a bug? File an **issue** through the Actor's Issues tab.
- 💡 Have a feature request? We listen.
- 💬 Need help? Use Apify Console's **Discussion** tab.

***

**Built with ❤️ on Apify** • [Documentation](https://docs.apify.com) • [Apify Console](https://console.apify.com)

# Actor input Schema

## `list_type` (type: `string`):

Which inbox to scrape when no URLs are provided.

## `filter` (type: `string`):

Optional filter applied to the inbox list.

## `li_at` (type: `string`):

Your `li_at` cookie from www.linkedin.com. Required for authentication. Open LinkedIn in your browser → DevTools → Application → Cookies → www.linkedin.com → copy the `li_at` value. ⚠️ Never share this cookie publicly — treat it like a password.

## `max_convs` (type: `integer`):

Maximum number of conversations to scrape. Set `0` for no limit. Higher values = longer runs.

## `max_messages_per_conv` (type: `integer`):

Maximum number of messages to extract from each conversation. Set `0` for no limit.

## `today_limit` (type: `boolean`):

If enabled, only conversations with activity **today** are included.

## `date_limit` (type: `string`):

Skip conversations older than this date. Leave empty for no date limit.

## `enrich_profiles` (type: `boolean`):

If enabled, visits each participant's profile page to extract **headline**, **distance** (1st/2nd/3rd), and **pronouns**. Slower but produces richer output.

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

Configure Apify proxy usage for this run. Leave off for direct connection unless you need a fixed proxy.

## Actor input object example

```json
{
  "list_type": "PRIMARY_INBOX",
  "filter": "",
  "max_convs": 10,
  "max_messages_per_conv": 5,
  "today_limit": false,
  "enrich_profiles": true,
  "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 = {
    "li_at": "",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraply/linkedin-conversation-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 = {
    "li_at": "",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraply/linkedin-conversation-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 '{
  "li_at": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraply/linkedin-conversation-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "💬 LinkedIn Conversation Scraper",
        "version": "0.1",
        "x-build-id": "DBSbgaavC7qQLO01b"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraply~linkedin-conversation-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraply-linkedin-conversation-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/scraply~linkedin-conversation-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraply-linkedin-conversation-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/scraply~linkedin-conversation-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraply-linkedin-conversation-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": [
                    "li_at"
                ],
                "properties": {
                    "list_type": {
                        "title": "📥 Inbox Type",
                        "enum": [
                            "PRIMARY_INBOX",
                            "INBOX",
                            "SECONDARY_INBOX",
                            "ARCHIVE",
                            "SPAM"
                        ],
                        "type": "string",
                        "description": "Which inbox to scrape when no URLs are provided.",
                        "default": "PRIMARY_INBOX"
                    },
                    "filter": {
                        "title": "🔎 Conversation Filter",
                        "enum": [
                            "",
                            "INMAIL",
                            "STARRED",
                            "firstDegreeConnections:true",
                            "read:false"
                        ],
                        "type": "string",
                        "description": "Optional filter applied to the inbox list.",
                        "default": ""
                    },
                    "li_at": {
                        "title": "🔐 LinkedIn Session Cookie (li_at)",
                        "type": "string",
                        "description": "Your `li_at` cookie from www.linkedin.com. Required for authentication. Open LinkedIn in your browser → DevTools → Application → Cookies → www.linkedin.com → copy the `li_at` value. ⚠️ Never share this cookie publicly — treat it like a password."
                    },
                    "max_convs": {
                        "title": "💬 Maximum Conversations",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of conversations to scrape. Set `0` for no limit. Higher values = longer runs.",
                        "default": 10
                    },
                    "max_messages_per_conv": {
                        "title": "📝 Maximum Messages per Conversation",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of messages to extract from each conversation. Set `0` for no limit.",
                        "default": 5
                    },
                    "today_limit": {
                        "title": "📅 Only Today's Conversations",
                        "type": "boolean",
                        "description": "If enabled, only conversations with activity **today** are included.",
                        "default": false
                    },
                    "date_limit": {
                        "title": "🗓️ Date Limit (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Skip conversations older than this date. Leave empty for no date limit."
                    },
                    "enrich_profiles": {
                        "title": "✨ Enrich Participant Profiles",
                        "type": "boolean",
                        "description": "If enabled, visits each participant's profile page to extract **headline**, **distance** (1st/2nd/3rd), and **pronouns**. Slower but produces richer output.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy Configuration",
                        "type": "object",
                        "description": "Configure Apify proxy usage for this run. Leave off for direct connection unless you need a fixed proxy.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
