# H1B Visa Data Scraper (`solidcode/h1bvisadata-scraper`) Actor

\[💰 $3 / 1K] Search millions of certified H1B salary filings by employer, job title, city, and year. Get employer, job title, base salary, work location, and filing dates from public US Department of Labor data.

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

## Pricing

from $3.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

## H1B Visa Data Scraper

Pull certified US H1B salary filings at scale — employer name, job title, exact base salary, work location, and filing dates — straight from the public US Department of Labor Labor Condition Application (LCA) disclosure data. Search by employer, job title, city, and year across 10 years of filings (2016–2025), then export a clean spreadsheet in one run. Built for immigration attorneys, job seekers benchmarking offers, recruiters, and researchers who need real prevailing-wage numbers without manually paging through government disclosure tables.

### Why This Scraper?

- **10 years of certified filings (2016–2025)** — every year of public DOL disclosure data on record, with empty and not-yet-filed years skipped automatically.
- **Exact base-salary figures, not ranges** — each row carries the certified annual wage as a clean number (`baseSalary`) and a display string (`baseSalaryDisplay`), ready for pivot tables and averages.
- **Search by employer, job title, city, and year together** — combine any of the four; matching is partial and case-insensitive, so "Google" also catches "Google LLC".
- **Cartesian search in a single run** — pass multiple employers, titles, and cities and the actor runs every combination for you (3 employers × 2 titles = 6 searches), merging the results.
- **Salary-band filter (min/max USD)** — keep only filings inside a wage range, e.g. $120,000–$250,000, to focus on senior or specific pay grades.
- **"All years" with automatic per-year merge and dedup** — pick one year for speed, or scan every covered year and let the actor deduplicate on the DOL case ID so no filing is counted twice.
- **The DOL case ID and source link on every row** — `caseId` plus a `sourceUrl` to the underlying filing page, so any figure is independently verifiable.
- **Search-term echo on every record** — `searchEmployer`, `searchJobTitle`, `searchCity`, and `searchYear` are stamped onto each row, so blended multi-search exports stay traceable.

### Use Cases

**Salary Benchmarking & Compensation**
- Benchmark prevailing wages for a role across top employers
- Compare base salaries for the same title between cities
- Track year-over-year wage trends for an occupation
- Build pay bands from certified figures rather than self-reported estimates

**Immigration & Legal**
- Verify prevailing-wage levels when preparing LCA and PERM filings
- Pull an employer's historical filing record for case strategy
- Document comparable wages for the same role and location
- Confirm certified salaries an employer has filed in prior years

**Job Search & Offer Negotiation**
- See what a target company actually pays for your role
- Compare a written offer against certified filings for the same title
- Identify which employers sponsor and at what salary levels
- Research realistic salary ranges before relocating to a new city

**Recruiting & Talent**
- Map which companies sponsor H1B talent in a given market
- Set competitive offer bands using certified competitor wages
- Source target-company hiring patterns by job title and year
- Inform relocation packages with city-level wage data

**Research & Journalism**
- Study H1B program trends across industries and years
- Analyze sponsorship volume by employer or sector
- Investigate wage distribution for in-demand occupations
- Build datasets for labor-market and immigration reporting

### Getting Started

#### Single employer

```json
{
  "employers": ["Google"],
  "year": "2024"
}
````

#### Role, city, and salary band

```json
{
  "jobTitles": ["Data Scientist"],
  "cities": ["Seattle"],
  "minSalary": 150000,
  "year": "2023"
}
```

#### Multi-employer comparison across all years

```json
{
  "employers": ["Amazon", "Microsoft", "Meta"],
  "jobTitles": ["Software Engineer"],
  "year": "all",
  "minSalary": 120000,
  "maxSalary": 300000,
  "maxResults": 5000
}
```

### Input Reference

#### What to Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `employers` | array of strings | `["Google"]` | One or more company names. Matching is partial and case-insensitive, so "Google" also finds "Google LLC". Each name is searched separately and results are combined. Leave blank to search across all employers. |
| `jobTitles` | array of strings | `["Software Engineer"]` | One or more job titles, e.g. "Software Engineer", "Data Scientist". Partial, case-insensitive match. Each title is searched separately. Leave blank to include every job title. |
| `cities` | array of strings | `[]` | One or more US work-location cities, e.g. "Seattle", "New York". Case-insensitive. Leave blank to include every city nationwide. |
| `year` | select | `All years` | A single filing year, or "All years" to scan every year on record and merge the results. |

#### Filters & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `minSalary` | integer | `0` | Keep only filings with an annual base salary at or above this amount. Leave at `0` for no minimum. |
| `maxSalary` | integer | `0` | Keep only filings with an annual base salary at or below this amount. Leave at `0` for no maximum. |
| `maxResults` | integer | `1000` | Total records to collect across all searches. Set to `0` to collect every matching record. A single employer/year search returns up to ~20,000 filings; to pull more, split by city or by year (each year and search term is collected separately, so combined totals can be much larger). |

#### Advanced

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | array of strings | `[]` | Paste ready-made h1bdata.info result URLs to collect directly. Use only if you already have specific search links; these are collected in addition to any searches above. |

`year` accepts: **All years**, **2025**, **2024**, **2023**, **2022**, **2021**, **2020**, **2019**, **2018**, **2017**, **2016**. Certified filings are present for 2016 through 2025.

### Output

Each filing is one row. Example record:

```json
{
  "employer": "GOOGLE LLC",
  "jobTitle": "SOFTWARE ENGINEER",
  "baseSalary": 184000,
  "baseSalaryDisplay": "$184,000",
  "city": "MOUNTAIN VIEW",
  "state": "CA",
  "location": "MOUNTAIN VIEW, CA",
  "submitDate": "2024-03-12",
  "startDate": "2024-09-01",
  "year": 2024,
  "caseStatus": "CERTIFIED",
  "caseId": "I-200-24072-123456",
  "sourceUrl": "https://h1bdata.info/details.php?id=I-200-24072-123456",
  "searchEmployer": "Google",
  "searchJobTitle": "Software Engineer",
  "searchCity": null,
  "searchYear": "2024",
  "scrapedAt": "2026-06-26T14:05:33Z"
}
```

#### Filing Fields

| Field | Type | Description |
|-------|------|-------------|
| `employer` | string | Employer legal name as filed with the DOL. |
| `jobTitle` | string | Job title on the certified filing. |
| `baseSalary` | number | Certified annual base salary as a clean number. |
| `baseSalaryDisplay` | string | Same salary formatted with a `$` and thousands separators. |
| `caseStatus` | string | Filing status — always `CERTIFIED` (the source lists certified filings only). |
| `caseId` | string | The DOL case identifier for the filing. |
| `sourceUrl` | string | Link to the underlying filing page for verification. |

#### Location & Dates

| Field | Type | Description |
|-------|------|-------------|
| `city` | string | Work-location city. |
| `state` | string | Work-location state. |
| `location` | string | Full "CITY, STATE" location as filed. |
| `submitDate` | string | Filing submission date (YYYY-MM-DD). |
| `startDate` | string | Employment start date on the filing (YYYY-MM-DD). |
| `year` | number | Filing year. |

#### Search Echo

| Field | Type | Description |
|-------|------|-------------|
| `searchEmployer` | string | The employer term that produced this row (null for `startUrls`). |
| `searchJobTitle` | string | The job-title term that produced this row. |
| `searchCity` | string | The city term that produced this row. |
| `searchYear` | string | The year selection that produced this row. |
| `scrapedAt` | string | Timestamp the record was collected (ISO 8601). |

### Tips for Best Results

- **Employer names match the DOL-canonical legal name.** Search a short root like "Google" to catch "Google LLC", or "Amazon" to catch "Amazon.com Services LLC" — over-specific names miss filings.
- **Use a single year for the largest employers.** "All years" scans and merges every covered year for completeness, but a household-name employer can return tens of thousands of rows per year — pick one year when you only need recent data.
- **Set a salary band to focus on a pay grade.** Pair `minSalary` and `maxSalary` to isolate senior or entry-level filings instead of pulling the full distribution.
- **Add a city to keep nationwide titles fast.** A common title like "Software Engineer" with no other filter is huge — combining it with a city sharpens both speed and relevance.
- **Combine employers, titles, and cities to run a comparison in one pass.** Multiple values become every combination automatically, and the `search*` echo fields let you split the blended export back apart.
- **Always keep a `maxResults` cap unless you truly want everything.** Popular searches can run very large; the cap trims the export to exactly the number you ask for.

### Pricing

**From $3.00 per 1,000 results** — flat pay-per-result, with no surprises for large historical pulls. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.36 | $0.34 | $0.32 | $0.30 |
| 1,000 | $3.60 | $3.40 | $3.20 | $3.00 |
| 10,000 | $36.00 | $34.00 | $32.00 | $30.00 |
| 100,000 | $360.00 | $340.00 | $320.00 | $300.00 |

A "result" is one certified filing record pushed to your dataset (after your salary and `maxResults` filters are applied). Platform fees are additional.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects certified H1B labor condition filings from public US Department of Labor disclosure data, which is published for transparency. Use the data for lawful informational, research, and benchmarking purposes, and in compliance with the source site's terms of use and all applicable laws. Although these records are public government disclosures, they relate to real employers and roles — handle the data responsibly and respect any privacy and data-protection obligations that apply to your use.

# Actor input Schema

## `employers` (type: `array`):

One or more company names to search for, e.g. "Google", "Amazon", "Deloitte". Matching is partial and case-insensitive, so "Google" also finds "Google LLC". Each name is searched separately and results are combined. Leave blank to search across all employers (use a job title or city filter to keep the run focused).

## `jobTitles` (type: `array`):

One or more job titles to search for, e.g. "Software Engineer", "Data Scientist", "Product Manager". Matching is partial and case-insensitive. Each title is searched separately and results are combined. Leave blank to include every job title.

## `cities` (type: `array`):

One or more US work-location cities to limit results to, e.g. "Seattle", "New York", "Austin". Matching is case-insensitive. Leave blank to include every city nationwide.

## `year` (type: `string`):

Limit results to a single filing year, or choose "All years" to include every year on record. Certified filings are available for 2016 through 2025.

## `startUrls` (type: `array`):

Paste ready-made h1bdata.info result URLs to scrape directly. Use this only if you already have specific search links; otherwise leave it blank and use the search fields above. When provided, these URLs are scraped in addition to any searches above.

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

Only keep filings with an annual base salary at or above this amount, e.g. 100000. Leave at 0 for no minimum.

## `maxSalary` (type: `integer`):

Only keep filings with an annual base salary at or below this amount, e.g. 250000. Leave at 0 for no maximum.

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

How many filing records to collect in total across all searches. Default 1000 — increase for bigger runs, or set to 0 to collect every matching record. A single employer/year search returns up to ~20,000 filings due to platform limits; to pull more, split the search by city or by year (each year and each search term is collected separately, so totals across them can be much larger).

## Actor input object example

```json
{
  "employers": [
    "Google"
  ],
  "jobTitles": [
    "Software Engineer"
  ],
  "cities": [],
  "year": "all",
  "startUrls": [],
  "minSalary": 0,
  "maxSalary": 0,
  "maxResults": 1000
}
```

# Actor output Schema

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

Table of H1B filings with employer, job title, salary, and location at a glance.

## `salaries` (type: `string`):

Table focused on base salary alongside submit and start dates.

# 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 = {
    "employers": [
        "Google"
    ],
    "jobTitles": [
        "Software Engineer"
    ],
    "cities": [],
    "year": "all",
    "startUrls": [],
    "minSalary": 0,
    "maxSalary": 0,
    "maxResults": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/h1bvisadata-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 = {
    "employers": ["Google"],
    "jobTitles": ["Software Engineer"],
    "cities": [],
    "year": "all",
    "startUrls": [],
    "minSalary": 0,
    "maxSalary": 0,
    "maxResults": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/h1bvisadata-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 '{
  "employers": [
    "Google"
  ],
  "jobTitles": [
    "Software Engineer"
  ],
  "cities": [],
  "year": "all",
  "startUrls": [],
  "minSalary": 0,
  "maxSalary": 0,
  "maxResults": 1000
}' |
apify call solidcode/h1bvisadata-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "H1B Visa Data Scraper",
        "description": "[💰 $3 / 1K] Search millions of certified H1B salary filings by employer, job title, city, and year. Get employer, job title, base salary, work location, and filing dates from public US Department of Labor data.",
        "version": "1.0",
        "x-build-id": "1ppWO5JVGDlcBdOBy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~h1bvisadata-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-h1bvisadata-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/solidcode~h1bvisadata-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-h1bvisadata-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/solidcode~h1bvisadata-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-h1bvisadata-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": {
                    "employers": {
                        "title": "Employer names",
                        "type": "array",
                        "description": "One or more company names to search for, e.g. \"Google\", \"Amazon\", \"Deloitte\". Matching is partial and case-insensitive, so \"Google\" also finds \"Google LLC\". Each name is searched separately and results are combined. Leave blank to search across all employers (use a job title or city filter to keep the run focused).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "jobTitles": {
                        "title": "Job titles",
                        "type": "array",
                        "description": "One or more job titles to search for, e.g. \"Software Engineer\", \"Data Scientist\", \"Product Manager\". Matching is partial and case-insensitive. Each title is searched separately and results are combined. Leave blank to include every job title.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "cities": {
                        "title": "Cities",
                        "type": "array",
                        "description": "One or more US work-location cities to limit results to, e.g. \"Seattle\", \"New York\", \"Austin\". Matching is case-insensitive. Leave blank to include every city nationwide.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "year": {
                        "title": "Filing year",
                        "enum": [
                            "all",
                            "2025",
                            "2024",
                            "2023",
                            "2022",
                            "2021",
                            "2020",
                            "2019",
                            "2018",
                            "2017",
                            "2016"
                        ],
                        "type": "string",
                        "description": "Limit results to a single filing year, or choose \"All years\" to include every year on record. Certified filings are available for 2016 through 2025.",
                        "default": "all"
                    },
                    "startUrls": {
                        "title": "Start URLs (advanced)",
                        "type": "array",
                        "description": "Paste ready-made h1bdata.info result URLs to scrape directly. Use this only if you already have specific search links; otherwise leave it blank and use the search fields above. When provided, these URLs are scraped in addition to any searches above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "minSalary": {
                        "title": "Minimum base salary (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep filings with an annual base salary at or above this amount, e.g. 100000. Leave at 0 for no minimum.",
                        "default": 0
                    },
                    "maxSalary": {
                        "title": "Maximum base salary (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep filings with an annual base salary at or below this amount, e.g. 250000. Leave at 0 for no maximum.",
                        "default": 0
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "How many filing records to collect in total across all searches. Default 1000 — increase for bigger runs, or set to 0 to collect every matching record. A single employer/year search returns up to ~20,000 filings due to platform limits; to pull more, split the search by city or by year (each year and each search term is collected separately, so totals across them can be much larger).",
                        "default": 1000
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
