# Hi Jobs (HIJOBS) Scraper: Scotland Highlands & Islands Jobs (`getascraper/hijobs-scraper`) Actor

Scrape hijobs.net Highlands and Islands jobs via the official mobile API. Extract salaries, locations, apply emails, and full descriptions without Cloudflare blocking. Supports direct search URL or filters, recency filter, and JSON or CSV output. Perfect for ATS syncing. $2 per 1,000 results.

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

## Pricing

from $2.00 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## HIJOBS Scraper: Scotland's Highlands & Islands Jobs

**HIJOBS scraper and regional recruitment data extraction API for Scotland's Highlands and Islands.** Pull live job vacancies from hijobs.net with complete candidate and employer contact details, structured salary fields, and full job descriptions in JSON or CSV format. Built with the official reverse-engineered mobile API, this tool completely bypasses Cloudflare protections and requires no proxy configuration.

Whether you are a Scottish recruiter syncing vacancies to an ATS, a market researcher tracking regional economic patterns, or an aggregator building localized job boards, this Apify Actor gives you structured Highlands and Islands job data on a daily basis.

---

### What does HIJOBS Scraper do?

* **Reverse-Engineered Performance:** Connects directly to the mobile application backend (`api.hijobs.co.uk`) to retrieve clean, structured JSON data. It does not scrape dynamic HTML, avoiding brittle UI updates and Cloudflare browser challenges.
* **Complete Vacancy Enrichment:** Fetches full job details including direct recruiter emails, company phone numbers, application URLs, and complete HTML descriptions.
* **PPU/PPE and Cost Optimized:** Uses a lightweight HTTP client (no headless browsers) which runs all ~2,300 live jobs in less than 30 seconds for under $0.05 in compute power.
* **Precise Recency Filtering:** Built-in `postedWithinHours` filter stops pagination the moment it encounters jobs older than your cutoff (e.g. 24 hours), saving time and cost on daily cron runs.
* **Clean Integrations:** Easily download datasets in JSON, CSV, Excel, XML, or RSS formats.

---

### Why use HIJOBS Scraper?

HIJOBS is the dominant regional jobs board for Inverness, Oban, Skye, Moray, Argyll, and the Outer Hebrides. It hosts over 2,300 live vacancies in key regional sectors like hospitality, care, tourism, agriculture, trades, and local public bodies.

Use this Actor to:
1. **Sync Local Jobs:** Automatically populate regional job listings on your own platform or aggregate feeds for remote-work or hospitality portals.
2. **Contact Hiring Employers:** Target active regional businesses with direct recruiting pipelines using parsed emails and telephone lines.
3. **Monitor Labor Trends:** Track localized wage rates, vacancy durations, and hiring activity in real time.

---

### How to Scrape HIJOBS Data Step-by-Step

1. Open the **Input** tab in Apify Console.
2. Optionally enter **HIJOBS URLs** (like `https://hijobs.net/jobs/oban` or any search page). If left empty, the scraper walks the entire newest-first feed.
3. Configure optional search filters like **Keyword Search**, **Location Filter**, or dropdowns for **Recruiter Type** and **Contract Type**.
4. Set **Posted Within Hours** (e.g., `24`) if running daily to enable early-stop pagination.
5. Choose whether to enable **Enrich Job Details** to retrieve emails, phones, and full HTML descriptions.
6. Click **Start** and export your clean dataset.

---

### Input

| Field | Type | Description | Default |
|---|---|---|---|
| `startUrls` | array | Specific hijobs.net listing, facet, search, or direct job URLs. | `[]` |
| `keywords` | string | Filter jobs by keywords (e.g. "support worker"). | `""` |
| `where` | string | Filter by town, area, or region (e.g. "Inverness"). | `""` |
| `employerType` | string | Recruiter filter (`charity-cic`, `direct-employer`, `agency`). | `"any"` |
| `hours` | string | Hours filter (`full-time`, `part-time`). | `"any"` |
| `contractType` | string | Contract type filter (`permanent`, `contract`, `temporary`, `volunteer`). | `"any"` |
| `sort` | string | Ordering (`added`, `date`, `salary`, `relevance`). | `"added"` |
| `enrichDetail` | boolean | Fetch each job's API page to extract full description and contact emails. | `true` |
| `onlyNewJobs` | boolean | Delta monitoring mode. Only outputs new vacancies not seen in previous runs. | `false` |
| `postedWithinHours` | integer | Cutoff in hours. Stops scanning older items to save cost. | `0` |
| `maxItems` | integer | Hard cap on total results returned. | `1000` |

---

### Output Example

Each dataset item represents a single job vacancy.

```json
{
  "type": "job",
  "source": "hijobs.net",
  "jobId": "405981",
  "slug": "sales-support-administrator-marketing-assistant",
  "jobUrl": "https://hijobs.net/job/405981/sales-support-administrator-marketing-assistant",
  "apiUrl": "https://api.hijobs.co.uk/job/405981",
  "title": "Sales Support Administrator/Marketing Assistant",
  "companyName": "Wyvex Media",
  "companyWebsite": "http://www.wyvexmedia.co.uk/",
  "companyDomain": "wyvexmedia.co.uk",
  "location": "Oban",
  "remote": false,
  "salary": {
    "currency": "GBP",
    "min": 25000,
    "max": 28000,
    "raw": "£25,000 to £28,000 per annum",
    "unit": "year"
  },
  "salaryRaw": "£25,000 to £28,000 per annum",
  "categories": ["Admin & Office", "Marketing"],
  "employmentTypes": ["Full Time"],
  "contractType": "Permanent",
  "hours": "35 per week",
  "postedDate": "2026-06-05T08:30:06.050Z",
  "closingDate": "2026-07-12T13:33:21.000Z",
  "description": "<p>Responsibilities...</p>",
  "descriptionText": "Responsibilities: To undertake training on our CRM system...",
  "applyType": "email",
  "applyUrl": "https://hijobs.net/apply/405981",
  "applyEmail": "hr@wyvexmedia.co.uk",
  "externalApplyUrl": null,
  "scrapedAt": "2026-06-06T10:00:00.000Z",
  "sourceProvider": "hijobs",
  "recruiterType": "direct-employer",
  "companyLogo": "https://hjcdn.co.uk/images/employers/wyvex-media-2304/wyvex-media-0_275@2x.jpeg",
  "country": "Scotland",
  "contactName": "Recruitment Team"
}
````

***

### Data Fields Explanation

| Field Name | Format | Description |
|---|---|---|
| `jobId` | text | The unique numerical identifier used by HIJOBS. |
| `title` | text | Job listing title. |
| `companyName` | text | The hiring company or recruitment agency name. |
| `companyWebsite` | link | The direct web link of the hiring employer. |
| `companyDomain` | text | Cleaned domain name of the employer for quick enrichment. |
| `location` | text | Primary location or region. |
| `remote` | boolean | Set to `true` if work-from-home or remote options are available. |
| `salaryRaw` | text | Unparsed salary text as published on HIJOBS. |
| `salary` | object | Standardized currency, min, max bounds, and unit frequency. |
| `postedDate` | date | ISO 8601 creation date. |
| `closingDate` | date | Closing/expiry date of the vacancy. |
| `description` | HTML | Full detailed job description in HTML. |
| `applyType` | text | Form of application flow (`email`, `external`, `internal`, `none`). |
| `applyEmail` | text | Recruiter's contact email. |
| `externalApplyUrl` | link | Outbound URL to direct employer's application portal or ATS. |
| `scrapedAt` | date | Time the row was scraped. |

***

### How Much Does It Cost to Scrape HIJOBS?

**$2.90 per 1,000 results.**

Because the mobile API is open and runs on lightweight Cheerio code, you pay almost zero proxy or browser charges. An average daily run of 50 new vacancies costs fraction of a penny and completes in seconds.

***

### Advanced Options & Tips

- **Delta Monitoring Mode (`onlyNewJobs`):** If you are running daily monitoring, enable `onlyNewJobs`. The first run builds a baseline of seen job IDs. Subsequent scheduled runs will only output newly added vacancies, saving you processing power and keeping your datasets clean.
- **Recency Cutoff (`postedWithinHours`):** Set this parameter to `24` if you only need the latest jobs. This forces an early-stop pagination check. Since job listings are returned newest-first, the scraper terminates the moment it encounters jobs posted older than 24 hours, reducing runtime to under 2 seconds.
- **Fast List Mode:** Disable `enrichDetail` to run super-fast crawls. This will bypass retrieving descriptions and email contact fields, letting you capture titles, locations, and salaries at 10x the speed.

***

### FAQ (Frequently Asked Questions)

#### How does this scraper get past Cloudflare?

It does not have to. While the main web portal (`hijobs.net`) is guarded by interactive Cloudflare challenges, the official HIJOBS mobile applications communicate with an open REST API on `api.hijobs.co.uk`. This subdomain has no Cloudflare shield activated and allows direct, high-speed HTTP GET queries. This Actor connects to the mobile API directly, giving you complete data without browser automation or proxy bills.

#### Do I need a login or API Key?

No. The mobile API is fully public and requires no session tokens, OAuth, cookies, or registration keys to read job listings and detail cards.

#### Why is the applyEmail sometimes null?

HIJOBS supports different application methods. When a job is posted by a direct employer who accepts email applications, the `applyEmail` is extracted. If the vacancy was posted by an agency or uses an external applicant tracking system (ATS), the `applyEmail` will be null, and you will find the direct link in `externalApplyUrl`.

#### Can I scrape specific locations like Inverness or Oban?

Yes. You can filter geographically by entering a location in the **Location Filter** input box or pasting direct URL facets like `https://hijobs.net/jobs/oban` into the **HIJOBS URLs** list.

***

### Disclaimers & Support

This Actor is an independent web scraping tool and is not affiliated with, endorsed by, or sponsored by HIJOBS Limited, hijobs.net, or any of their subsidiaries or affiliates. All trademarks are the property of their respective owners.

The scraper accesses only the public job-search and job-detail endpoints of the HIJOBS mobile API, matching data the HIJOBS app loads for any user. It does not access private or authenticated user details. Users are responsible for ensuring compliance with HIJOBS Terms of Service and local data regulations (GDPR).

If you encounter issues or have custom requirements, please submit a report on the **Issues** tab. For custom scraping or dataset services, contact the author's profile.

# Actor input Schema

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

Any hijobs.net search, listing, facet, location, or direct job URL (e.g., https://hijobs.net/jobs/oban). If empty, the scraper will walk the job feed using the filters below.

## `keywords` (type: `string`):

Search jobs by keywords (e.g., 'support worker').

## `where` (type: `string`):

Filter by city, town, or area (e.g., 'Inverness').

## `employerType` (type: `string`):

Filter by employer/recruiter type.

## `hours` (type: `string`):

Filter by hours (e.g. Full Time or Part Time).

## `contractType` (type: `string`):

Filter by contract type.

## `sort` (type: `string`):

Ordering of results returned by search API.

## `enrichDetail` (type: `boolean`):

Fetch each unique job detail page to extract full description and contact email/application URLs.

## `onlyNewJobs` (type: `boolean`):

When enabled, first run builds a baseline of job IDs; later runs only save jobs not delivered before.

## `resetSeenJobs` (type: `boolean`):

Clear the saved monitoring baseline at the start of this run.

## `postedWithinHours` (type: `integer`):

Only return jobs posted in the last N hours (e.g. 24 = last day).

## `maxItems` (type: `integer`):

Maximum number of jobs to return (hard cap).

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

Proxy settings. The mobile API is public and does not have anti-bot protections, so proxies are optional.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://hijobs.net/jobs/oban"
    }
  ],
  "keywords": "",
  "where": "",
  "employerType": "any",
  "hours": "any",
  "contractType": "any",
  "sort": "added",
  "enrichDetail": true,
  "onlyNewJobs": false,
  "resetSeenJobs": false,
  "postedWithinHours": 0,
  "maxItems": 1000,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "startUrls": [
        {
            "url": "https://hijobs.net/jobs/oban"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/hijobs-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 = { "startUrls": [{ "url": "https://hijobs.net/jobs/oban" }] }

# Run the Actor and wait for it to finish
run = client.actor("getascraper/hijobs-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 '{
  "startUrls": [
    {
      "url": "https://hijobs.net/jobs/oban"
    }
  ]
}' |
apify call getascraper/hijobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Hi Jobs (HIJOBS) Scraper: Scotland Highlands & Islands Jobs",
        "description": "Scrape hijobs.net Highlands and Islands jobs via the official mobile API. Extract salaries, locations, apply emails, and full descriptions without Cloudflare blocking. Supports direct search URL or filters, recency filter, and JSON or CSV output. Perfect for ATS syncing. $2 per 1,000 results.",
        "version": "0.1",
        "x-build-id": "FMW9kXEjXIWXNbnk4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~hijobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-hijobs-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/getascraper~hijobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-hijobs-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/getascraper~hijobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-hijobs-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": [
                    "enrichDetail",
                    "onlyNewJobs"
                ],
                "properties": {
                    "startUrls": {
                        "title": "HIJOBS URLs",
                        "type": "array",
                        "description": "Any hijobs.net search, listing, facet, location, or direct job URL (e.g., https://hijobs.net/jobs/oban). If empty, the scraper will walk the job feed using the filters below.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keywords": {
                        "title": "Keyword Search",
                        "type": "string",
                        "description": "Search jobs by keywords (e.g., 'support worker').",
                        "default": ""
                    },
                    "where": {
                        "title": "Location Filter",
                        "type": "string",
                        "description": "Filter by city, town, or area (e.g., 'Inverness').",
                        "default": ""
                    },
                    "employerType": {
                        "title": "Recruiter Type",
                        "enum": [
                            "any",
                            "charity-cic",
                            "direct-employer",
                            "agency"
                        ],
                        "type": "string",
                        "description": "Filter by employer/recruiter type.",
                        "default": "any"
                    },
                    "hours": {
                        "title": "Hours Filter",
                        "enum": [
                            "any",
                            "full-time",
                            "part-time"
                        ],
                        "type": "string",
                        "description": "Filter by hours (e.g. Full Time or Part Time).",
                        "default": "any"
                    },
                    "contractType": {
                        "title": "Contract Type",
                        "enum": [
                            "any",
                            "permanent",
                            "contract",
                            "temporary",
                            "volunteer"
                        ],
                        "type": "string",
                        "description": "Filter by contract type.",
                        "default": "any"
                    },
                    "sort": {
                        "title": "Sort Ordering",
                        "enum": [
                            "added",
                            "date",
                            "salary",
                            "relevance"
                        ],
                        "type": "string",
                        "description": "Ordering of results returned by search API.",
                        "default": "added"
                    },
                    "enrichDetail": {
                        "title": "Enrich Job Details",
                        "type": "boolean",
                        "description": "Fetch each unique job detail page to extract full description and contact email/application URLs.",
                        "default": true
                    },
                    "onlyNewJobs": {
                        "title": "Only new jobs (Monitoring)",
                        "type": "boolean",
                        "description": "When enabled, first run builds a baseline of job IDs; later runs only save jobs not delivered before.",
                        "default": false
                    },
                    "resetSeenJobs": {
                        "title": "Reset seen jobs",
                        "type": "boolean",
                        "description": "Clear the saved monitoring baseline at the start of this run.",
                        "default": false
                    },
                    "postedWithinHours": {
                        "title": "Posted Within Hours (Recency)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return jobs posted in the last N hours (e.g. 24 = last day).",
                        "default": 0
                    },
                    "maxItems": {
                        "title": "Maximum items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of jobs to return (hard cap).",
                        "default": 1000
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. The mobile API is public and does not have anti-bot protections, so proxies are optional.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
