# HelloWork Scraper — Jobs, Salary & Company Data (`memo23/hellowork-scraper`) Actor

Scrape hellowork.com in three modes: job listings, salary benchmarks by profession (median, junior to senior, by region & city), and company profiles (sector, open-job count, reviews). Search by keyword, location, contract or paste any URL. No proxy needed. JSON, CSV, Excel.

- **URL**: https://apify.com/memo23/hellowork-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Jobs, AI, Agents
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 job 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

## HelloWork Scraper

<p align="center">
  <img src="https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/hellowork/logo.png" width="130" alt="HelloWork Scraper">
</p>

**The most complete hellowork.com scraper — not just job listings, but also salary benchmarks by profession and company intelligence. Three modes, one actor: scrape jobs (title, company, salary, contract, location, remote, full description + taxonomy), pull salary data per profession (median, experience tiers, region & city), or map companies (sector, open-job count, reviews, their live listings).**

| Mode | What you get |
|---|---|
| **Jobs** | Job listings by keyword / location / contract, or from any URL |
| **Salary** | Salary benchmarks per profession — median, junior→senior, region & city |
| **Company** | Company profiles — sector, total open jobs, review count, job URLs |

> Pure HTTP, no headless browser. HelloWork has no anti-bot wall, so scraping is fast and reliable — no proxies required.

---

### Why use this scraper

- **Three data types, one actor.** Every other HelloWork scraper does job listings only. This one adds two datasets nobody else offers.
- **Salary benchmarks (unique).** For any profession, get HelloWork's median salary (annual / monthly / hourly), the confidence index, salary by experience level (débutant, junior, confirmé, senior), and full breakdowns by region and city. Ideal for HR, compensation benchmarking, and market research.
- **Company intelligence.** Map who is hiring: each employer's sector, total number of open positions, review count, and every one of their live job URLs — a ready-made B2B lead and market-mapping dataset.
- **Rich job data.** Beyond title/company/salary, jobs carry the HelloWork taxonomy (métier, domaine, fonction, region, département, ville, seniority tags), remote-work status, education level, and experience required.
- **Flexible input.** Set filters, or paste any HelloWork search / job / salary / company URL — all auto-classified.

### How it works

<p align="center">
  <img src="https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/hellowork/how-it-works-hellowork.png" width="900" alt="How the HelloWork scraper works">
</p>

1. **Pick a mode** — jobs, salary, or company.
2. **Give input** — filters (keyword, location, contract / professions / company slugs) or paste URLs.
3. **Get clean rows** — parsed directly from HelloWork's server-rendered pages and embedded data layer, tagged with a `rowType` so mixed datasets stay tidy. Export as JSON, CSV, or Excel.

### Supported inputs

| Mode | Input | Example |
|---|---|---|
| Jobs | Search URL or filters | `keyword: développeur`, `location: Paris`, `contractTypes: [CDI]` |
| Jobs | Direct job URL | `https://www.hellowork.com/fr-fr/emplois/79737515.html` |
| Salary | Profession slugs | `professions: [developpeur, infirmier, expert-comptable]` |
| Salary | Salary URL | `https://www.hellowork.com/fr-fr/salaires/developpeur.html` |
| Company | Company slugs | `companySlugs: [auchan-retail-france-546]` |
| Company | Company URL | `https://www.hellowork.com/fr-fr/entreprises/auchan-retail-france-546.html` |

Leave the salary professions empty and the actor auto-discovers HelloWork's featured professions.

### Use cases

- **Compensation benchmarking** — pull salary ranges by role, seniority, and region for HR and pay-equity analysis.
- **Job-market monitoring** — track openings by keyword, location, and contract type on a schedule.
- **Recruitment lead-gen** — build lists of employers that are actively hiring, with their open-job volume.
- **Market research** — combine salary + company + job data for labour-market and sector reports.
- **Aggregators & job boards** — ingest structured French job data with a consistent schema.

### Input configuration

| Field | Type | Notes |
|---|---|---|
| `mode` | select | `jobs` (default), `salary`, or `company` |
| `startUrls` | array | Any HelloWork URLs (auto-classified). Overrides filters. |
| `keyword` | string | Jobs: search keyword |
| `location` | string | Jobs: location |
| `contractTypes` | array | Jobs: CDI, CDD, Stage, Alternance, Interim, Freelance |
| `scrapeJobDetails` | boolean | Jobs: fetch each job's detail page for the full record |
| `professions` | array | Salary: profession slugs (empty = featured professions) |
| `companySlugs` | array | Company: slugs incl. numeric id |
| `maxItems` | integer | Max rows to return |
| `maxConcurrency` | integer | Parallel detail fetches (jobs detail mode) |

#### Example input

```json
{
  "mode": "salary",
  "professions": ["developpeur", "infirmier", "expert-comptable"],
  "maxItems": 50
}
````

### Output

#### `rowType: "job"`

```jsonc
{
  "rowType": "job",
  "jobId": "78490586",
  "url": "https://www.hellowork.com/fr-fr/emplois/78490586.html",
  "title": "Développeur Back-End H/F",
  "company": "GALILEO RH",
  "location": "Paris - 75",
  "contractType": "CDI",
  "salaryText": "55 000 - 65 000 € / an",
  "remoteWork": "Télétravail partiel",
  "postedText": "il y a 9 jours",
  // full-detail mode adds:
  "educationLevel": "Bac +5",
  "experienceRequired": "5 ans",
  "sector": "informatique",
  "metier": "developpeur back end",
  "region": "ile de france",
  "ville": "paris",
  "seniorityTags": ["cdi", "confirme"],
  "description": "Rattaché au CTO, vous rejoindrez une équipe…"
}
```

#### `rowType: "salary"`

```jsonc
{
  "rowType": "salary",
  "metier": "developpeur",
  "title": "Salaire Développeur",
  "medianAnnual": 56200,
  "medianMonthly": 4683,
  "medianHourly": 30.88,
  "confidenceIndex": "Indice de confiance très élevé",
  "byExperience": [
    { "level": "Débutant", "annual": 37230 },
    { "level": "Junior", "annual": 39420 },
    { "level": "Confirmé", "annual": 50369 },
    { "level": "Senior", "annual": 58254 }
  ],
  "byRegion": [{ "name": "Île-de-France", "monthly": 4266, "annual": 51200 }],
  "byCity": [{ "name": "Paris", "monthly": 4700, "annual": 56400 }]
}
```

#### `rowType: "company"`

```jsonc
{
  "rowType": "company",
  "companyId": "192976",
  "slug": "auchan-retail-france-546",
  "name": "auchan retail france",
  "sector": "commerce alimentaire grande distribution",
  "openJobCount": 917,
  "hasReviews": true,
  "reviewCount": 128,
  "jobUrls": ["https://www.hellowork.com/fr-fr/emplois/…"]
}
```

### Key output fields

| Field | Description |
|---|---|
| `title` / `company` / `location` | Job title, employer, and location |
| `contractType` / `salaryText` / `remoteWork` | Contract, salary range, remote-work status |
| `medianAnnual` / `byExperience` / `byRegion` | Salary benchmarks (salary mode) |
| `openJobCount` / `reviewCount` / `jobUrls` | Company hiring volume, reviews, live listings (company mode) |
| `metier` / `domaine` / `region` / `seniorityTags` | HelloWork taxonomy (job detail mode) |

### FAQ

**Do I need a proxy?** No. HelloWork has no anti-bot protection, so the actor fetches directly. A proxy input exists but is optional.

**Jobs card vs full detail?** Card mode returns ~30 fully-usable jobs per page fetch (title, company, location, contract, salary, remote). Turn on full details to also get the description, education, experience, sector, and taxonomy — at one fetch per job.

**Which professions are available in salary mode?** Any profession HelloWork publishes a salary page for (e.g. developpeur, infirmier, expert-comptable, ingenieur, architecte, medecin-generaliste). Leave the list empty to scrape the featured set automatically.

**How do I get a company slug?** It's the last path segment of a company URL, including the numeric id — e.g. `auchan-retail-france-546` from `/fr-fr/entreprises/auchan-retail-france-546.html`.

**Can I run it on a schedule?** Yes — save a mode + filters and run it on an Apify schedule for ongoing monitoring.

### Notes & limitations

- Targets the French site (`hellowork.com`, `/fr-fr/`).
- Some job postings are recruiter-anonymised (company shows as "Recruteur"); that reflects the source.
- Salary figures are HelloWork's own estimates/medians (from real offers + INSEE data), not the actor's calculation.

### ⚠️ Disclaimer

This actor extracts **publicly available** data from hellowork.com for legitimate purposes such as labour-market research, compensation benchmarking, and recruitment. You are responsible for how you use the scraped data. Comply with HelloWork's Terms of Service, applicable data-protection law (including the GDPR when handling personal data), and all local regulations. This tool is not affiliated with, endorsed by, or connected to HelloWork.

### SEO Keywords

HelloWork scraper, hellowork.com scraper, French job scraper, France jobs API, emploi scraper, salary scraper France, salaire par métier, compensation benchmark France, French job board scraper, job listings France, recruitment data France, company hiring data, employer intelligence, CDI CDD scraper, French labour market data, salary benchmark scraper, job market monitoring, HR data France, Apify job scraper, offres emploi scraper.

# Actor input Schema

## `mode` (type: `string`):

What to scrape: job listings, salary benchmarks by profession, or company profiles.

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

HelloWork URLs to scrape (auto-classified). Jobs: a search URL or /fr-fr/emplois/{id}.html. Salary: /fr-fr/salaires/{metier}.html. Company: /fr-fr/entreprises/{slug}.html. Overrides the filters below.

## `keyword` (type: `string`):

Jobs mode: search keyword, e.g. développeur, infirmier, commercial.

## `location` (type: `string`):

Jobs mode: location, e.g. Paris, Lyon, Île-de-France.

## `contractTypes` (type: `array`):

Jobs mode: restrict to contract types.

## `scrapeJobDetails` (type: `boolean`):

Jobs mode: fetch each job's detail page for the full record (description, education level, experience, sector, and the HelloWork taxonomy). Off = fast card-level data only (title, company, location, contract, salary, remote).

## `professions` (type: `array`):

Salary mode: profession slugs to benchmark, e.g. developpeur, infirmier, expert-comptable. Leave empty to scrape HelloWork's featured professions.

## `companySlugs` (type: `array`):

Company mode: company slugs including the numeric id, e.g. auchan-retail-france-546.

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

Maximum rows to return (jobs / salary reports / companies).

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

Parallel detail fetches (jobs mode with full details).

## `proxy` (type: `object`):

Optional. HelloWork has no anti-bot, so proxies are usually unnecessary. Leave off for direct fetching.

## Actor input object example

```json
{
  "mode": "jobs",
  "startUrls": [
    {
      "url": "https://www.hellowork.com/fr-fr/emploi/recherche.html?k=developpeur&l=Paris"
    }
  ],
  "keyword": "développeur",
  "location": "Paris",
  "scrapeJobDetails": false,
  "maxItems": 100,
  "maxConcurrency": 6
}
```

# 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://www.hellowork.com/fr-fr/emploi/recherche.html?k=developpeur&l=Paris"
        }
    ],
    "maxItems": 100,
    "maxConcurrency": 6
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/hellowork-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://www.hellowork.com/fr-fr/emploi/recherche.html?k=developpeur&l=Paris" }],
    "maxItems": 100,
    "maxConcurrency": 6,
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/hellowork-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://www.hellowork.com/fr-fr/emploi/recherche.html?k=developpeur&l=Paris"
    }
  ],
  "maxItems": 100,
  "maxConcurrency": 6
}' |
apify call memo23/hellowork-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "HelloWork Scraper — Jobs, Salary & Company Data",
        "description": "Scrape hellowork.com in three modes: job listings, salary benchmarks by profession (median, junior to senior, by region & city), and company profiles (sector, open-job count, reviews). Search by keyword, location, contract or paste any URL. No proxy needed. JSON, CSV, Excel.",
        "version": "0.0",
        "x-build-id": "76veJZNqPuadt7SI3"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~hellowork-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-hellowork-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/memo23~hellowork-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-hellowork-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/memo23~hellowork-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-hellowork-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "jobs",
                            "salary",
                            "company"
                        ],
                        "type": "string",
                        "description": "What to scrape: job listings, salary benchmarks by profession, or company profiles.",
                        "default": "jobs"
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "HelloWork URLs to scrape (auto-classified). Jobs: a search URL or /fr-fr/emplois/{id}.html. Salary: /fr-fr/salaires/{metier}.html. Company: /fr-fr/entreprises/{slug}.html. Overrides the filters below.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keyword": {
                        "title": "Keyword (jobs)",
                        "type": "string",
                        "description": "Jobs mode: search keyword, e.g. développeur, infirmier, commercial."
                    },
                    "location": {
                        "title": "Location (jobs)",
                        "type": "string",
                        "description": "Jobs mode: location, e.g. Paris, Lyon, Île-de-France."
                    },
                    "contractTypes": {
                        "title": "Contract types (jobs)",
                        "type": "array",
                        "description": "Jobs mode: restrict to contract types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "CDI",
                                "CDD",
                                "Stage",
                                "Alternance",
                                "Interim",
                                "Freelance"
                            ],
                            "enumTitles": [
                                "CDI (permanent)",
                                "CDD (fixed-term)",
                                "Internship",
                                "Apprenticeship",
                                "Temp",
                                "Freelance"
                            ]
                        }
                    },
                    "scrapeJobDetails": {
                        "title": "Scrape full job details (jobs)",
                        "type": "boolean",
                        "description": "Jobs mode: fetch each job's detail page for the full record (description, education level, experience, sector, and the HelloWork taxonomy). Off = fast card-level data only (title, company, location, contract, salary, remote).",
                        "default": false
                    },
                    "professions": {
                        "title": "Professions (salary)",
                        "type": "array",
                        "description": "Salary mode: profession slugs to benchmark, e.g. developpeur, infirmier, expert-comptable. Leave empty to scrape HelloWork's featured professions.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companySlugs": {
                        "title": "Company slugs (company)",
                        "type": "array",
                        "description": "Company mode: company slugs including the numeric id, e.g. auchan-retail-france-546.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum rows to return (jobs / salary reports / companies).",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Parallel detail fetches (jobs mode with full details).",
                        "default": 6
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. HelloWork has no anti-bot, so proxies are usually unnecessary. Leave off for direct fetching."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
