# Ziprecruiter $1💰 Keyword & URL Job Scraper (`abotapi/ziprecruiter-com-scraper`) Actor

From $1/1k. Pull structured job listings from ziprecruiter.com with titles, companies, salaries, locations, benefits, apply URLs, and full descriptions. Search with filters or paste ZipRecruiter URLs directly. Automatically paginates results with simple pay-per-result pricing and no subscription.

- **URL**: https://apify.com/abotapi/ziprecruiter-com-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

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

## ZipRecruiter Jobs Scraper

Pull structured job listings from ZipRecruiter (ziprecruiter.com) at scale: title, company, company logo, salary, location, employment type, benefits, posted date, apply URL, and full descriptions. Drive it two ways: a point-and-click search builder (keywords + location + filters) or paste any ziprecruiter.com search or job URL straight from your browser. Results page forward automatically, and you pay per result, with no monthly subscription.

### Why this scraper

- Up to 50 fields per job, including parsed salary (min, max, period), structured location (city, state, county), employment type, benefits, company logo, and an apply URL.
- Rich data on every result without opening detail pages: the search results already carry company, salary, location, employment type, benefits, and a description snippet, so most feeds run fast and cheap.
- Optional detail mode adds the full HTML description, structured street address, industry, valid-through date, verified salary, and any contact email or phone the employer pasted into the description (when present) when you need the long form.
- Two input modes: build a search from keywords and filters, or paste finished ziprecruiter.com URLs (multiple supported, each pages forward on its own).
- Filters for date posted, employment type, remote-only, minimum salary, and search radius.
- Forward pagination with total-count detection and de-duplication by job id.
- Pay per result. No flat monthly fee, so a 50-listing run costs cents, not a subscription.

### Data you get

Example values below are from a live ZipRecruiter listing.

| Field | Example |
| --- | --- |
| id | ad8a4fef327eab36 |
| title | Full Stack Software Engineer |
| company | Fannie Mae |
| companyLogo | https://www.ziprecruiter.com/svc/fotomat/.../11a81da1.png |
| companyWebsite | fanniemae.com |
| url | https://www.ziprecruiter.com/c/Fannie-Mae/Job/Full-Stack-Software-Engineer/-in-Reston,VA?jid=ad8a4fef327eab36 |
| location | Reston, VA |
| city | Reston |
| state | Virginia |
| county | Fairfax |
| country | United States |
| locationType | On-site |
| remote | false |
| salary | $123K - $161K/yr |
| salaryMin | 123000 |
| salaryMax | 161000 |
| salaryCurrency | USD |
| salaryPeriod | year |
| employmentType | FULL_TIME |
| employmentTypes | ["FULL_TIME"] |
| benefits | ["MEDICAL", "LIFE_INSURANCE"] |
| industry | Technology |
| occupationalCategory | 15-1133.00: Software Developers, Systems Software |
| snippet | THE IMPACT YOU WILL MAKE The Full Stack Software Engineer role will offer you... |
| descriptionText | (full description text, when detail mode is on) |
| emails | ["careers@example.com"] (parsed from the description; usually empty) |
| phoneNumbers | ["1-800-000-0000"] (parsed from the description; usually empty) |
| datePosted | 2026-04-24T00:00:00Z |
| validThrough | 2026-06-23 |
| applyUrl | https://www.ziprecruiter.com/c/Fannie-Mae/Job/Full-Stack-Software-Engineer/-in-Reston,VA?jid=ad8a4fef327eab36 |
| sponsored | false |
| source | ZipRecruiter |
| scrapedAt | 2026-05-25T00:00:00.000Z |

### How to use

Basic keyword search:

```json
{
  "mode": "search",
  "queries": ["software engineer"],
  "location": "Remote",
  "maxPages": 5,
  "fetchDetails": false
}
````

Search with filters (full-time, posted in the last 5 days, minimum salary):

```json
{
  "mode": "search",
  "queries": ["registered nurse"],
  "location": "Chicago, IL",
  "datePosted": "5",
  "employmentType": "full_time",
  "minSalary": 70000,
  "maxPages": 10,
  "fetchDetails": true
}
```

Remote jobs only, multiple keywords:

```json
{
  "mode": "search",
  "queries": ["data analyst", "data engineer", "data scientist"],
  "remoteOnly": true,
  "maxPages": 5,
  "maxListings": 300
}
```

Paste finished ziprecruiter.com URLs (URL mode):

```json
{
  "mode": "url",
  "urls": [
    "https://www.ziprecruiter.com/jobs-search?search=software+engineer&location=New+York%2C+NY",
    "https://www.ziprecruiter.com/jobs-search?search=warehouse&location=Dallas%2C+TX&days=5"
  ],
  "maxPages": 3
}
```

### Input parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| mode | string | search | "search" builds a query from the fields below; "url" reads from `urls`. |
| queries | array | \["software engineer"] | Keywords. One scrape per keyword. Empty browses without a keyword. |
| location | string | Remote | City and state, ZIP, or "Remote". |
| datePosted | string | any | any, 1, 5, 10, or 30 days. |
| employmentType | string | any | any, full\_time, part\_time, contract, temporary, internship. |
| remoteOnly | boolean | false | Only return jobs flagged remote. |
| minSalary | integer | 0 | Minimum advertised annual salary. 0 = no floor. |
| radius | integer | 0 | Search radius in miles around the location. 0 = site default. |
| skipSponsored | boolean | false | Drop sponsored placements (applied client-side). |
| urls | array | (example) | URL mode: one or more ziprecruiter.com search or job URLs. |
| maxPages | integer | 1 | Max result pages per search (about 20 listings each). |
| maxListings | integer | 0 | Total listings cap across all searches. 0 = no cap. |
| fetchDetails | boolean | false | Also open each job page for the full description and structured address. |
| proxy | object | US residential | Proxy configuration. US residential is required. |

#### Employment-type filtering

ZipRecruiter treats the employment-type filter loosely: it narrows the search but also backfills the results with related jobs, so a part-time search can still surface some full-time roles. This scraper passes your choice to the search AND screens the results so the output favors your requested type. Jobs whose type ZipRecruiter does not label are kept rather than dropped, which keeps results flowing in thin markets. If you need an exact match only, post-filter the `employmentTypes` field in your downstream pipeline.

### Output example

```json
{
  "id": "ad8a4fef327eab36",
  "title": "Full Stack Software Engineer",
  "company": "Fannie Mae",
  "companyLogo": "https://www.ziprecruiter.com/svc/fotomat/public-nosensitive-ziprecruiter-logos/company/11a81da1.png",
  "companyWebsite": "fanniemae.com",
  "url": "https://www.ziprecruiter.com/c/Fannie-Mae/Job/Full-Stack-Software-Engineer/-in-Reston,VA?jid=ad8a4fef327eab36",
  "location": "Reston, VA",
  "city": "Reston",
  "state": "Virginia",
  "county": "Fairfax",
  "country": "United States",
  "locationType": "On-site",
  "remote": false,
  "salary": "$123K - $161K/yr",
  "salaryMin": 123000,
  "salaryMax": 161000,
  "salaryCurrency": "USD",
  "salaryPeriod": "year",
  "employmentType": "FULL_TIME",
  "employmentTypes": ["FULL_TIME"],
  "benefits": ["MEDICAL", "LIFE_INSURANCE"],
  "industry": "Technology",
  "occupationalCategory": "15-1133.00: Software Developers, Systems Software",
  "snippet": "THE IMPACT YOU WILL MAKE The Full Stack Software Engineer role will offer you the flexibility to make each day your own...",
  "descriptionText": "Full job description text appears here when fetchDetails is on.",
  "datePosted": "2026-04-24T00:00:00Z",
  "validThrough": "2026-06-23",
  "directApply": true,
  "applyUrl": "https://www.ziprecruiter.com/c/Fannie-Mae/Job/Full-Stack-Software-Engineer/-in-Reston,VA?jid=ad8a4fef327eab36",
  "sponsored": false,
  "source": "ZipRecruiter",
  "scrapedAt": "2026-05-25T12:00:00.000Z"
}
```

### Plan requirement

ZipRecruiter accepts US residential traffic. The default proxy is Apify Residential pinned to the US, available on the Apify Starter plan and higher. The free plan does not include residential proxy access; free-plan users can uncheck "Use Apify proxy" and paste their own US residential proxy URLs in the proxy field. Datacenter exit IPs are rejected, so a US residential route is the reliable choice for steady runs.

# Actor input Schema

## `mode` (type: `string`):

Search mode = pick keywords + location + filters below. URL mode = paste any ziprecruiter.com search or job URL refined in your browser.

## `queries` (type: `array`):

Free-text search terms (e.g. "software engineer", "registered nurse", "data analyst"). One scrape per keyword. Leave empty to browse without a keyword filter.

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

City + state, ZIP, or "Remote". Examples: "New York, NY", "Chicago, IL", "94103", "Remote". Leave empty to search nationwide.

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

Only return jobs posted within this window. "Any time" walks the unfiltered SERP.

## `employmentType` (type: `string`):

Filter by employment scope. "Any" walks the unfiltered SERP.

## `remoteOnly` (type: `boolean`):

Only return jobs flagged as remote.

## `minSalary` (type: `integer`):

Only return jobs whose advertised pay is at or above this annual figure. Leave at 0 for no salary floor.

## `radius` (type: `integer`):

Distance around the location to include. Leave at 0 to use ZipRecruiter's default radius.

## `skipSponsored` (type: `boolean`):

Drop sponsored / promoted job cards. Applied as a client-side filter.

## `urls` (type: `array`):

One or more ziprecruiter.com URLs. Examples: https://www.ziprecruiter.com/jobs-search?search=software+engineer\&location=Remote, or a single job URL like https://www.ziprecruiter.com/c/Company/Job/Title/-in-City,ST?jid=abc123. Multi-URL supported; each URL pages forward independently. Filter fields above are ignored.

## `maxPages` (type: `integer`):

Hard cap on how many SERP pages to walk per keyword × location combination (or per pasted URL). Each page returns up to 20 listings, so 50 pages ≈ 1,000 listings per search. Use `maxListings` in tandem to cap the total budget across all searches.

## `maxListings` (type: `integer`):

Stop after this many listings across all searches. 0 = no cap.

## `fetchDetails` (type: `boolean`):

When ON, also fetch each job's detail page for the full HTML description, structured street address, industry, valid-through date, and verified salary. SERP cards already carry id, title, company, location, salary, employment type, benefits, snippet, and posted date, so most feeds work great with this OFF (faster and cheaper). Default OFF.

## `proxy` (type: `object`):

ZipRecruiter requires US residential routing (Datacenter exit IPs are rejected by the upstream edge). The default below works on Apify Starter and higher. Free plans without residential access can paste their own residential proxy URLs in this field.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "software engineer"
  ],
  "location": "Remote",
  "datePosted": "any",
  "employmentType": "any",
  "remoteOnly": false,
  "minSalary": 0,
  "radius": 0,
  "skipSponsored": false,
  "urls": [
    "https://www.ziprecruiter.com/jobs-search?search=software+engineer&location=Remote"
  ],
  "maxPages": 1,
  "maxListings": 0,
  "fetchDetails": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "queries": [
        "software engineer"
    ],
    "location": "Remote",
    "urls": [
        "https://www.ziprecruiter.com/jobs-search?search=software+engineer&location=Remote"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/ziprecruiter-com-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 = {
    "queries": ["software engineer"],
    "location": "Remote",
    "urls": ["https://www.ziprecruiter.com/jobs-search?search=software+engineer&location=Remote"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/ziprecruiter-com-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 '{
  "queries": [
    "software engineer"
  ],
  "location": "Remote",
  "urls": [
    "https://www.ziprecruiter.com/jobs-search?search=software+engineer&location=Remote"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call abotapi/ziprecruiter-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ziprecruiter $1💰 Keyword & URL Job Scraper",
        "description": "From $1/1k. Pull structured job listings from ziprecruiter.com with titles, companies, salaries, locations, benefits, apply URLs, and full descriptions. Search with filters or paste ZipRecruiter URLs directly. Automatically paginates results with simple pay-per-result pricing and no subscription.",
        "version": "1.0",
        "x-build-id": "81Zo5pYHrlq2cfe8d"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~ziprecruiter-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-ziprecruiter-com-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/abotapi~ziprecruiter-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-ziprecruiter-com-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/abotapi~ziprecruiter-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-ziprecruiter-com-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "1. Search mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Search mode = pick keywords + location + filters below. URL mode = paste any ziprecruiter.com search or job URL refined in your browser.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Free-text search terms (e.g. \"software engineer\", \"registered nurse\", \"data analyst\"). One scrape per keyword. Leave empty to browse without a keyword filter.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location (optional)",
                        "type": "string",
                        "description": "City + state, ZIP, or \"Remote\". Examples: \"New York, NY\", \"Chicago, IL\", \"94103\", \"Remote\". Leave empty to search nationwide."
                    },
                    "datePosted": {
                        "title": "Date posted",
                        "enum": [
                            "any",
                            "1",
                            "5",
                            "10",
                            "30"
                        ],
                        "type": "string",
                        "description": "Only return jobs posted within this window. \"Any time\" walks the unfiltered SERP.",
                        "default": "any"
                    },
                    "employmentType": {
                        "title": "Employment type",
                        "enum": [
                            "any",
                            "full_time",
                            "part_time",
                            "contract",
                            "temporary",
                            "internship"
                        ],
                        "type": "string",
                        "description": "Filter by employment scope. \"Any\" walks the unfiltered SERP.",
                        "default": "any"
                    },
                    "remoteOnly": {
                        "title": "Remote jobs only",
                        "type": "boolean",
                        "description": "Only return jobs flagged as remote.",
                        "default": false
                    },
                    "minSalary": {
                        "title": "Minimum annual salary (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return jobs whose advertised pay is at or above this annual figure. Leave at 0 for no salary floor.",
                        "default": 0
                    },
                    "radius": {
                        "title": "Search radius (miles)",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Distance around the location to include. Leave at 0 to use ZipRecruiter's default radius.",
                        "default": 0
                    },
                    "skipSponsored": {
                        "title": "Skip sponsored placements",
                        "type": "boolean",
                        "description": "Drop sponsored / promoted job cards. Applied as a client-side filter.",
                        "default": false
                    },
                    "urls": {
                        "title": "Search URLs (URL mode)",
                        "type": "array",
                        "description": "One or more ziprecruiter.com URLs. Examples: https://www.ziprecruiter.com/jobs-search?search=software+engineer&location=Remote, or a single job URL like https://www.ziprecruiter.com/c/Company/Job/Title/-in-City,ST?jid=abc123. Multi-URL supported; each URL pages forward independently. Filter fields above are ignored.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Hard cap on how many SERP pages to walk per keyword × location combination (or per pasted URL). Each page returns up to 20 listings, so 50 pages ≈ 1,000 listings per search. Use `maxListings` in tandem to cap the total budget across all searches.",
                        "default": 1
                    },
                    "maxListings": {
                        "title": "Max listings (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many listings across all searches. 0 = no cap.",
                        "default": 0
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages (richer data)",
                        "type": "boolean",
                        "description": "When ON, also fetch each job's detail page for the full HTML description, structured street address, industry, valid-through date, and verified salary. SERP cards already carry id, title, company, location, salary, employment type, benefits, snippet, and posted date, so most feeds work great with this OFF (faster and cheaper). Default OFF.",
                        "default": false
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "ZipRecruiter requires US residential routing (Datacenter exit IPs are rejected by the upstream edge). The default below works on Apify Starter and higher. Free plans without residential access can paste their own residential proxy URLs in this field."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
