# Glassdoor Jobs Scraper (`junipr/glassdoor-jobs-scraper`) Actor

Scrape Glassdoor job listings with detailed information including job title, company, salary estimates, location, description, and company ratings. Filter by keyword, location, and job type.

- **URL**: https://apify.com/junipr/glassdoor-jobs-scraper.md
- **Developed by:** [junipr](https://apify.com/junipr) (community)
- **Categories:** Jobs
- **Stats:** 4 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$3.90 / 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.

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

## Glassdoor Jobs Scraper

Extract job listings from Glassdoor with salary estimates, company ratings, CEO approval, culture scores, benefits, and interview insights — all in structured JSON ready for analysis, recruiting pipelines, salary benchmarking, and HR tech applications.

### What Is Glassdoor Jobs Scraper?

Glassdoor is uniquely valuable for job market intelligence because it combines job listings with employer sentiment data that you can't get anywhere else: salary estimates, employee ratings across six culture dimensions, CEO approval ratings, and interview experience reports. This scraper extracts the complete picture — not just the job title and location, but the full context around compensation and company quality that makes Glassdoor the go-to resource for job seekers and HR professionals alike.

Unlike general-purpose job scrapers, this actor is built specifically for Glassdoor's data model. It handles Glassdoor's aggressive anti-bot protection with residential proxy integration, session management, and realistic browsing patterns to maintain a high success rate.

### Key Features

- **Salary estimates** — min, max, and median salary range with currency and pay period
- **Company ratings** — overall rating plus six culture dimension scores: culture and values, diversity and inclusion, work-life balance, senior management, compensation and benefits, and career opportunities
- **CEO approval** — percentage of employees who approve of the CEO
- **Benefits extraction** — benefits listed on the job posting (health insurance, 401(k), PTO, stock options, etc.)
- **Interview data** — difficulty rating, positive/negative/neutral experience percentages (optional, requires detail page fetch)
- **Remote work filtering** — filter by remote, hybrid, or in-person
- **Easy Apply detection** — flag jobs that support one-click Glassdoor Easy Apply
- **Multi-country support** — US, UK, Canada, Australia, Germany, France, India, Singapore, New Zealand
- **Company size and industry** — size range and industry classification
- **Applicant count** — number of applicants shown on each listing
- **Sponsored listing detection** — flag promoted job posts separately
- **Deduplication** — same job appearing under multiple search terms is counted once

### What Data Can You Extract?

| Field | Description |
|-------|-------------|
| `url` | Direct Glassdoor job listing URL |
| `jobId` | Glassdoor internal job ID |
| `title` | Job position title |
| `description` | Full job description (plain text) |
| `descriptionHtml` | Full job description (HTML) |
| `company.name` | Company name |
| `company.rating` | Overall Glassdoor rating (1–5) |
| `company.reviewCount` | Total employee review count |
| `company.ceoName` | Name of current CEO |
| `company.ceoApproval` | CEO approval percentage |
| `company.recommendToFriend` | % who would recommend company to a friend |
| `company.size` | Employee count range (e.g. "1001-5000 employees") |
| `company.industry` | Industry classification |
| `company.cultureScores` | Six-dimension culture ratings object |
| `location.city` | City |
| `location.state` | State or region |
| `location.isRemote` | Whether the role is remote |
| `salary.estimateMin` | Minimum salary estimate (annualized) |
| `salary.estimateMax` | Maximum salary estimate (annualized) |
| `salary.estimateMedian` | Median salary estimate |
| `salary.displayText` | Salary as shown on Glassdoor |
| `salary.isEmployerProvided` | True if salary is from the employer, not Glassdoor estimate |
| `jobType` | Employment type (Full-time, Contract, Internship, etc.) |
| `experienceLevel` | Seniority level |
| `isEasyApply` | Supports Glassdoor Easy Apply |
| `postedDate` | ISO date the job was posted |
| `daysAgo` | Number of days since posting |
| `benefits` | Array of listed benefits |
| `interviewData` | Difficulty, experience percentages, duration |
| `isSponsored` | Whether listing is promoted |
| `applicantCount` | Applicant count string from Glassdoor |
| `scrapedAt` | ISO 8601 extraction timestamp |

### Proxy Requirements

This actor requires **residential proxy** to access Glassdoor, which blocks datacenter IP addresses.

- **Apify paid plans**: Residential proxy is included. The actor uses it by default.
- **Apify free plan**: Free plan does not include residential proxy. You can provide your own residential proxy URL in the proxy configuration, or the actor will attempt to run without proxy (results may be empty or blocked).
- **Without residential proxy**: The actor will still run but may return zero results due to IP blocking by Glassdoor.

### How to Use

**Zero-config run:** Click Start with no inputs. The actor searches for software engineer jobs in San Francisco, CA and returns up to 100 results with salary and company data included.

**Salary benchmarking:**
Set `searchTerms` to a job title, set `includeSalaryData: true`, and collect salary estimates across hundreds of postings. Filter by `location` and `companyRatingMin` to benchmark compensation at quality employers only.

**Company research:**
Provide `companyUrls` pointing to a company's Glassdoor Overview page. The actor extracts all open positions with culture scores, CEO approval, and benefits — useful for competitive intelligence or evaluating potential employers.

**Job market analysis:**
Set `datePosted: "7days"` and run searches across multiple job titles. Use the `daysAgo` and `postedDate` fields to track hiring velocity and demand by role.

**Remote job aggregation:**
Set `remote: "remote"` and provide a broad list of `searchTerms` to build a remote-only job feed with salary data and company ratings.

### Input Example

```json
{
  "searchTerms": ["data scientist", "machine learning engineer"],
  "location": "New York, NY",
  "maxJobs": 200,
  "remote": "remote",
  "includeSalaryData": true,
  "includeCompanyData": true,
  "companyRatingMin": 3.5,
  "datePosted": "7days"
}
````

### Output Example

```json
{
  "url": "https://www.glassdoor.com/job-listing/senior-data-scientist-techcorp-JV_IC1132348_KO0,21_KE22,30.htm",
  "jobId": "1234567890",
  "title": "Senior Data Scientist",
  "description": "We are looking for a Senior Data Scientist to join our growing team...",
  "company": {
    "name": "TechCorp Inc.",
    "rating": 4.2,
    "reviewCount": 3450,
    "ceoApproval": 89,
    "recommendToFriend": 82,
    "size": "1001-5000 employees",
    "industry": "Computer Software",
    "cultureScores": {
      "overallRating": 4.2,
      "cultureAndValues": 4.1,
      "workLifeBalance": 3.8,
      "compensationAndBenefits": 4.3
    }
  },
  "location": {
    "city": "New York",
    "state": "NY",
    "country": "US",
    "isRemote": false
  },
  "salary": {
    "estimateMin": 140000,
    "estimateMax": 195000,
    "estimateMedian": 167500,
    "currency": "USD",
    "period": "yearly",
    "displayText": "$140K - $195K/yr (Glassdoor est.)",
    "isEmployerProvided": false
  },
  "jobType": "Full-time",
  "isEasyApply": true,
  "postedDate": "2026-03-08",
  "daysAgo": 3,
  "benefits": ["Health Insurance", "401(k) Matching", "Unlimited PTO", "Stock Options"],
  "country": "US",
  "scrapedAt": "2026-03-11T12:00:00.000Z"
}
```

### Pricing

This actor uses pay-per-event pricing at **$3.90 per 1,000 jobs** extracted. You are charged once per job listing successfully pushed to the dataset. Expired jobs, login wall blocks, zero-result searches, and deduplicated jobs are not charged.

Pricing includes all platform compute costs — no hidden fees.

### Related Scrapers by Junipr

- [Indeed Job Scraper](https://apify.com/junipr/indeed-job-scraper) — Extract job listings from Indeed.com with titles, salaries, and company ratings
- [Yellow Pages Scraper](https://apify.com/junipr/yellow-pages-scraper) — Scrape business listings from YellowPages.com

### FAQ

#### How much does it cost to scrape Glassdoor?

$3.90 per 1,000 jobs extracted. Running with `maxJobs: 100` costs $0.39. You only pay for jobs that are successfully scraped and pushed to the dataset — expired or blocked jobs are not billed.

#### Can I get salary data from Glassdoor?

Yes. Set `includeSalaryData: true` (the default). The actor extracts Glassdoor's salary estimate as a structured object with `estimateMin`, `estimateMax`, `estimateMedian`, and a flag for whether the salary is employer-provided or a Glassdoor estimate. Hourly and monthly salaries are normalized to annual figures.

#### Does it include company ratings and reviews?

Yes. Set `includeCompanyData: true` (the default) to get the company's overall Glassdoor rating, review count, CEO approval percentage, and culture scores across six dimensions: culture and values, diversity and inclusion, work-life balance, senior management, compensation and benefits, and career opportunities.

#### Can I filter by remote or hybrid jobs?

Yes. Set the `remote` parameter to `"remote"` for remote-only jobs, `"hybrid"` for hybrid, or `"in_person"` for on-site only. The `location.isRemote` field is also set on every result for easy downstream filtering.

#### Does it extract interview difficulty data?

Yes, when `includeInterviewData: true` is set. This adds the `interviewData` object with a difficulty score (1–5), a label (Easy / Average / Difficult), and percentage breakdowns of positive, negative, and neutral experiences. Note: interview data requires fetching the job detail page, which increases run time.

#### Which countries are supported?

US, UK (glassdoor.co.uk), Canada (glassdoor.ca), Australia, Germany, France, India, Singapore, and New Zealand. Set the `country` parameter to the ISO country code. Currency in salary fields reflects the country domain used.

#### Why does Glassdoor require a residential proxy?

Glassdoor uses Cloudflare protection, browser fingerprinting, and IP reputation scoring that blocks datacenter IPs. The actor defaults to Apify proxy (`useApifyProxy: true`). Free-plan users may need to provide their own residential proxy URL in the Proxy Configuration field.

# Actor input Schema

## `searchTerms` (type: `array`):

Job titles or keywords to search for on Glassdoor (e.g. "software engineer", "data scientist", "product manager"). Each term runs as a separate search.

## `jobUrls` (type: `array`):

Specific Glassdoor job listing URLs to scrape. Must be glassdoor.com URLs. Use this to target exact job postings.

## `companyUrls` (type: `array`):

Glassdoor company overview URLs to scrape all jobs from a specific company. Must be glassdoor.com URLs.

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

City, state, or country to search in (e.g. "San Francisco, CA", "New York, NY", "Austin, TX"). Leave blank for nationwide results.

## `radiusMiles` (type: `integer`):

Search radius around the specified location in miles.

## `maxJobs` (type: `integer`):

Maximum number of job listings to extract per run.

## `datePosted` (type: `string`):

Filter by how recently the job was posted.

## `remote` (type: `string`):

Filter by remote work type.

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

Sort order for search results.

## `country` (type: `string`):

Glassdoor country domain to use. US targets glassdoor.com, GB targets glassdoor.co.uk, etc.

## `easyApplyOnly` (type: `boolean`):

When enabled, only return jobs that support Glassdoor Easy Apply.

## `includeCompanyData` (type: `boolean`):

Include company rating, culture scores, CEO approval, and review count in the output.

## `includeSalaryData` (type: `boolean`):

Include salary estimates (min, max, median) in the output.

## `includeInterviewData` (type: `boolean`):

Include interview difficulty rating and experience percentages. Requires fetching detail pages and increases run time.

## `salaryMin` (type: `integer`):

Filter out jobs with estimated annual salary below this value. Leave at 0 to include all jobs regardless of salary.

## `companyRatingMin` (type: `number`):

Only include jobs from companies with a Glassdoor rating at or above this value (1.0–5.0). Set to 0 to include all companies.

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

Residential proxy is required — Glassdoor blocks datacenter IP addresses with 403 errors. Apify paid plans include residential proxy. Free-plan users: provide your own residential proxy URL.

## Actor input object example

```json
{
  "searchTerms": [
    "software engineer"
  ],
  "jobUrls": [],
  "companyUrls": [],
  "location": "San Francisco, CA",
  "radiusMiles": 25,
  "maxJobs": 100,
  "datePosted": "all",
  "remote": "all",
  "sortBy": "relevance",
  "country": "US",
  "easyApplyOnly": false,
  "includeCompanyData": true,
  "includeSalaryData": true,
  "includeInterviewData": false,
  "salaryMin": 0,
  "companyRatingMin": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped Glassdoor job listings with salary estimates, company ratings, and full job details.

# 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 = {
    "searchTerms": [
        "software engineer"
    ],
    "location": "San Francisco, CA"
};

// Run the Actor and wait for it to finish
const run = await client.actor("junipr/glassdoor-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 = {
    "searchTerms": ["software engineer"],
    "location": "San Francisco, CA",
}

# Run the Actor and wait for it to finish
run = client.actor("junipr/glassdoor-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 '{
  "searchTerms": [
    "software engineer"
  ],
  "location": "San Francisco, CA"
}' |
apify call junipr/glassdoor-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Glassdoor Jobs Scraper",
        "description": "Scrape Glassdoor job listings with detailed information including job title, company, salary estimates, location, description, and company ratings. Filter by keyword, location, and job type.",
        "version": "1.0",
        "x-build-id": "5kGvRYvnafYSmdqWO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/junipr~glassdoor-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-junipr-glassdoor-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/junipr~glassdoor-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-junipr-glassdoor-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/junipr~glassdoor-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-junipr-glassdoor-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": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Job titles or keywords to search for on Glassdoor (e.g. \"software engineer\", \"data scientist\", \"product manager\"). Each term runs as a separate search.",
                        "default": [
                            "software engineer"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "jobUrls": {
                        "title": "Direct Job URLs",
                        "type": "array",
                        "description": "Specific Glassdoor job listing URLs to scrape. Must be glassdoor.com URLs. Use this to target exact job postings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "companyUrls": {
                        "title": "Company Page URLs",
                        "type": "array",
                        "description": "Glassdoor company overview URLs to scrape all jobs from a specific company. Must be glassdoor.com URLs.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, state, or country to search in (e.g. \"San Francisco, CA\", \"New York, NY\", \"Austin, TX\"). Leave blank for nationwide results.",
                        "default": "San Francisco, CA"
                    },
                    "radiusMiles": {
                        "title": "Search Radius (miles)",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Search radius around the specified location in miles.",
                        "default": 25
                    },
                    "maxJobs": {
                        "title": "Max Jobs",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of job listings to extract per run.",
                        "default": 100
                    },
                    "datePosted": {
                        "title": "Date Posted",
                        "enum": [
                            "all",
                            "today",
                            "3days",
                            "7days",
                            "30days"
                        ],
                        "type": "string",
                        "description": "Filter by how recently the job was posted.",
                        "default": "all"
                    },
                    "remote": {
                        "title": "Remote Work Filter",
                        "enum": [
                            "all",
                            "remote",
                            "hybrid",
                            "in_person"
                        ],
                        "type": "string",
                        "description": "Filter by remote work type.",
                        "default": "all"
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "date",
                            "salary_desc",
                            "rating"
                        ],
                        "type": "string",
                        "description": "Sort order for search results.",
                        "default": "relevance"
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "US",
                            "GB",
                            "CA",
                            "AU",
                            "DE",
                            "FR",
                            "IN",
                            "SG",
                            "NZ"
                        ],
                        "type": "string",
                        "description": "Glassdoor country domain to use. US targets glassdoor.com, GB targets glassdoor.co.uk, etc.",
                        "default": "US"
                    },
                    "easyApplyOnly": {
                        "title": "Easy Apply Only",
                        "type": "boolean",
                        "description": "When enabled, only return jobs that support Glassdoor Easy Apply.",
                        "default": false
                    },
                    "includeCompanyData": {
                        "title": "Include Company Data",
                        "type": "boolean",
                        "description": "Include company rating, culture scores, CEO approval, and review count in the output.",
                        "default": true
                    },
                    "includeSalaryData": {
                        "title": "Include Salary Data",
                        "type": "boolean",
                        "description": "Include salary estimates (min, max, median) in the output.",
                        "default": true
                    },
                    "includeInterviewData": {
                        "title": "Include Interview Data",
                        "type": "boolean",
                        "description": "Include interview difficulty rating and experience percentages. Requires fetching detail pages and increases run time.",
                        "default": false
                    },
                    "salaryMin": {
                        "title": "Minimum Salary (annual)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter out jobs with estimated annual salary below this value. Leave at 0 to include all jobs regardless of salary.",
                        "default": 0
                    },
                    "companyRatingMin": {
                        "title": "Minimum Company Rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only include jobs from companies with a Glassdoor rating at or above this value (1.0–5.0). Set to 0 to include all companies.",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Residential proxy is required — Glassdoor blocks datacenter IP addresses with 403 errors. Apify paid plans include residential proxy. Free-plan users: provide your own residential proxy URL.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
