# LinkedIn Jobs Scraper 💼 (hiring company + all-in price) (`tagadanar/linkedin-jobs-scraper`) Actor

Fresh LinkedIn job posts and hiring-company details (name, LinkedIn page, industry) in clean JSON. Filter by keyword, location, remote/on-site, experience, posted-since. Monitor new roles daily. One all-in price per job, no API key, no login.

- **URL**: https://apify.com/tagadanar/linkedin-jobs-scraper.md
- **Developed by:** [Tagada Data](https://apify.com/tagadanar) (community)
- **Categories:** Jobs, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 job scrapeds

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

## LinkedIn Jobs Scraper

Turn any LinkedIn jobs search into a clean spreadsheet of open roles and the companies hiring for them. Type the same keywords and location you would use on the site, add the filters you want (remote, experience, job type, posted in the last 24 hours), and get back a flat table: job title, hiring company with its LinkedIn page, location, posting date, and the direct link to apply. Switch on full details and every row also carries the job description, seniority, employment type, job function, industry and the current applicant count.

No login. No cookies to paste. No API key. One clear price per job, with platform usage already included, so your bill is predictable before you press start.

This actor scrapes public job postings and the hiring company only. It does not collect personal profiles, applicants, or the individual who posted the job.

### What you get

One record per job posting:

| Field | Description |
| --- | --- |
| `jobId` | LinkedIn job posting ID |
| `title` | Job title |
| `jobUrl` | Direct link to the public job posting |
| `companyName` | Hiring company |
| `companyUrl` | The company's LinkedIn page |
| `companySlug` | Company handle from its URL (handy for joins and enrichment) |
| `companyLogoUrl` | Company logo image |
| `location` | Location as shown on the posting |
| `postedAt` | Posting age in the site's own words (e.g. "2 days ago") |
| `postedDate` | Posting date as ISO `YYYY-MM-DD` |
| `isNew` | Flagged as newly posted by LinkedIn |
| `benefits` | Any badge on the card (e.g. "Actively Hiring") |
| `searchKeyword` | The keyword this row came from |
| `searchLocation` | The location this row came from |
| `source` | `linkedin.com` |
| `scrapedAt` | When the row was collected (ISO) |

With **Add full job details** switched on, every row also gets:

| Field | Description |
| --- | --- |
| `description` | Full job description text |
| `descriptionHtml` | The same description with its original formatting |
| `seniorityLevel` | e.g. Entry level, Mid-Senior level, Director |
| `employmentType` | Full-time, Part-time, Contract, and so on |
| `jobFunction` | The job function LinkedIn assigns |
| `industries` | The hiring company's industry |
| `applicantsCount` | How many people have applied so far |
| `applicantsCaption` | Applicant count in the site's own words |

Details are billed as a small extra, and only when the extra data is actually found. A posting that has no details to return costs you nothing beyond the base job.

### Who uses this

- **Recruiters and staffing agencies:** watch every new opening for a role and city, see how many applicants each one already has, and reach out before the posting gets crowded.
- **Sales and lead-gen teams:** a company that is hiring for "account executive" or "warehouse manager" is a company with budget and a growth signal. Pull the hiring companies, their LinkedIn pages and industries, and build a prospect list from active demand.
- **Job boards and aggregators:** keep a fresh mirror of postings for a niche, a region, or a set of companies, refreshed on a schedule.
- **Market and talent researchers:** measure hiring volume by function, seniority or location, track which companies are expanding, and benchmark demand over time.
- **Job seekers and career coaches:** collect every relevant opening in one sheet, sorted by date, with the description and applicant count already attached.

### Turn a hiring company into a full lead

The `companyName`, `companyUrl` and `industries` fields make each posting a lead. To go from a hiring company to a legal entity and a real contact, pass the company into a sibling actor:

- [French Company KYC](https://apify.com/tagadanar/french-company-kyc): resolve a French hiring company to its SIREN/SIRET, officers and BODACC status for due diligence.
- [French Company Email Finder](https://apify.com/tagadanar/french-company-contacts): find the SIREN, dirigeants and contact emails for a French hiring company, ready for outreach.

### Input examples

Copy any of these into the input, or use the visual form.

**A single search, fast list of jobs and companies:**

```json
{
  "keywords": ["software engineer"],
  "location": ["Paris"],
  "maxResults": 100
}
````

**New postings from the last 24 hours, run it daily as a monitor:**

```json
{
  "keywords": ["product manager", "product designer"],
  "location": ["London", "Remote"],
  "postedSince": "24h",
  "sortBy": "recent",
  "maxResults": 200
}
```

**Remote, mid-senior, full-time only, with full descriptions and applicant counts:**

```json
{
  "keywords": ["data engineer"],
  "location": ["United States"],
  "workType": "remote",
  "experienceLevel": "mid-senior",
  "jobType": "full-time",
  "scrapeDetails": true,
  "maxResults": 150
}
```

**Paste a LinkedIn search URL straight from your browser (filters included):**

```json
{
  "searchUrls": [
    "https://www.linkedin.com/jobs/search/?keywords=account%20executive&location=Berlin&f_TPR=r604800&f_WT=2"
  ],
  "maxResults": 100
}
```

When `searchUrls` is set, the structured filters above are ignored and every filter already in the URL is used as-is.

### Pricing

You pay per job returned, and a small extra only for jobs where full-detail enrichment actually found data. Platform usage is included in the price, so there is no subscription.

| Event | Price |
| --- | --- |
| Actor start | $0.001 per run |
| Job scraped | $2.00 per 1,000 |
| Job details | $2.00 per 1,000 (only with **Add full job details**, and only when the extra data was found) |

The tiny start fee covers runs that return nothing; on any normal search it is noise next to the per-job price.

### FAQ

**Do I need a LinkedIn account or a cookie?**
No. This reads LinkedIn's public jobs pages, so there is no login, no session cookie and no API key to manage.

**Does it scrape people or applicants?**
No. It collects the public job posting and the hiring company only. It never collects personal profiles, the names of applicants, or the person who posted the role.

**How many jobs can I get per search?**
LinkedIn serves a few hundred results per individual search before it stops paginating. To go deeper, split a broad search into several narrower ones (by city, by seniority, by job type, or with a shorter posted-since window) and the actor will run them all and de-duplicate the results.

**How do I only get brand-new jobs?**
Set **Posted since** to the last 24 hours (or last week) and schedule the run. Each run returns only what LinkedIn currently shows in that window, so a daily 24-hour run is a simple new-jobs monitor.

**Can I get the full job description and how many people applied?**
Yes. Switch on **Add full job details**. Each job then includes the full description, seniority, employment type, job function, industry and the live applicant count. This opens each posting individually, so it is a little slower and costs a small extra per enriched job.

**Can I filter by company?**
Yes. Paste a company's LinkedIn jobs URL into `searchUrls`, or put the numeric company IDs (the number after `f_C=` in that URL) into **Company IDs**.

**How is it priced?**
You pay per job returned, and the LinkedIn page fetching is already included in that price, so there are no separate platform bills to reconcile. Full-detail enrichment, when you turn it on, is a small extra charged only for jobs where the extra data was actually found.

**Which locations work?**
Anything you would type into LinkedIn's location box: a city (`Paris`), a metro area, a region, a country (`United States`), or `Remote`. Each location is combined with each keyword.

**Is the data structured?**
Yes. Every run produces one flat JSON or CSV row per job with the same fields, ready for a spreadsheet, a CRM import or a database.

### Related actors

- [Kleinanzeigen Scraper](https://apify.com/tagadanar/kleinanzeigen-scraper): classifieds listings with seller and location.
- [French Company KYC](https://apify.com/tagadanar/french-company-kyc): SIREN/SIRET, officers and BODACC status for a French company.
- [French Company Email Finder](https://apify.com/tagadanar/french-company-contacts): dirigeants and contact emails for a French company.

***

LinkedIn jobs scraper, LinkedIn jobs API, LinkedIn job listings, scrape LinkedIn jobs, LinkedIn jobs export, hiring company data, job postings dataset, recruitment data, talent sourcing, lead generation from job postings, remote jobs scraper, new jobs monitor, LinkedIn jobs alternative, jobs by company, applicant count, job market research.

# Actor input Schema

## `keywords` (type: `array`):

One search per entry, exactly what you would type into the LinkedIn jobs search box, e.g. <code>software engineer</code>, <code>product manager</code>, <code>registered nurse</code>. Each keyword is run against every location below.

## `location` (type: `array`):

City, region or country to search in, e.g. <code>Paris</code>, <code>Berlin</code>, <code>United States</code>, <code>Remote</code>. Leave empty to search worldwide. Every keyword above is run against every location here.

## `workType` (type: `string`):

Filter by work arrangement, the same choices as on LinkedIn.

## `experienceLevel` (type: `string`):

Filter by the seniority LinkedIn assigns to the posting.

## `jobType` (type: `string`):

Filter by employment type.

## `postedSince` (type: `string`):

Only jobs posted recently. Handy for running this as a scheduled monitor: set it to the last 24 hours and re-run daily to catch new postings.

## `sortBy` (type: `string`):

Order of the results, same choices as on LinkedIn.

## `scrapeDetails` (type: `boolean`):

Open each posting to also collect the full job description, seniority level, employment type, job function, industries and the applicant count. Slower and billed as a small extra per enriched job. Leave off for a fast company + title + link list.

## `companyIds` (type: `array`):

Only return jobs from these companies, by their numeric LinkedIn company ID. Find the ID in a company's LinkedIn jobs URL (the number after <code>f\_C=</code>). Leave empty to search all companies.

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

Stop after this many jobs across all searches. You are only charged for jobs actually delivered.

## `searchUrls` (type: `array`):

Paste one or more LinkedIn jobs search URLs straight from your browser, filters included, e.g. <code>https://www.linkedin.com/jobs/search/?keywords=data%20engineer\&location=Berlin\&f\_TPR=r86400</code>. When set, the filter fields above are ignored.

## Actor input object example

```json
{
  "keywords": [
    "software engineer"
  ],
  "location": [
    "Paris"
  ],
  "workType": "any",
  "experienceLevel": "any",
  "jobType": "any",
  "postedSince": "any",
  "sortBy": "relevance",
  "scrapeDetails": false,
  "maxResults": 10
}
```

# Actor output Schema

## `jobs` (type: `string`):

One item per job in the default dataset.

# 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 = {
    "keywords": [
        "software engineer"
    ],
    "location": [
        "Paris"
    ],
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("tagadanar/linkedin-jobs-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 = {
    "keywords": ["software engineer"],
    "location": ["Paris"],
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("tagadanar/linkedin-jobs-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 '{
  "keywords": [
    "software engineer"
  ],
  "location": [
    "Paris"
  ],
  "maxResults": 10
}' |
apify call tagadanar/linkedin-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Jobs Scraper 💼 (hiring company + all-in price)",
        "description": "Fresh LinkedIn job posts and hiring-company details (name, LinkedIn page, industry) in clean JSON. Filter by keyword, location, remote/on-site, experience, posted-since. Monitor new roles daily. One all-in price per job, no API key, no login.",
        "version": "0.1",
        "x-build-id": "eJUrGsZnLuJeWTjUh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tagadanar~linkedin-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tagadanar-linkedin-jobs-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/tagadanar~linkedin-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-tagadanar-linkedin-jobs-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/tagadanar~linkedin-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-tagadanar-linkedin-jobs-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",
                "properties": {
                    "keywords": {
                        "title": "Job keywords",
                        "type": "array",
                        "description": "One search per entry, exactly what you would type into the LinkedIn jobs search box, e.g. <code>software engineer</code>, <code>product manager</code>, <code>registered nurse</code>. Each keyword is run against every location below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Locations",
                        "type": "array",
                        "description": "City, region or country to search in, e.g. <code>Paris</code>, <code>Berlin</code>, <code>United States</code>, <code>Remote</code>. Leave empty to search worldwide. Every keyword above is run against every location here.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "workType": {
                        "title": "On-site / remote",
                        "enum": [
                            "any",
                            "on-site",
                            "remote",
                            "hybrid"
                        ],
                        "type": "string",
                        "description": "Filter by work arrangement, the same choices as on LinkedIn.",
                        "default": "any"
                    },
                    "experienceLevel": {
                        "title": "Experience level",
                        "enum": [
                            "any",
                            "internship",
                            "entry",
                            "associate",
                            "mid-senior",
                            "director",
                            "executive"
                        ],
                        "type": "string",
                        "description": "Filter by the seniority LinkedIn assigns to the posting.",
                        "default": "any"
                    },
                    "jobType": {
                        "title": "Job type",
                        "enum": [
                            "any",
                            "full-time",
                            "part-time",
                            "contract",
                            "temporary",
                            "internship",
                            "volunteer",
                            "other"
                        ],
                        "type": "string",
                        "description": "Filter by employment type.",
                        "default": "any"
                    },
                    "postedSince": {
                        "title": "Posted since",
                        "enum": [
                            "any",
                            "24h",
                            "week",
                            "month"
                        ],
                        "type": "string",
                        "description": "Only jobs posted recently. Handy for running this as a scheduled monitor: set it to the last 24 hours and re-run daily to catch new postings.",
                        "default": "any"
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "recent"
                        ],
                        "type": "string",
                        "description": "Order of the results, same choices as on LinkedIn.",
                        "default": "relevance"
                    },
                    "scrapeDetails": {
                        "title": "Add full job details (description, seniority, applicants)",
                        "type": "boolean",
                        "description": "Open each posting to also collect the full job description, seniority level, employment type, job function, industries and the applicant count. Slower and billed as a small extra per enriched job. Leave off for a fast company + title + link list.",
                        "default": false
                    },
                    "companyIds": {
                        "title": "Company IDs (optional)",
                        "type": "array",
                        "description": "Only return jobs from these companies, by their numeric LinkedIn company ID. Find the ID in a company's LinkedIn jobs URL (the number after <code>f_C=</code>). Leave empty to search all companies.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max jobs",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Stop after this many jobs across all searches. You are only charged for jobs actually delivered.",
                        "default": 100
                    },
                    "searchUrls": {
                        "title": "Search URLs (optional, replaces the filters above)",
                        "type": "array",
                        "description": "Paste one or more LinkedIn jobs search URLs straight from your browser, filters included, e.g. <code>https://www.linkedin.com/jobs/search/?keywords=data%20engineer&location=Berlin&f_TPR=r86400</code>. When set, the filter fields above are ignored.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
