# Job Room Jobs Search Scraper (`soft_alexist/job-room-jobs-search-scraper`) Actor

Scrape job listings from Job-Room.ch, Switzerland's official job search platform. Extract 23+ fields including job IDs, government registration numbers, status, publication details, and more — perfect for labor market research, recruitment analytics, and employment data aggregation.

- **URL**: https://apify.com/soft\_alexist/job-room-jobs-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Job-Room.ch Jobs Search Scraper: Swiss Employment Data at Scale

---

### About Job-Room.ch

Job-Room.ch is Switzerland's premier public employment portal, operated by the Swiss State Secretariat for Economic Affairs (SECO). It centralizes job postings from across the country and integrates with government employment systems (EGOV and AVAM). For researchers, policy analysts, recruiters, and HR professionals, accessing Job-Room data programmatically is invaluable for understanding Swiss labor market trends. The **Job-Room.ch Jobs Search Scraper** automates this process, delivering structured employment data with government-level fields and reporting metadata.

---

### Overview

The **Job-Room.ch Jobs Search Scraper** collects job listings from Job-Room.ch's search results and detail pages, extracting 23+ fields per posting. It is designed for:

- **Labor market researchers** analyzing employment trends in Switzerland
- **Policy analysts** monitoring job market health and sectoral demand
- **Recruitment agencies** building proprietary job databases
- **Academic institutions** conducting employment studies
- **HR consultants** benchmarking Swiss hiring activity
- **Data aggregators** feeding multiple job sources into unified platforms

Key strengths include support for large-scale scraping (up to 200 items per URL), automatic error handling via `ignore_url_failures`, and comprehensive government and administrative metadata fields.

---

### Input Format

The scraper accepts a JSON configuration object specifying which Job-Room pages to scrape:

```json
{
  "urls": [
    "https://www.job-room.ch/job-search"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Parameter | Type | Description | Example |
|---|---|---|---|
| `urls` | Array | Direct links to Job-Room.ch search results or filtered pages | `["https://www.job-room.ch/job-search"]` |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues even if some URLs fail; if `false`, stops on errors | `true` |
| `max_items_per_url` | Integer | Maximum number of job postings to extract per URL (range: 1–200) | `200` |

**Best practices:**

- Use search result URLs (e.g., `/job-search`) or filtered pages (e.g., with region or keyword filters) to target specific subsets
- Set `max_items_per_url` to 200 to capture maximum data per run
- Enable `ignore_url_failures: true` for robust batch operations

***

### Output Format

**Sample output**

```json
{
  "id": "0d5b6183-5d3f-453c-8e0a-bddb069125f0",
  "created_time": "2026-07-09T06:15:24.423",
  "updated_time": "2026-07-09T06:15:24.425",
  "status": "PUBLISHED_PUBLIC",
  "source_system": "API",
  "external_reference": "JRQ$677-1247",
  "stellennummer_egov": "242461596",
  "stellennummer_avam": null,
  "fingerprint": null,
  "reporting_obligation": false,
  "reporting_obligation_end_date": null,
  "report_to_avam": false,
  "job_center_code": null,
  "job_center_user_id": null,
  "approval_date": null,
  "rejection_date": null,
  "rejection_code": null,
  "rejection_reason": null,
  "cancellation_date": null,
  "cancellation_code": null,
  "job_content": {
    "external_url": "https://ohws.prospective.ch/public/v1/jobs/815aefde-3ba6-4e45-bc71-e0ff22522b95",
    "number_of_jobs": "1",
    "job_descriptions": [
      {
        "language_iso_code": "de",
        "title": "Technische:r Einkäufer:in",
        "description": "100%\n\nunbefristet\n\nStadler bietet vielseitige Möglichkeiten für eine internationale Karriere. Bei Stadler bekommst du die Chance, über dich hinaus zu wachsen, Verantwortung zu übernehmen und grossartige Leistungen im Team zu erbringen. Wir sind auf der Suche nach motivierten Talenten, die mit uns die Zukunft der Mobilität gestalten möchten. Bist du bereit, um mit uns grossartige Dinge zu erreichen?\n\n**DEINE AUFGABENBEREICHE**\n\n<br />\n\n* Beschaffung von fahrwerksspezifischen Komponenten -- effizient und kostenbewusst\n* Steuerung des gesamten Beschaffungsprozesses von der Anfrage bis zur Rechnungsfreigabe\n* Du behältst die Lagerbestände, Liefertermine und KPIs stets im Blick\n* Selbständige Verhandlung von Einzelkomponenten und Verträgen mit unseren Zulieferpartnern\n* Stringentes Reporting in die einzelnen Projekte\n\n<br />\n\n**DEINE BERUFLICHEN ERFAHRUNGEN**\n\n<br />\n\n* Technische Grundausbildung mit kaufmännischer Weiterbildung\n* Mindestens 5 Jahre Erfahrung im Einkauf, idealerweise im Industrieumfeld\n* Verhandlungssicher in Deutsch und Englisch (mündlich \\& schriftlich)\n* Zuverlässig, durchsetzungsstark, verhandlungsgewandt und voller Tatendrang\n* Du bist ein Macher und pflegst einen proaktiven Austausch\n* Kenntnisse in der Materialdisposition sind von Vorteil\n\n<br />\n\n**UNSER VERSPRECHEN AN DICH**\n\n<br />\n\n* Ein kollegiales Arbeitsumfeld und die Zusammenarbeit in qualifizierten und leidenschaftlichen Teams\n* Einen Handlungs- und Gestaltungsspielraum, in welchem Du die Erwartungen an Deine Arbeit umsetzen kannst\n* Eine wertschätzende Kultur für Deine Leistungen\n* Du arbeitest für ein führendes Unternehmen, welches die Zukunft der globalen Mobilität täglich prägt\n\n<br />\n\n**DEINE BENEFITS**\n\nBei Stadler bekommst Du eine Vielfalt an Benefits, wie zum Beispiel\n\n* Finanzielle Zuschüsse für ZVV- oder SBB --Abo und Fitness-Abo\n* Unterstützung von Weiterbildungsmöglichkeiten (finanziell oder mit Teilzeitmöglichkeiten)\n* Verpflegungsmöglichkeiten in der Migros Kantine\n\n<br />\n\nDEIN STANDORT\n\nWerde Teil unseres Teams von Stadler in Bussnang, das als Kompetenzzentrum für verschiedene Produkttypen dient und der Division Schweiz angehört.\n\nDEINE ANSPRECHPERSON\n\n**Borhan Bas**\nHR Business Partner\n+41 79 581 03 55\n"
      }
    ],
    "company": {
      "name": "Stadler Bussnang AG",
      "street": "Ernst-Stadler-Strasse 4",
      "house_number": null,
      "postal_code": "9565",
      "city": "Bussnang",
      "country_iso_code": "CH",
      "post_office_box_number": null,
      "post_office_box_postal_code": null,
      "post_office_box_city": null,
      "phone": null,
      "email": null,
      "website": null,
      "surrogate": false
    },
    "employment": {
      "start_date": null,
      "end_date": null,
      "short_employment": false,
      "immediately": true,
      "permanent": true,
      "workload_percentage_min": "100",
      "workload_percentage_max": "100",
      "work_forms": []
    },
    "location": {
      "id": null,
      "remarks": null,
      "city": "Bussnang",
      "postal_code": "9565",
      "communal_code": "4921",
      "region_code": "TG08",
      "canton_code": "TG",
      "country_iso_code": "CH",
      "coordinates": {
        "lon": "9.082",
        "lat": "47.558"
      }
    },
    "occupations": [
      {
        "avam_occupation_code": "101686",
        "work_experience": "NO_EXPERIENCE",
        "education_code": null,
        "qualification_code": null
      }
    ],
    "language_skills": [],
    "apply_channel": {
      "raw_post_address": null,
      "post_address": null,
      "email_address": null,
      "phone_number": null,
      "form_url": "https://ohws.prospective.ch/public/v1/redirect/815aefde-3ba6-4e45-bc71-e0ff22522b95/ats",
      "additional_info": null
    },
    "public_contact": null
  },
  "publication": {
    "start_date": "2026-07-09",
    "end_date": "2026-08-07",
    "eures_display": false,
    "eures_anonymous": false,
    "public_display": true,
    "restricted_display": true,
    "company_anonymous": false
  },
  "owner": null,
  "from_url": "https://www.job-room.ch/job-search"
}
```

Each scraped job returns 23 fields spanning job content, administrative metadata, and government tracking information:

#### Core Identification

| Field | Meaning | Example |
|---|---|---|
| `ID` | Unique Job-Room identifier for the posting | `12345678` |
| `Fingerprint` | Hash-based job fingerprint for deduplication | `a1b2c3d4e5f6` |
| `External Reference` | Third-party reference ID (if applicable) | `EXT-2024-001` |

#### Timeline & Status

| Field | Meaning | Example |
|---|---|---|
| `Created Time` | When the job was posted to Job-Room | `2024-01-15T09:30:00Z` |
| `Updated Time` | Last update timestamp | `2024-01-20T14:22:00Z` |
| `Status` | Current posting status (e.g., published, expired, withdrawn) | `published` |
| `Approval Date` | Date job was approved by moderators | `2024-01-15T10:00:00Z` |
| `Rejection Date` | If rejected, the rejection date | `null` or `2024-01-15` |
| `Cancellation Date` | Date the job was withdrawn or filled | `null` or `2024-02-15` |

#### Swiss Government & Reporting

| Field | Meaning | Example |
|---|---|---|
| `Stellennummer EGOV` | Swiss official employment number (EGOV system) — used for government labor statistics | `CH-GEN-2024-5678` |
| `Stellennummer AVAM` | Swiss unemployment insurance registry number (AVAM — "Arbeitslosenversicherung AVAM") | `AVAM-01-2024-9876` |
| `Reporting Obligation` | Whether this job triggers mandatory reporting to AVAM | `true` |
| `Reporting Obligation End Date` | Deadline for reporting requirements | `2024-03-15` |
| `Report To AVAM` | Confirmation that the job was reported to AVAM | `true` |

#### Administrative & Processing

| Field | Meaning | Example |
|---|---|---|
| `Source System` | System origin (e.g., "jobroom", "partner\_feed") | `jobroom` |
| `Job Center Code` | Regional employment center identifier | `ZH-001` |
| `Job Center User ID` | ID of the employment center staff member handling the posting | `staff-user-456` |
| `Rejection Code` | Standardized code if job was rejected (e.g., compliance, incomplete) | `INVALID_DATA` |
| `Rejection Reason` | Human-readable rejection explanation | `Missing required fields` |
| `Cancellation Code` | Reason for withdrawal (e.g., filled, no longer needed) | `POSITION_FILLED` |

#### Job Content & Publication

| Field | Meaning | Example |
|---|---|---|
| `Job Content` | Full job description, requirements, salary (if provided), and employer details | Long HTML/text block |
| `Publication` | Publication metadata (e.g., visibility settings, featured status) | `{"visible": true, "featured": false}` |
| `Owner` | Employer/organization details (name, contact, registration) | `{"name": "Acme Corp", "contact": "hr@acme.ch"}` |

***

### How to Use

1. **Identify URLs** — Browse Job-Room.ch and identify search results or filtered pages (e.g., by region, industry, or keyword). Copy the page URL.
2. **Build the configuration** — Add URLs to the `urls` array and set `max_items_per_url` (recommend: 200).
3. **Set error handling** — Enable `ignore_url_failures: true` to skip failed URLs without stopping the entire run.
4. **Execute the scraper** — Start the run and monitor the log for progress.
5. **Export results** — Download scraped data in JSON, CSV, or Excel format.

**Troubleshooting:**

- If results are incomplete, verify the URL is a valid Job-Room search page (not a single job detail).
- Government fields (EGOV, AVAM) may be `null` for listings that don't trigger reporting obligations.
- Use status filters to exclude old or expired postings.

***

### Use Cases & Applications

- **Labor market dashboards:** Monitor Swiss job creation by region, sector, and qualification level
- **Policy impact analysis:** Measure effects of labor market reforms on job supply
- **Talent forecasting:** Identify hiring trends and emerging skills demand
- **Academic research:** Study employment patterns, wage trends, and sectoral shifts
- **Compliance monitoring:** Track reporting obligation compliance for employment centers

The comprehensive government metadata ensures data quality and regulatory compliance, making it ideal for official reporting and academic research.

***

### Important Notes

The output includes government-mandated fields (EGOV, AVAM, reporting obligations) that reflect Switzerland's employment administration framework. These fields are essential for:

- Official labor statistics compilation
- Unemployment insurance (AVAM) compliance
- Regional employment center reporting
- Legislative employment data tracking

Not all postings include these fields—they are populated only when applicable under Swiss law.

***

### Conclusion

The **Job-Room.ch Jobs Search Scraper** provides structured access to Switzerland's official employment data, combining public job content with administrative metadata. Whether you're conducting labor market research, building a job aggregator, or analyzing Swiss hiring trends, this scraper delivers reliable, comprehensive data at scale. Start scraping today and unlock insights from one of Europe's most transparent employment platforms.

# Actor input Schema

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

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.job-room.ch/job-search"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.job-room.ch/job-search"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/job-room-jobs-search-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 = {
    "urls": ["https://www.job-room.ch/job-search"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/job-room-jobs-search-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 '{
  "urls": [
    "https://www.job-room.ch/job-search"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call soft_alexist/job-room-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Job Room Jobs Search Scraper",
        "description": "Scrape job listings from Job-Room.ch, Switzerland's official job search platform. Extract 23+ fields including job IDs, government registration numbers, status, publication details, and more — perfect for labor market research, recruitment analytics, and employment data aggregation.",
        "version": "0.0",
        "x-build-id": "SKWwKxZYCTX56Vc80"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/soft_alexist~job-room-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-soft_alexist-job-room-jobs-search-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/soft_alexist~job-room-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-soft_alexist-job-room-jobs-search-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/soft_alexist~job-room-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-soft_alexist-job-room-jobs-search-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": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
