# Slack Scraper (`leadspicker/slack-scraper`) Actor

This Apify actor scrapes members from any Slack workspace and matches them to their LinkedIn profiles using image search and AI-based relevance classification.

- **URL**: https://apify.com/leadspicker/slack-scraper.md
- **Developed by:** [Leadspicker](https://apify.com/leadspicker) (community)
- **Categories:** Lead generation, Social media, AI
- **Stats:** 30 total users, 2 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 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

## Slack Scraper (with LinkedIn resolving)

Scrape members from **any Slack workspace you’re a member of** (no admin rights needed) and enrich them with **LinkedIn profiles** using **avatar image search**, **name matching**, and **AI relevancy classification**.


🎥 **Watch how to authorize and run the Actor (Quick Start)**  
👉 https://www.youtube.com/watch?v=J6E1SIbHB1k


This scraper was built by the www.leadspicker.com team at the Prague $1M Hackathon in January 2026.

> **Claim (and why it matters):** This is the **only Slack member scraper that’s actually useful for lead-gen** because it doesn’t stop at scraping and exporting member names - it goes a step further and **finds the LinkedIn profile URLs of those people using avatar image search, LinkedIn name search, and AI-based relevancy classification**, even when multiple people share the same name.

---

### What this Actor does

- **Scrapes Slack workspace members** and exports structured member data including full name.
- **Optionally resolves LinkedIn profiles** for members with custom avatars via **image search + name matching**. 
- **Optionally runs AI classification** (customizable prompt) to help you:
  - filter relevant people (e.g., automation experts / Growth hackers / GTM Engineers, Clay or n8n users, marketing/tech..),
  - outputs the best match when multiple LinkedIn candidates exist,

---

### Why this is different (and better than any other “Slack scraper”)

Most “Slack scrapers” either:
- require being an admin, or
- only export user names without linkedin profile urls, or
- break when the workspace has common names and duplicates,
- require you authorize through unsecure chrome extension

This Actor is built for real workflows:
- ✅ **No admin required** (works for any workspace you can log into)
- ✅ **No browser extension required** (recommended flow uses Live View login)
- ✅ **Image-based LinkedIn discovery** (great match rate for people with avatars on Slack)
- ✅ **Name disambiguation** (multiple people named “John Smith”? handled!)
- ✅ **AI relevancy classification** (so you can keep only the people you actually want)

---

#### Authentication & basic setup (recommended)

🎥 **Watch how to authorize and run the Actor (Quick Start)**  
👉 https://www.youtube.com/watch?v=J6E1SIbHB1k


- **Slack Client Link (required)**  
  Enter your workspace URL, for example:  
  `https://app.slack.com/client/T06FSM2U6FJ`  
  This workspace ID determines **which Slack workspace will be scraped**.

- **Interactive Login (VNC)**  
  Keep this **enabled**.  
  This allows you to log in via a **virtual browser**:
  - Start the Actor
  - Click **Live View**
  - Sign in to Slack normally  
  The Actor will automatically load the session and cookies for you.

> When using Interactive Login, you can leave `xoxc Token` and `xoxd Cookie (d)` **empty**.

---

#### Authentication – Option B (manual, not recommended)

> ⚠️ **Not recommended**, but works as fallback if the **virtual browser (VNC / Live View) login does not work** for you

This option allows you to **manually extract Slack session credentials** (`xoxc` token and `xoxd` cookie) from your browser and paste them into the Actor input fields.

Use this only if Interactive Login fails.

🎥 **Fall back option how to authorize manually:**  
👉 https://youtu.be/-T4Eei-ZYVA

---

##### Step 1: Sign in to Slack (browser only)

- Make sure you are fully logged in to your Slack workspace at:  
  https://app.slack.com
- You must be logged in via the **web app (browser)**  
  *(the desktop app alone is not sufficient)*

---

##### Step 2: Install Cookie-Editor (Chrome extension)

Install the **Cookie-Editor** extension from the Chrome Web Store:  
👉 https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm?hl=en

---

##### Step 3: Retrieve the `xoxc` token

1. Open the Slack workspace you want to scrape
2. Open **Developer Tools** (`F12`)
3. Go to the **Console** tab
4. Paste and run the following command:

````

JSON.stringify(Object.fromEntries(Object.entries(JSON.parse(localStorage.localConfig\_v2)?.teams ?? {}).map((\[teamKey, team]) => \[teamKey, team?.token])));

````

- Copy the output — this is your **`xoxc` token**

📹 **How-to video:**  
👉 https://www.loom.com/share/f96ec08772ab49bc8afa6f63b8130742

---

##### Step 4: Open Cookie-Editor

- Click the **Cookie-Editor** icon (🍪) in your Chrome toolbar
- If you don’t see it, open the **Extensions (puzzle)** menu and pin it
- Make sure Cookie-Editor is opened on the **app.slack.com** page

---

##### Step 5: Export the `xoxd` cookie

- In Cookie-Editor, search for the cookie named **`d`**
- Copy its value

This value is your **`xoxd` cookie (`d`)**.

---

##### Step 6: Paste credentials into the Actor

Paste the following values into the Actor input fields:

- **`xoxc Token`**
- **`xoxd Cookie (d)`**

You can now run the Actor **without Interactive Login**.


#### LinkedIn enrichment

- **Resolve LinkedIn**  
  Keep this **enabled** if you want the Actor to also find **LinkedIn profile URLs** for scraped Slack members.

- **LinkedIn URLs on New Lines**  
  Keep this **enabled** if you want **one LinkedIn profile per row**.  
  If multiple relevant LinkedIn profiles match the same Slack name, each match will be returned as a **separate row**.

---

#### Filtering & matching

- **Search Query**  
  Optional. Allows you to narrow down the Slack directory search.  
  **Recommended:** leave empty to scrape all members.

- **Prompt**  
  This prompt helps decide **which people with the same name should be included** in the export.  
  It is used during AI-based relevancy classification and LinkedIn disambiguation.

**Example prompt:**

```text
You are a simple classifier.

Question: Does this person have ANY connection to sales, marketing, AI, lead generation, growth, automation, or technology?

Say YES if you see ANY of these (current or past):
- Sales (any role)
- Marketing (any role)
- Business development
- Growth
- RevOps, Sales Ops, Marketing Ops
- GTM, Go-to-Market
- Outreach, Lead generation
- CRM, Salesforce, HubSpot
- Automation, integrations, Zapier
- Agency, consulting
- SaaS, B2B, tech startup
- Founder, CEO, entrepreneur
- Account management
- Customer success
- Partnerships
- Product (PM, Product Manager)
- Data, analytics for business

Say NO only if none of the above apply  
(e.g. finance, legal).

Return ONLY: YES or NO

Profile:
{profile_json}
````

***

### Output

Each dataset item represents **one Slack member**, optionally enriched with a **LinkedIn profile match**.

If multiple relevant LinkedIn profiles are found for the same Slack user (for example, when several people share the same name), the Actor can return **multiple rows for the same Slack member**, each with a different `linkedin_url`.

#### Output fields

Each row may contain the following fields:

- **Slack identity**
  - `id` — Slack user ID
  - `team` — Slack workspace ID
  - `username` — Slack username
  - `real_name` — full name from Slack
  - `display_name` — display name (if set)

- **Profile details**
  - `title` — job title (if available)
  - `email` — email address (if available)
  - `phone` — phone number (if available)

- **Profile images**
  - `image_1024` — Slack profile image (1024px)
  - `image_original` — original avatar image
  - `is_custom_image` — whether the user has a custom avatar

- **LinkedIn enrichment (optional)**
  - `linkedin_url` — a resolved LinkedIn profile URL
    - If multiple relevant matches exist, **each LinkedIn profile is returned as a separate row** for the same Slack user.

This row-based output makes it easy to:

- export data to CSV / spreadsheets,
- review multiple LinkedIn candidates,
- apply additional filtering or scoring in downstream tools.

#### LinkedIn output formats

You can work in two practical modes:

1. **One LinkedIn profile per row** (best match only) — great for exports and CRMs.
2. **All potential matches per Slack user** (kept together) — great for manual review and QA.

*(If you’re not sure which to use: start with “all matches”, then tighten your `prompt` until “best match” is reliably correct.)*

***

### Typical use cases

- **Lead generation** from partner/customer communities (filter by roles + match to LinkedIn)
- **Recruiting / sourcing** from niche Slack groups
- **Partnership mapping** (who’s inside a workspace + what they do)
- **Community analytics** (titles, domains, seniority distribution)
- **Outbound personalization** (Slack profile → LinkedIn → enrichment pipeline)

***

### Notes, limitations, and best practices

- Scrape only workspaces you have legitimate access to and permission to use. :contentReference\[oaicite:19]{index=19}
- Slack may rate-limit large exports. Use `maxResults`, filtering `query`, and reasonable timeouts.
- For best LinkedIn matching:
  - enable `resolveAvatarLinkedins`,
  - use a stricter `prompt` when your workspace has many repeated names,
  - prefer “all matches per row” until you’re happy with quality.

***

### Support / feedback

Found an edge case (duplicate names, missing avatars, wrong LinkedIn picks)? Open an issue in the Actor’s **Issues** tab on Apify and include:

- a short description,
- a sample output row (without sensitive data),
- what you expected vs what happened.

***

#### Keywords

Slack scraper · Slack members export · LinkedIn matching · avatar image search · AI classification · lead generation · enrichment

# Actor input Schema

## `xoxcToken` (type: `string`):

Slack xoxc form token used for directory search requests. You can also pass a JSON object mapping team IDs to tokens; the token is selected by clientPath team ID. Optional when Interactive Login is enabled.

## `xoxdToken` (type: `string`):

Value of the Slack cookie named d (xoxd token). Optional when Interactive Login is enabled.

## `clientPath` (type: `string`):

Slack client URL like https://app.slack.com/client/TXXXXXX.

## `interactiveLogin` (type: `boolean`):

When enabled, opens a browser via VNC so you can log in and the Actor will extract xoxc and xoxd tokens automatically.

## `interactiveLoginTimeoutSecs` (type: `number`):

How long to wait for you to log in before timing out.

## `resolveAvatarLinkedins` (type: `boolean`):

When enabled, resolves custom avatar images to LinkedIn URLs.

## `linkedinUrlsNewline` (type: `boolean`):

When enabled, outputs each LinkedIn URL on its own line instead of separating by semicolons.

## `query` (type: `string`):

Optional search query for filtering people.

## `prompt` (type: `string`):

Prompt template used for classification.

## `maxResults` (type: `integer`):

Maximum number of people to fetch.

## `proxyUrl` (type: `string`):

Optional proxy URL applied to HTTP and HTTPS requests.

## `timeoutSecs` (type: `number`):

Request timeout in seconds.

## Actor input object example

```json
{
  "clientPath": "https://app.slack.com/client/TXXXXXXXX",
  "interactiveLogin": false,
  "interactiveLoginTimeoutSecs": 900,
  "resolveAvatarLinkedins": false,
  "linkedinUrlsNewline": false,
  "query": "",
  "prompt": "You are a simple classifier.\n\nQuestion: Does this person have ANY connection to business, sales, marketing, or technology?\n\nSay YES if you see ANY of these (current or past):\nSales (any role)\nMarketing (any role)\nBusiness development\nGrowth\nRevOps, Sales Ops, Marketing Ops\nGTM, Go-to-Market\nOutreach, Lead generation\nCRM, Salesforce, HubSpot\nAutomation, integrations, Zapier\nAgency, consulting\nSaaS, B2B, tech startup\nFounder, CEO, entrepreneur\nAccount management\nCustomer success\nPartnerships\nProduct (PM, Product Manager)\nData, analytics for business\n\nSay NO only if none of the above seems to be a good match.\n\nWhen unsure, say YES.\n\nReturn ONLY: YES or NO\n\nProfile:\n{profile_json}",
  "maxResults": 50,
  "timeoutSecs": 30
}
```

# 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 = {
    "clientPath": "https://app.slack.com/client/TXXXXXXXX"
};

// Run the Actor and wait for it to finish
const run = await client.actor("leadspicker/slack-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 = { "clientPath": "https://app.slack.com/client/TXXXXXXXX" }

# Run the Actor and wait for it to finish
run = client.actor("leadspicker/slack-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 '{
  "clientPath": "https://app.slack.com/client/TXXXXXXXX"
}' |
apify call leadspicker/slack-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Slack Scraper",
        "description": "This Apify actor scrapes members from any Slack workspace and matches them to their LinkedIn profiles using image search and AI-based relevance classification.",
        "version": "0.0",
        "x-build-id": "xMuTEz8U49sxPwQGk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/leadspicker~slack-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-leadspicker-slack-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/leadspicker~slack-scraper/runs": {
            "post": {
                "operationId": "runs-sync-leadspicker-slack-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/leadspicker~slack-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-leadspicker-slack-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": [
                    "clientPath"
                ],
                "properties": {
                    "xoxcToken": {
                        "title": "xoxc Token",
                        "type": "string",
                        "description": "Slack xoxc form token used for directory search requests. You can also pass a JSON object mapping team IDs to tokens; the token is selected by clientPath team ID. Optional when Interactive Login is enabled."
                    },
                    "xoxdToken": {
                        "title": "xoxd Cookie (d)",
                        "type": "string",
                        "description": "Value of the Slack cookie named d (xoxd token). Optional when Interactive Login is enabled."
                    },
                    "clientPath": {
                        "title": "Slack Client Link",
                        "type": "string",
                        "description": "Slack client URL like https://app.slack.com/client/TXXXXXX."
                    },
                    "interactiveLogin": {
                        "title": "Interactive Login (VNC)",
                        "type": "boolean",
                        "description": "When enabled, opens a browser via VNC so you can log in and the Actor will extract xoxc and xoxd tokens automatically.",
                        "default": false
                    },
                    "interactiveLoginTimeoutSecs": {
                        "title": "Interactive Login Timeout (seconds)",
                        "minimum": 30,
                        "type": "number",
                        "description": "How long to wait for you to log in before timing out.",
                        "default": 900
                    },
                    "resolveAvatarLinkedins": {
                        "title": "Resolve LinkedIn",
                        "type": "boolean",
                        "description": "When enabled, resolves custom avatar images to LinkedIn URLs.",
                        "default": false
                    },
                    "linkedinUrlsNewline": {
                        "title": "LinkedIn URLs on New Lines",
                        "type": "boolean",
                        "description": "When enabled, outputs each LinkedIn URL on its own line instead of separating by semicolons.",
                        "default": false
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Optional search query for filtering people.",
                        "default": ""
                    },
                    "prompt": {
                        "title": "Prompt",
                        "type": "string",
                        "description": "Prompt template used for classification.",
                        "default": "You are a simple classifier.\n\nQuestion: Does this person have ANY connection to business, sales, marketing, or technology?\n\nSay YES if you see ANY of these (current or past):\nSales (any role)\nMarketing (any role)\nBusiness development\nGrowth\nRevOps, Sales Ops, Marketing Ops\nGTM, Go-to-Market\nOutreach, Lead generation\nCRM, Salesforce, HubSpot\nAutomation, integrations, Zapier\nAgency, consulting\nSaaS, B2B, tech startup\nFounder, CEO, entrepreneur\nAccount management\nCustomer success\nPartnerships\nProduct (PM, Product Manager)\nData, analytics for business\n\nSay NO only if none of the above seems to be a good match.\n\nWhen unsure, say YES.\n\nReturn ONLY: YES or NO\n\nProfile:\n{profile_json}"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of people to fetch.",
                        "default": 50
                    },
                    "proxyUrl": {
                        "title": "Proxy URL",
                        "type": "string",
                        "description": "Optional proxy URL applied to HTTP and HTTPS requests."
                    },
                    "timeoutSecs": {
                        "title": "Timeout (seconds)",
                        "type": "number",
                        "description": "Request timeout in seconds.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
