# ATS Jobs Aggregator + Domain Discovery (`xtracto/ats-jobs-aggregator`) Actor

Pull open job postings straight from companies' own career sites across the major ATS platforms into one unified schema. Give it an ATS board, a careers URL, or just a company domain — it discovers which ATS the company uses. Public job-board data, no login.

- **URL**: https://apify.com/xtracto/ats-jobs-aggregator.md
- **Developed by:** [Farhan Febrian Nauval](https://apify.com/xtracto) (community)
- **Categories:** Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## ATS Jobs Aggregator

Pull open job postings **straight from companies' own career sites** across the major hiring platforms — **Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Workable, and Workday** — into one clean, unified list.

Point it at a company any way you like:

- an ATS board you already know (`greenhouse` / `databricks`),
- a careers-page or job-board URL, or
- **just a company website** (`databricks.com`) — the actor figures out which hiring platform the company uses and pulls the jobs for you.

Built for job boards, recruiters, sales-intelligence teams, labor-market researchers, and anyone who wants first-party job data without scraping a dozen different sites by hand.

---

### Why use this actor

- **No account, no API key, no login.** Every source is a public company job board.
- **One unified format** for every company, no matter which hiring platform they run on — so Greenhouse, Lever, Ashby and the rest all come out with the same field names.
- **Discovery by domain.** Don't know a company's hiring platform? Give it the website and the actor detects the platform and board automatically.
- **Mix and match** any number of companies in a single run.
- **Nothing lost.** Every posting keeps the platform's original data intact under a `raw` field, on top of the unified fields.
- **Stable output** ready for spreadsheets, databases, or pipelines.

### How it works

1. You give the actor a list of companies — as an ATS board, a careers URL, or a plain company website.
2. For anything given as a website or a generic careers page, the actor visits the careers page and detects which hiring platform the company uses (and confirms the right board before pulling).
3. It reads every open posting from that company's job board.
4. Each posting comes back in one unified shape — title, location, department, employment type, remote flag, posting date, and a direct apply link — plus the platform's original data.
5. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You don't manage any scrapers, browsers, or logins.

### Input

```json
{
  "companies": [
    { "ats": "greenhouse", "token": "databricks" },
    { "ats": "lever", "token": "palantir" },
    { "ats": "ashby", "token": "ramp" },
    { "careersUrl": "https://careers.smartrecruiters.com/BoschGroup" },
    { "domain": "databricks.com" }
  ],
  "maxJobsPerCompany": 0,
  "maxConcurrency": 6,
  "proxyConfiguration": { "useApifyProxy": false }
}
````

Each entry in `companies` is one of three shapes:

| Shape | Example | When to use |
|---|---|---|
| `{ "ats": "...", "token": "..." }` | `{ "ats": "greenhouse", "token": "databricks" }` | You already know the company's hiring platform and board name. |
| `{ "careersUrl": "..." }` | `{ "careersUrl": "https://jobs.lever.co/palantir" }` | You have a link to the company's job board or careers page. |
| `{ "domain": "..." }` | `{ "domain": "databricks.com" }` | You only have the company website — the actor discovers the rest. |

Supported hiring platforms for the `ats` field: `greenhouse`, `lever`, `ashby`, `smartrecruiters`, `recruitee`, `workable`, `workday`. For Workday, the token is `tenant/datacenter/site` (e.g. `nvidia/wd5/NVIDIAExternalCareerSite`).

| Field | Type | Description |
|---|---|---|
| `companies` | array | The companies to pull jobs from (see shapes above). |
| `maxJobsPerCompany` | integer | Cap postings kept per company. `0` = no limit (whole board). Default `0`. |
| `maxConcurrency` | integer | How many companies to process at once. Default `6`. |
| `proxyConfiguration` | object | Optional. Not needed for most companies. |

### Output

One record per open job posting. Every record carries the same unified fields regardless of platform, plus the platform's own untouched object under `raw`.

```json
{
  "_input": "ashby:ramp",
  "_source": "S1-ashby",
  "_scrapedAt": "2026-07-10T17:57:21Z",
  "recordType": "JOB_POSTING",
  "company": "ramp",
  "atsPlatform": "ashby",
  "companyToken": "ramp",
  "jobId": "03e2d4e1-73ad-4f09-a058-2eb9ce34c2bc",
  "jobTitle": "Technical Consultant, Mid-Market",
  "location": "Remote (US)",
  "department": "Sales",
  "employmentType": "FullTime",
  "remote": true,
  "postedAt": "2026-07-07T20:47:09.753+00:00",
  "jobUrl": "https://jobs.ashbyhq.com/ramp/03e2d4e1-73ad-4f09-a058-2eb9ce34c2bc",
  "descriptionHtml": "<h1><strong>About Ramp</strong></h1><p style=\"min-height:1.5em\">Ramp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spends. We automate how over $200B in annualized spend flows in and out of 70,000+ companies: authorizing payments, flagging risk, categorizing spend, and closing books.</p><p style=\"min-height:1.5em\">The problems are high-stakes, ...",
  "raw": {
    "id": "03e2d4e1-73ad-4f09-a058-2eb9ce34c2bc",
    "title": "Technical Consultant, Mid-Market",
    "department": "Sales",
    "team": "Solutions Consulting",
    "employmentType": "FullTime",
    "location": "Remote (US)",
    "shouldDisplayCompensationOnJobPostings": true,
    "secondaryLocations": [
      {
        "location": "San Francisco, CA",
        "address": {
          "postalAddress": {
            "addressRegion": "California ",
            "addressCountry": "USA",
            "addressLocality": "San Fransisco"
          }
        }
      },
      {
        "location": "New York, NY (HQ)",
        "address": {
          "postalAddress": {
            "addressRegion": "NY",
            "addressCountry": "USA",
            "addressLocality": "New York City"
          }
        }
      }
    ],
    "publishedAt": "2026-07-07T20:47:09.753+00:00",
    "isListed": true,
    "isRemote": true,
    "workplaceType": "Remote",
    "address": {
      "postalAddress": {
        "addressCountry": "United States"
      }
    },
    "jobUrl": "https://jobs.ashbyhq.com/ramp/03e2d4e1-73ad-4f09-a058-2eb9ce34c2bc",
    "applyUrl": "https://jobs.ashbyhq.com/ramp/03e2d4e1-73ad-4f09-a058-2eb9ce34c2bc/application",
    "descriptionHtml": "<h1><strong>About Ramp</strong></h1><p style=\"min-height:1.5em\">Ramp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spends. We automate how over $200B in annualized spend flows in and out of 70,000+ companies: authorizing payments, flagging risk, categorizing spend, and closing books.</p><p style=\"min-height:1.5em\">The problems are high-stakes, data-dense, and unforgiving.</p><p style=\"min-height:1.5em\">We hire people with high agency and high urgency. We look for slope over intercept. We care less about where you trained and ...",
    "compensation": {
      "compensationTierSummary": "$151K – $231K • Offers Equity • Multiple Ranges",
      "scrapeableCompensationSalarySummary": "$151K - $231K",
      "compensationTiers": [
        {
          "id": "a89b527f-87d2-44d2-8af3-e43c9284a75f",
          "tierSummary": "OTE $168K – $231K • Offers Equity • 75/25 Split",
          "title": "SF/NY",
          "additionalInformation": "75/25 Split",
          "components": [
            {
              "id": "8c3db90b-4041-4272-9809-b18aba962e19",
              "summary": "Offers Equity",
              "compensationType": "EquityCashValue",
              "interval": "1 YEAR",
              "currencyCode": "USD",
              "minValue": null,
              "maxValue": null
            },
            {
              "id": "74258ff5-a991-4379-88b2-4357ecc67c99",
              "summary": "OTE $168K – $231K",
              "compensationType": "Salary",
              "interval": "1 YEAR",
              "currencyCode": "USD",
              "minValue": 168000,
              "maxValue": 231000
            }
          ]
        },
        {
          "id": "846be204-731f-42fc-b204-65fbb3ab428e",
          "tierSummary": "OTE $151K – $207K • Offers Equity • 75/25 Split",
          "title": "Nationwide",
          "additionalInformation": "75/25 Split",
          "components": [
            {
              "id": "f2fef6cd-9b44-4e4f-b2aa-c150240784ce",
              "summary": "OTE $151K – $207K",
              "compensationType": "Salary",
              "interval": "1 YEAR",
              "currencyCode": "USD",
              "minValue": 151000,
              "maxValue": 207000
            },
            {
              "id": "3eb9e8e8-697b-4608-9b96-edc93fdd18ec",
              "summary": "Offers Equity",
              "compensationType": "EquityCashValue",
              "interval": "1 YEAR",
              "currencyCode": "USD",
              "minValue": null,
              "maxValue": null
            }
          ]
        }
      ],
      "summaryComponents": [
        {
          "compensationType": "EquityCashValue",
          "minValue": null,
          "maxValue": null,
          "interval": "1 YEAR"
        },
        {
          "minValue": 151000,
          "maxValue": 231000,
          "currencyCode": "USD",
          "interval": "1 YEAR",
          "compensationType": "Salary"
        }
      ]
    }
  }
}
```

A job discovered from a plain domain looks the same, plus a `discoveredVia` field showing which careers page revealed the platform:

```json
{
  "_input": "greenhouse:databricks",
  "_source": "S1-greenhouse",
  "recordType": "JOB_POSTING",
  "company": "databricks.com",
  "atsPlatform": "greenhouse",
  "companyToken": "databricks",
  "jobId": "8437000002",
  "jobTitle": "Solutions Architect",
  "location": "Japan",
  "department": "Field Engineering",
  "postedAt": "2026-03-05T09:32:12-05:00",
  "jobUrl": "https://databricks.com/company/careers/open-positions/job?gh_jid=8437000002",
  "discoveredVia": "https://databricks.com/careers",
  "raw": { "... full Greenhouse job object ..." }
}
```

#### Output fields

| Field | Type | Description |
|---|---|---|
| `company` | string | The company (the domain if discovered, otherwise the board name). |
| `atsPlatform` | string | Which hiring platform the job came from. |
| `companyToken` | string | The board identifier on that platform. |
| `jobId` | string | The posting's ID. |
| `jobTitle` | string | Job title. |
| `location` | string | Location text as the company published it. |
| `department` | string | Department or team, when the platform provides one. |
| `employmentType` | string | Full-time / part-time / contract, when available. |
| `remote` | boolean | Whether the posting is remote. |
| `postedAt` | string | When the job was posted. |
| `jobUrl` | string | Direct link to the posting. |
| `descriptionHtml` | string | Full job description (when the platform includes it). |
| `raw` | object | The platform's original job object, untouched. |
| `discoveredVia` | string | The careers page that revealed the platform (discovery inputs only). |
| `_input` / `_source` / `_scrapedAt` | string | Which company, which platform, and when it was collected. |

If a website has no detectable hiring platform, the actor emits a clear record with `_error: "ats_not_found"` (and the pages it checked) instead of silently skipping it. A resolved board with zero openings comes back as `no_open_jobs`.

### Verified live (2026-07-11)

Pulled real postings from Greenhouse (`databricks`), Lever (`palantir`), Ashby (`ramp`), and SmartRecruiters (`BoschGroup`); resolved a Lever board from a careers URL; and discovered the hiring platform straight from `databricks.com` and `ramp.com`.

### Known limits

- **Discovery covers static careers pages.** It works when the careers page names or embeds a supported hiring platform (this covers a large share of companies). A few sites load their board through heavy scripting with no on-page hint — for those, pass the board directly as `{ "ats": "...", "token": "..." }` or use the job-board URL. Undetectable sites return `ats_not_found` rather than being dropped.
- **Workday discovery** needs the full board coordinates (tenant/datacenter/site), so Workday is best addressed directly rather than by bare domain.
- **SmartRecruiters descriptions** aren't in the board listing, so `descriptionHtml` may be empty there (all listing fields are still preserved under `raw`).
- **Board names can change.** A renamed board returns `not_found`; update the input. Some boards can legitimately be empty (the company switched platforms).

### Related

This actor gives you a **broad, unified snapshot of who's hiring** across many companies at once. If you instead want to **track one company's hiring over time** — how many roles opened or closed between runs — see the companion **ATS Hiring-Velocity** actor. They complement each other: this one is for breadth and discovery, the other for per-company trends.

# Actor input Schema

## `companies` (type: `array`):

One entry per company. Each entry can be one of three shapes: an ATS board you already know ({"ats":"greenhouse","token":"databricks"}); a careers-page or job-board URL ({"careersUrl":"https://jobs.lever.co/palantir"}); or just a company website ({"domain":"databricks.com"}) — the actor then discovers which ATS the company uses. Supported ATS: greenhouse, lever, ashby, smartrecruiters, recruitee, workable, workday.

## `maxJobsPerCompany` (type: `integer`):

Cap the number of postings kept per company. 0 = no limit (pull the whole board).

## `maxConcurrency` (type: `integer`):

How many companies to process in parallel.

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

Optional. Not needed for most companies; only helps for a few large employers.

## Actor input object example

```json
{
  "companies": [
    {
      "ats": "greenhouse",
      "token": "databricks"
    },
    {
      "ats": "lever",
      "token": "palantir"
    },
    {
      "ats": "ashby",
      "token": "ramp"
    },
    {
      "domain": "databricks.com"
    }
  ],
  "maxJobsPerCompany": 0,
  "maxConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "companies": [
        {
            "ats": "greenhouse",
            "token": "databricks"
        },
        {
            "ats": "lever",
            "token": "palantir"
        },
        {
            "ats": "ashby",
            "token": "ramp"
        },
        {
            "domain": "databricks.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/ats-jobs-aggregator").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 = { "companies": [
        {
            "ats": "greenhouse",
            "token": "databricks",
        },
        {
            "ats": "lever",
            "token": "palantir",
        },
        {
            "ats": "ashby",
            "token": "ramp",
        },
        { "domain": "databricks.com" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("xtracto/ats-jobs-aggregator").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 '{
  "companies": [
    {
      "ats": "greenhouse",
      "token": "databricks"
    },
    {
      "ats": "lever",
      "token": "palantir"
    },
    {
      "ats": "ashby",
      "token": "ramp"
    },
    {
      "domain": "databricks.com"
    }
  ]
}' |
apify call xtracto/ats-jobs-aggregator --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ATS Jobs Aggregator + Domain Discovery",
        "description": "Pull open job postings straight from companies' own career sites across the major ATS platforms into one unified schema. Give it an ATS board, a careers URL, or just a company domain — it discovers which ATS the company uses. Public job-board data, no login.",
        "version": "0.1",
        "x-build-id": "JAtkL24Xzpl7bfKUo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~ats-jobs-aggregator/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-ats-jobs-aggregator",
                "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/xtracto~ats-jobs-aggregator/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-ats-jobs-aggregator",
                "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/xtracto~ats-jobs-aggregator/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-ats-jobs-aggregator",
                "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": [
                    "companies"
                ],
                "properties": {
                    "companies": {
                        "title": "Companies",
                        "type": "array",
                        "description": "One entry per company. Each entry can be one of three shapes: an ATS board you already know ({\"ats\":\"greenhouse\",\"token\":\"databricks\"}); a careers-page or job-board URL ({\"careersUrl\":\"https://jobs.lever.co/palantir\"}); or just a company website ({\"domain\":\"databricks.com\"}) — the actor then discovers which ATS the company uses. Supported ATS: greenhouse, lever, ashby, smartrecruiters, recruitee, workable, workday."
                    },
                    "maxJobsPerCompany": {
                        "title": "Max jobs per company",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Cap the number of postings kept per company. 0 = no limit (pull the whole board).",
                        "default": 0
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent companies",
                        "minimum": 1,
                        "maximum": 16,
                        "type": "integer",
                        "description": "How many companies to process in parallel.",
                        "default": 6
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Optional. Not needed for most companies; only helps for a few large employers.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
