# LinkedIn Profile Scraper - No Login, No Cookies (`logiover/linkedin-profile-scraper`) Actor

No-login LinkedIn profile scraper & API alternative. Export public people data to CSV/JSON - bulk profile data extraction, no cookies.

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

## Pricing

from $5.50 / 1,000 results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.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

<h1 align="center">👤 LinkedIn Profile Scraper — No Login, No Cookies</h1>
<h3 align="center">Scrape public LinkedIn profiles (people data) — <em>no login, no cookies, no API key, zero account-ban risk.</em></h3>

<p align="center">
  <img alt="No login" src="https://img.shields.io/badge/Login-NOT%20required-2ecc71?style=for-the-badge&logo=linkedin&logoColor=white">
  <img alt="No cookies" src="https://img.shields.io/badge/Cookies-NONE-2ecc71?style=for-the-badge">
  <img alt="Ban risk" src="https://img.shields.io/badge/Account%20ban%20risk-ZERO-2ecc71?style=for-the-badge">
  <img alt="Engine" src="https://img.shields.io/badge/Engine-Pure%20HTTP%20(fast)-0a66c2?style=for-the-badge">
  <img alt="Pricing" src="https://img.shields.io/badge/Pricing-Pay%20per%20result-9b59b6?style=for-the-badge">
</p>

<p align="center">
  <b>Drop in a list of profiles → get back a clean, structured people dataset.</b><br>
  <code>name</code> · <code>headline</code> · <code>location</code> · <code>job titles</code> · <code>employers</code> · <code>education</code> · <code>followers</code> · <code>⭐ Top Voice</code> · <code>bio</code> · <code>photo</code> · <code>recent posts</code>
</p>

<p align="center"><sub>✅ JSON · CSV · Excel · HTML · API &nbsp;|&nbsp; ✅ Works out of the box &nbsp;|&nbsp; ✅ Scales to thousands of profiles per run</sub></p>

---

### 😣 The problem with every other LinkedIn scraper

Most LinkedIn people-scrapers make you paste your **session cookie** (`li_at`) or log in with your account. Scrape at any real volume and LinkedIn flags that session and **bans the account — often within 3–7 days.** You lose your network and your tool breaks the next time LinkedIn rotates its tokens.

### 😎 How this one is different

This actor reads **only the public profile page** LinkedIn already serves to logged-out visitors. **No login. No cookie. No account in the loop — nothing to flag, nothing to ban.** It's pure HTTP (no slow headless browser): fast, cheap, and stable.

> **You keep your LinkedIn account. You keep your data. You only pay for results you actually get.**

---

### ⚖️ This actor vs. cookie / login scrapers

| | 👤 **LinkedIn Profile Scraper** | 🍪 Cookie / login scrapers |
|---|:---:|:---:|
| LinkedIn login required | **❌ Never** | ✅ Yes |
| Session cookie (`li_at`) required | **❌ Never** | ✅ Yes |
| Risk of an account getting **banned** | **🟢 Zero** | 🔴 High (3–7 days) |
| Breaks when LinkedIn rotates tokens | **🟢 No** | 🔴 Constantly |
| Engine | **⚡ Pure HTTP** | 🐢 Headless browser |
| ⭐ Top Voice / Creator badge detection | **✅ Yes** | ⚠️ Rarely |
| Employers + schools with dates | **✅ Yes** | ⚠️ Partial |
| Setup before first run | **🟢 None** | 🔴 Cookie export, proxies |
| Billing | **✅ Pay per result** | varies |

---

### 👀 See the output before you spend a cent

A single run on `["williamhgates", "satyanadella", "reidhoffman"]` returns rows like this:

```json
{
  "name": "Bill Gates",
  "headline": "Chair, Gates Foundation and Founder, Breakthrough Energy",
  "location": "Seattle, Washington, United States",
  "country": "US",
  "followerCount": 40381452,
  "jobTitles": ["Co-chair", "Founder", "Co-founder"],
  "currentCompany": "Gates Foundation",
  "companies": [
    { "name": "Gates Foundation", "slug": "gates-foundation", "startDate": 2000 },
    { "name": "Microsoft", "slug": "microsoft", "startDate": 1975 }
  ],
  "education": [
    { "name": "Harvard University", "slug": "harvard-university", "startYear": 1973, "endYear": 1975 }
  ],
  "isTopVoice": true,
  "isCreator": true,
  "profileImageUrl": "https://media.licdn.com/dms/image/.../profile-displayphoto",
  "username": "williamhgates",
  "linkedinUrl": "https://www.linkedin.com/in/williamhgates",
  "recentActivity": [{ "type": "article", "title": "…", "url": "…", "datePublished": "…", "likes": 7331 }],
  "scrapedAt": "2026-06-03T10:00:00.000Z"
}
````

*Real fields from a real run — nothing mocked.*

***

### 🚀 Get your first dataset in 30 seconds

1. Open the **Input** tab.
2. Paste profiles into **Profiles** — any mix works:
   - Full URL → `https://www.linkedin.com/in/satyanadella/`
   - Username → `satyanadella`
   - Country subdomains (`in.linkedin.com/in/...`, `uk.linkedin.com/in/...`) are normalised automatically.
3. Hit **Start**. Watch rows stream into your dataset, then export to **JSON / CSV / Excel / HTML** or pull from the **API**.

No browser extension. No proxy setup. No scraping your own account.

***

### 📦 Every field you get

| Field | Type | Example |
|---|---|---|
| `name` | string | `"Bill Gates"` |
| `headline` | string | `"Chair, Gates Foundation and Founder, Breakthrough Energy"` |
| `bio` | string | `"Chair of the Gates Foundation. Founder of Breakthrough Energy…"` |
| `location` | string | `"Seattle, Washington, United States"` |
| `country` | string | `"US"` |
| `followerCount` | number | `40381452` |
| `jobTitles` | string\[] | `["Co-chair","Founder","Co-founder"]` |
| `currentCompany` | string | `"Gates Foundation"` |
| `companies` | array | `[{ name, url, slug, startDate, endDate }]` |
| `education` | array | `[{ name, url, slug, startYear, endYear }]` |
| `isTopVoice` | boolean | `true` |
| `isCreator` | boolean | `true` |
| `badges` | string\[] | `["Creator","Top Voice"]` |
| `profileImageUrl` | string | `"https://media.licdn.com/…"` |
| `username` | string | `"williamhgates"` |
| `linkedinUrl` | string | `"https://www.linkedin.com/in/williamhgates"` |
| `recentActivity` | array | `[{ type, title, url, datePublished, likes }]` |
| `scrapedAt` | string | ISO timestamp |

***

### 💰 What teams use it for (and the ROI)

- **🎯 Lead enrichment** — turn a list of profile URLs into structured intelligence: title, company, seniority, location, follower reach. Feed it straight into your CRM or outreach tool.
- **🧲 Recruiting & sourcing** — enrich candidate shortlists with current role, full employer history, and education in one pass instead of opening 500 tabs.
- **⭐ Influencer & creator discovery** — filter `isTopVoice` / `isCreator` and high follower counts to surface credible voices in any niche. A targeted alternative to $1,000/mo influencer databases.
- **🧹 CRM enrichment** — refresh contact records in HubSpot / Salesforce / Pipedrive with current job titles and employers on a schedule.
- **🔗 Chains with the Company Scraper** — every `companies[].url` and `education[].url` is a clean handle you can feed straight into the **LinkedIn Company Scraper** for full firmographics.
- **🧱 Data products & AI** — assemble a structured people dataset for your own app, model, or RAG pipeline.

***

### 🛡️ Built to be reliable

- **Pure-HTTP engine** with automatic session rotation and smart retries — when LinkedIn throttles a session, the actor quietly retries on a fresh one instead of failing your row.
- **Apify Proxy** built in. The default (datacenter / automatic) is the cheapest and works for most lists; switch to **RESIDENTIAL** for very large runs.
- **Graceful failures** — a wrong username or removed profile returns a clear `error` field instead of crashing the whole run, so a 5,000-profile job always finishes.
- **Clean data** — HTML entities decoded, country subdomains normalised, employers and schools returned with start/end dates.

***

### ⚙️ Input options

| Option | Default | What it does |
|---|---|---|
| `profiles` | – | **Required.** Array of profile URLs or usernames. |
| `includeRecentActivity` | `true` | Capture the member's most recent public posts/articles. |
| `maxConcurrency` | `8` | How many profiles to fetch in parallel. |
| `proxyConfiguration` | Apify Proxy (auto) | Proxy routing. RESIDENTIAL recommended for huge lists. |

***

### ❓ FAQ

#### Does this LinkedIn profile scraper need a login or cookie?

No — and that's the whole point. It only reads the public profile page LinkedIn serves to logged-out visitors. No login, no `li_at` session cookie, no API key. Your account is never used, so it can't be flagged, throttled, or banned.

#### Is scraping LinkedIn profiles legal?

It collects only **publicly visible** profile information — the same data anyone sees without logging in. The *hiQ Labs v. LinkedIn* line of cases supports access to public data in the US. Because this is personal data, you're responsible for using the output in line with LinkedIn's terms and applicable privacy laws (GDPR/CCPA) in your region. This tool does not collect private or login-gated data.

#### How do I export LinkedIn profile data to CSV or Excel?

Every run streams into an Apify dataset you can export to **CSV, JSON, Excel, HTML or XML**, or pull live via the API and webhooks — ready for your CRM, spreadsheet, or outreach tool.

#### Where do I get a list of profile URLs to feed in?

Your CRM, an export from a search tool, your existing connections, or the `companies[].url` links from the **Company Scraper**. This actor is the **enrichment** step — give it identifiers, get back rich structured data.

#### How many profiles can I scrape per run?

As many as you want — feed a list of any size and results stream straight into your dataset. You only pay per result.

#### A profile came back with an `error` field — why?

The username was wrong, the profile is private/removed, or it was throttled after all retries. Re-run those items, ideally with RESIDENTIAL proxy.

#### Is this a LinkedIn API alternative?

Yes. LinkedIn has no public profile API, so this actor is a practical LinkedIn API alternative for profile data extraction — feed usernames or URLs and get structured people data back, no API key or developer access needed.

#### How do I export LinkedIn profile data to CSV or JSON in bulk?

Feed a bulk list of profiles in one run; every result streams into a dataset you can export to CSV, JSON or Excel, or pull live via API. It's a no-login LinkedIn data export with no cookies and no account-ban risk.

#### Can I scrape LinkedIn profiles without login or an API key?

Yes — that's the core design. The actor reads only the public profile page LinkedIn serves to logged-out visitors, so you scrape LinkedIn without login, without a session cookie, and without any API key.

***

<p align="center">🏢 <b>Need company data too?</b> Pair this with the <b>LinkedIn Company Scraper</b> for full firmographics on every employer.</p>

<p align="center"><sub>Not affiliated with, endorsed by, or sponsored by LinkedIn. "LinkedIn" is a trademark of LinkedIn Corporation. This tool accesses only publicly available data. Handle personal data responsibly and in compliance with applicable law.</sub></p>

### 📝 Changelog

#### 2026-06-07

- Docs: added coverage for LinkedIn API alternative, bulk profile data export to CSV/JSON, and scraping profiles without login or API key.

#### 2026-06-05

- 🛡️ Reliability fix: results are no longer dropped by strict output validation — runs now complete cleanly even at high volume (thousands of results).
- ⚡ Stability & performance hardening; fresh rebuild.

#### 2026-06-04

- Verified live & refreshed build — reliability/maintenance pass.

# Actor input Schema

## `profiles` (type: `array`):

List of LinkedIn profiles to scrape. Each item can be a full profile URL (`https://www.linkedin.com/in/williamhgates/`) or a bare username (`williamhgates`). Country subdomains (e.g. `in.linkedin.com/in/...`) are handled automatically.

## `includeRecentActivity` (type: `boolean`):

Also capture the member's most recent public posts/articles (title, URL, date, likes) that LinkedIn embeds on the page. Turn off for a leaner, profile-only output.

## `maxConcurrency` (type: `integer`):

How many profiles to fetch in parallel. Lower values are gentler and more reliable; raise it for big lists on residential proxies.

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

Apify Proxy is recommended. The default (datacenter / automatic) is cheapest and works for most runs; switch to RESIDENTIAL for very large lists or if you start seeing throttling.

## Actor input object example

```json
{
  "profiles": [
    "https://www.linkedin.com/in/williamhgates/",
    "satyanadella"
  ],
  "includeRecentActivity": true,
  "maxConcurrency": 8,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `name` (type: `string`):

Member full name

## `headline` (type: `string`):

Professional headline

## `currentCompany` (type: `string`):

Current/most recent employer

## `location` (type: `string`):

Location

## `followerCount` (type: `string`):

Follower count

## `isTopVoice` (type: `string`):

Has LinkedIn Top Voice badge

## `linkedinUrl` (type: `string`):

Profile URL

# 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 = {
    "profiles": [
        "https://www.linkedin.com/in/williamhgates/",
        "satyanadella",
        "https://www.linkedin.com/in/jeffweiner08/",
        "https://www.linkedin.com/in/reidhoffman/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/linkedin-profile-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 = {
    "profiles": [
        "https://www.linkedin.com/in/williamhgates/",
        "satyanadella",
        "https://www.linkedin.com/in/jeffweiner08/",
        "https://www.linkedin.com/in/reidhoffman/",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Profile Scraper - No Login, No Cookies",
        "description": "No-login LinkedIn profile scraper & API alternative. Export public people data to CSV/JSON - bulk profile data extraction, no cookies.",
        "version": "0.0",
        "x-build-id": "vedEgNA1p4L2K1iSQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~linkedin-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-linkedin-profile-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/logiover~linkedin-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-linkedin-profile-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/logiover~linkedin-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-linkedin-profile-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": [
                    "profiles"
                ],
                "properties": {
                    "profiles": {
                        "title": "Profiles (URLs or usernames)",
                        "type": "array",
                        "description": "List of LinkedIn profiles to scrape. Each item can be a full profile URL (`https://www.linkedin.com/in/williamhgates/`) or a bare username (`williamhgates`). Country subdomains (e.g. `in.linkedin.com/in/...`) are handled automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeRecentActivity": {
                        "title": "Include recent activity",
                        "type": "boolean",
                        "description": "Also capture the member's most recent public posts/articles (title, URL, date, likes) that LinkedIn embeds on the page. Turn off for a leaner, profile-only output.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "How many profiles to fetch in parallel. Lower values are gentler and more reliable; raise it for big lists on residential proxies.",
                        "default": 8
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy is recommended. The default (datacenter / automatic) is cheapest and works for most runs; switch to RESIDENTIAL for very large lists or if you start seeing throttling.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
