# WorkIndia Candidate Scraper (`solidcode/workindia-in-scraper`) Actor

\[💰 $1.80 / 1K] Extract WorkIndia blue-collar candidate profiles by job title and city. Get names, location, experience, skills, qualifications, match scores and hot-lead flags — ideal for recruiter lead generation and talent sourcing.

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

## Pricing

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

## WorkIndia Candidate Scraper

Pull blue-collar and entry-level job-seeker profiles from WorkIndia — India's largest blue-collar hiring marketplace — at scale, complete with location, age, experience, education, English proficiency, match scores, and lead-qualification signals. Search by role and city, and the scraper returns clean, structured candidate rows ready for your sourcing pipeline. Built for recruiters, staffing agencies, and talent teams sourcing blue-collar and field workers across India who need a searchable talent-pool dataset without combing through candidate cards one at a time.

### Why This Scraper?

- **Millions of blue-collar candidates across 750+ Indian cities** — tap WorkIndia's nationwide pool of delivery, retail, driving, telecalling, and field-sales workers, from metros like Mumbai and Delhi to smaller towns, all from one search.
- **Roles matched to 45 WorkIndia candidate categories** — enter job titles like Delivery Executive, Telecaller, or Field Sales and each is mapped to WorkIndia's real candidate sectors (delivery, accounts, driver, retail, and 41 more) so your results are genuinely narrowed, not a generic city dump.
- **Match scores on every candidate** — a 0–100 profile-quality score on each row for fast shortlisting and prioritization.
- **Hot-lead and urgency signals** — a hot-lead classification tag plus an "actively looking urgently" flag surface the candidates most likely to respond.
- **Activity recency built in** — a last-seen date and resume-available flag tell you who is engaged right now versus a stale profile.
- **English proficiency graded** — every candidate carries a readable English level (No English, Thoda English, Good English, Fluent English) — critical for customer-facing and voice roles.
- **Full experience and education fields** — fresher-vs-experienced classification, previous job title, qualification (10th, 12th, graduate, diploma), and area within the city on each row.
- **Three sort modes** — order candidates by newest joined, most recently active, or nearest to the city center, so the freshest or closest talent surfaces first.
- **Auto-normalized city names and forgiving filters** — type "bangalore", "bombay", or "gurgaon" and they resolve to WorkIndia's canonical cities automatically; unrecognized roles widen the search instead of returning zero.

### Use Cases

**Talent Sourcing & Recruitment**
- Build a shortlist of delivery, telecaller, or driver candidates in your target cities
- Prioritize outreach using match scores and hot-lead tags
- Focus on actively-looking candidates flagged as urgently seeking work
- Filter your pipeline to candidates with a resume already on file

**Staffing Agency Operations**
- Map available blue-collar talent city by city for client mandates
- Compare candidate supply across delivery, retail, and field-sales categories
- Refresh a live talent database with newest-joined workers weekly
- Qualify leads by English proficiency for customer-facing placements

**Workforce & Market Research**
- Measure blue-collar candidate supply across 750+ Indian cities
- Analyze experience mix (fresher vs. experienced) by role and region
- Track qualification and English-level distribution in a labor market
- Benchmark talent availability before opening a new hub or branch

**Recruitment Ops & Integration**
- Feed structured candidate rows into your ATS or CRM
- Power sourcing dashboards with match-score and activity signals
- Segment a market by category, city, and recency for targeted campaigns
- Schedule recurring pulls to keep a sourcing pool continuously fresh

### Getting Started

#### Search One Role in One City

The simplest run — a single role and city with default settings:

```json
{
    "jobTitles": ["Delivery Executive"],
    "cities": ["mumbai"]
}
````

#### Multiple Roles Across Multiple Cities

Every role is matched to its WorkIndia categories and searched in every city:

```json
{
    "jobTitles": ["Telecaller", "Field Sales"],
    "cities": ["mumbai", "delhi", "bangalore"],
    "sortBy": "active",
    "maxResults": 500
}
```

#### Advanced — Explicit Categories and Full Options

Add specific WorkIndia sectors on top of your job-title matches, sorted by nearest to the city center:

```json
{
    "jobTitles": ["Delivery Executive"],
    "cities": ["bangalore", "pune", "hyderabad"],
    "industries": ["delivery", "driver", "field_sales"],
    "sortBy": "nearest",
    "maxResults": 1000
}
```

### Input Reference

#### Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `jobTitles` | array of strings | `["Delivery Executive"]` | Job roles you're hiring for (e.g. Delivery Executive, Telecaller, Field Sales). Each is matched to WorkIndia's candidate categories to find relevant workers. Add one or more. |
| `cities` | array of strings | `["mumbai", "delhi"]` | Cities to search in, for example "mumbai", "delhi", or "bangalore". Add one or more. |
| `industries` | array of strings | `[]` | Optional advanced override. Add specific WorkIndia sectors (e.g. "delivery", "field\_sales", "retail", "driver", "telecalling") on top of whatever your job titles already match. Leave empty to search only the categories matched from your job titles. |

#### Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | string (select) | `Newest — most recently joined` | Order candidates by **Newest — most recently joined**, **Most Active — recent activity first**, or **Nearest — closest to city center**. |
| `maxResults` | integer | `100` | Maximum number of candidates to return. Set to `0` for unlimited (capped internally at a large safety ceiling to prevent runaway runs). Results fill from the first city onward until the cap is reached. WorkIndia returns at most 10,000 candidates per role-and-city search — add more cities or more specific roles to collect more. |

### Output

Each candidate is one flat row. Below is a representative result:

```json
{
    "candidateId": "ec4a1a1dbcd497517b5a087fd7d4182d062092d8c5a34475fd549ef582a4f52f",
    "fullName": "Aparna Gharat",
    "age": 38,
    "gender": "female",
    "location": "Saphale",
    "city": "mumbai",
    "qualification": "graduate",
    "englishLevel": "Thoda English",
    "totalExperience": "Experienced",
    "yearsOfExperience": 5,
    "previousJobTitle": "Executive HR",
    "previousCompany": "Reliance Retail",
    "skills": ["Data Entry", "MS Office"],
    "sectors": ["retail"],
    "languages": ["Hindi", "Marathi"],
    "assets": ["Two Wheeler"],
    "isLookingUrgently": true,
    "isMobileVerified": true,
    "hasResume": true,
    "isUnlocked": false,
    "mobileNo": null,
    "matchScore": 67,
    "hotLeadStatus": "old_lead",
    "lastSeen": "2026-06-28",
    "joinDate": "2025-11-14",
    "profilePicUrl": "https://media.workindia.in/profile/ec4a1a1d.jpg",
    "searchJobTitle": "Delivery Executive",
    "searchCity": "mumbai",
    "scrapedAt": "2026-07-02T14:22:37Z"
}
```

#### Core Profile

| Field | Type | Description |
|-------|------|-------------|
| `candidateId` | string | Stable candidate identifier |
| `fullName` | string | Candidate name |
| `age` | integer | Age in years |
| `gender` | string | Gender |
| `location` | string | Area / neighborhood within the city |
| `city` | string | City |
| `qualification` | string | Highest education level (10th, 12th, graduate, diploma) |
| `englishLevel` | string | English proficiency label |
| `profilePicUrl` | string | Candidate profile photo URL (when available) |

#### Experience & Skills

| Field | Type | Description |
|-------|------|-------------|
| `totalExperience` | string | Fresher vs. experienced classification |
| `yearsOfExperience` | number | Years worked (when available) |
| `previousJobTitle` | string | Most recent prior job title (when available) |
| `previousCompany` | string | Most recent prior employer (when available) |
| `skills` | array | Candidate skills (when available) |
| `sectors` | array | Work sectors the candidate has experience in |
| `languages` | array | Spoken languages (when available) |
| `assets` | array | Assets such as a two-wheeler or documents (when available) |

#### Lead Signals & Provenance

| Field | Type | Description |
|-------|------|-------------|
| `matchScore` | integer | Profile-quality score, 0–100 |
| `hotLeadStatus` | string | Hot-lead classification tag |
| `isLookingUrgently` | boolean | Candidate is actively / urgently seeking work |
| `isMobileVerified` | boolean | Candidate's mobile number is verified on WorkIndia |
| `hasResume` | boolean | A resume is available on the profile |
| `isUnlocked` | boolean | Whether the candidate's contact has been unlocked (always `false` on public data) |
| `mobileNo` | string | Candidate phone number. `null` on public profiles; only populated after unlocking the candidate inside a WorkIndia employer plan |
| `lastSeen` | string | Date the candidate was last active |
| `joinDate` | string | Date the candidate joined WorkIndia |
| `searchJobTitle` | string | The role query that produced this row |
| `searchCity` | string | The city query that produced this row |
| `scrapedAt` | string | Timestamp of extraction (ISO 8601) |

### Tips for Best Results

- **Job titles map to categories, not exact titles** — a broad role like "Delivery" or "Sales" widens the category match and returns more candidates, while a very specific phrasing narrows it. Start broad, then refine.
- **Add cities to scale past the 10,000-per-search ceiling** — each role-and-city search returns up to 10,000 candidates, so splitting across several cities is the reliable way to collect a larger pool.
- **Results fill city by city, in order** — the `maxResults` cap is filled from the first city onward, so with several cities the cap can be reached before later cities are searched. For an even spread across every city, run each city as its own task or raise `maxResults`.
- **Use "Most Active" to reach responsive candidates** — sorting by recent activity surfaces people who opened WorkIndia recently and are more likely to reply.
- **Combine `industries` with `jobTitles` to widen a niche search** — add explicit sectors like `delivery` or `driver` alongside your roles to pull in adjacent categories in one run.
- **Type city names however you like** — "bangalore", "bombay", "gurgaon", and "calcutta" all resolve automatically to WorkIndia's canonical city names.
- **Filter your results on the resume and urgency flags** — narrowing to candidates with `hasResume: true` and `isLookingUrgently: true` gives you the strongest sourcing shortlist.
- **Set `maxResults` to 0 only when you truly want everything** — for most sourcing runs a cap of 100–1,000 per role keeps results focused and fast.

### Pricing

**From $1.80 per 1,000 results** — undercutting comparable WorkIndia candidate scrapers on the market. 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.22 | $0.20 | $0.19 | $0.18 |
| 1,000 | $2.15 | $2.00 | $1.90 | $1.80 |
| 10,000 | $21.50 | $20.00 | $19.00 | $18.00 |
| 100,000 | $215.00 | $200.00 | $190.00 | $180.00 |

A "result" is one candidate row in your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Apify 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 scraper collects publicly available candidate profile data from WorkIndia for legitimate recruitment, sourcing, and market-research purposes. It does not unlock or deliver private contact details — the `mobileNo` field is empty on public profiles and is only populated by WorkIndia after you unlock a candidate inside your own employer plan; you engage candidates through WorkIndia's own platform. You are responsible for using the collected data in compliance with WorkIndia's terms of service, applicable data-protection and privacy laws (including India's data-protection regulations), and fair-hiring and anti-discrimination rules. Do not use this data to harass individuals, or for any unlawful or discriminatory purpose. Always handle personal data responsibly and lawfully. </content> </invoke>

# Actor input Schema

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

Job roles you're hiring for (e.g. Delivery Executive, Telecaller, Field Sales) — each is matched to WorkIndia's candidate categories to find relevant workers. Add one or more.

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

Cities to search in, for example 'mumbai', 'delhi', or 'bangalore'. Add one or more. Results fill from the first city onward until Max Candidates is reached — for even coverage across cities, run each city separately or raise Max Candidates.

## `industries` (type: `array`):

Optional explicit category override. Add specific WorkIndia sectors (e.g. 'delivery', 'field\_sales', 'retail', 'driver', 'telecalling') to include on top of whatever your job titles already match. Leave empty to search only the categories matched from your job titles. Unrecognised values are ignored (the search widens) rather than returning zero results.

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

Choose the order in which candidates are collected.

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

Maximum number of candidates to return. Set to 0 for unlimited (capped internally at a large safety ceiling to prevent runaway runs). Results fill from the first city onward until this cap is reached, so with several cities the cap may be met before later cities are searched — for even coverage, run each city separately. Note: WorkIndia's search returns at most 10,000 candidates per job-title-and-city combination — to collect more, add more cities or more specific job titles.

## Actor input object example

```json
{
  "jobTitles": [
    "Delivery Executive"
  ],
  "cities": [
    "mumbai",
    "delhi"
  ],
  "industries": [],
  "sortBy": "newest",
  "maxResults": 100
}
```

# Actor output Schema

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

Table of scraped candidates with key profile fields.

## `leadSignals` (type: `string`):

Table focused on match score, hot-lead status, and verification flags.

# 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 = {
    "jobTitles": [
        "Delivery Executive"
    ],
    "cities": [
        "mumbai",
        "delhi"
    ],
    "industries": [],
    "sortBy": "newest",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/workindia-in-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 = {
    "jobTitles": ["Delivery Executive"],
    "cities": [
        "mumbai",
        "delhi",
    ],
    "industries": [],
    "sortBy": "newest",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/workindia-in-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 '{
  "jobTitles": [
    "Delivery Executive"
  ],
  "cities": [
    "mumbai",
    "delhi"
  ],
  "industries": [],
  "sortBy": "newest",
  "maxResults": 100
}' |
apify call solidcode/workindia-in-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "WorkIndia Candidate Scraper",
        "description": "[💰 $1.80 / 1K] Extract WorkIndia blue-collar candidate profiles by job title and city. Get names, location, experience, skills, qualifications, match scores and hot-lead flags — ideal for recruiter lead generation and talent sourcing.",
        "version": "1.0",
        "x-build-id": "eGeHGMneAQAR3MMWa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~workindia-in-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-workindia-in-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~workindia-in-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-workindia-in-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~workindia-in-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-workindia-in-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": {
                    "jobTitles": {
                        "title": "Job Titles",
                        "type": "array",
                        "description": "Job roles you're hiring for (e.g. Delivery Executive, Telecaller, Field Sales) — each is matched to WorkIndia's candidate categories to find relevant workers. Add one or more.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "cities": {
                        "title": "Cities",
                        "type": "array",
                        "description": "Cities to search in, for example 'mumbai', 'delhi', or 'bangalore'. Add one or more. Results fill from the first city onward until Max Candidates is reached — for even coverage across cities, run each city separately or raise Max Candidates.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "industries": {
                        "title": "Industries (advanced)",
                        "type": "array",
                        "description": "Optional explicit category override. Add specific WorkIndia sectors (e.g. 'delivery', 'field_sales', 'retail', 'driver', 'telecalling') to include on top of whatever your job titles already match. Leave empty to search only the categories matched from your job titles. Unrecognised values are ignored (the search widens) rather than returning zero results.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort Candidates By",
                        "enum": [
                            "newest",
                            "active",
                            "nearest"
                        ],
                        "type": "string",
                        "description": "Choose the order in which candidates are collected.",
                        "default": "newest"
                    },
                    "maxResults": {
                        "title": "Max Candidates",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of candidates to return. Set to 0 for unlimited (capped internally at a large safety ceiling to prevent runaway runs). Results fill from the first city onward until this cap is reached, so with several cities the cap may be met before later cities are searched — for even coverage, run each city separately. Note: WorkIndia's search returns at most 10,000 candidates per job-title-and-city combination — to collect more, add more cities or more specific job titles.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
