# StepStone Scraper (`silentflow/stepstone-scraper`) Actor

Scrape job listings from StepStone.de, Germany's leading job board. Extract job titles, companies, locations, salaries, full descriptions, employment types, posting dates and recruiter contact emails. Perfect for recruitment analytics, market research, salary benchmarking and lead generation.

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

## Pricing

from $0.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## StepStone Scraper

**Turn StepStone.de into structured, ready-to-use job data.** Pull titles, companies, locations, salary, and full job descriptions from Germany's leading job board. Hundreds of listings in minutes, not hours.

### How it works

![How it works](https://api.apify.com/v2/key-value-stores/8myciRXVKBRK7D1GN/records/how-it-works-v1.png)

### ✨ Why teams choose this over other StepStone scrapers

Tired of scrapers that only hand you a title and a link? Rebuilding job descriptions by hand because the data stops at the search page? Getting inconsistent rows every time you run a search?

- 📄 **Full job descriptions, not just search snippets.** Turn on `includeDetails` and every row gets the complete description, employment type, and exact geo-location pulled from the job page itself, not the truncated preview shown on the results list.
- 🎯 **The richest StepStone data available.** Most StepStone scrapers stop at search-result summaries. This one adds description, employment type, and precise location per job, the fields recruiters and analysts actually need.
- 🧱 **One clean row per job.** Every listing lands in your dataset with the same structure: title, company, location, salary, dates, and skills, ready to filter, sort, or load into a spreadsheet without cleanup.
- 🔓 **No login required.** Scrape all public job listings without an account, an API key, or any manual setup.
- 🇩🇪 **Built for the German market.** Search by keyword and city, or paste StepStone.de search URLs directly. Locations, salary text, and posting dates come back exactly as StepStone publishes them.

### 🎯 What you can do with StepStone data

| Team | What they build |
|------|-----------------|
| **Recruiters & staffing agencies** | Source live roles and hiring companies, and monitor competitor job postings as they go up |
| **HR & people analytics** | Benchmark salary ranges and benefits language across roles, industries, and regions |
| **Market researchers** | Track German labor-market and hiring-trend shifts over time, by city, sector, or job title |
| **Sales & lead generation** | Find companies actively hiring as a buying-intent signal for outbound targeting |
| **Data teams** | Feed a job-market dataset into dashboards, models, or internal search tools |

### 📥 Input parameters

#### What to scrape

| Parameter | Type | Description |
|-----------|------|-------------|
| `searchUrls` | array | StepStone.de search-result URLs to scrape. Run a search on StepStone.de and paste the resulting URL here. |
| `keyword` | string | Job keyword to search when no URL is given, e.g. `"data engineer"`. |
| `location` | string | City or region to focus the keyword search, e.g. `"Berlin"`. |

#### Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeDetails` | boolean | off | Visit each job page to add the full description, employment type, and exact location. |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxItems` | integer | 50 | Maximum number of jobs to collect. |

#### Advanced

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `debugMode` | boolean | off | Detailed logs for troubleshooting. |

> **Note**: Proxies are automatically configured in Pay Per Event mode. No proxy setup needed.

### 📊 Output data

#### Listing-level item (`includeDetails` off)

```json
{
    "id": 9876543,
    "harmonisedId": "9876543_de",
    "title": "Data Engineer (m/w/d)",
    "url": "https://www.stepstone.de/stellenangebote--Data-Engineer-Berlin--9876543",
    "companyName": "Beispiel GmbH",
    "companyUrl": "https://www.stepstone.de/cmp/de/beispiel-gmbh",
    "companyLogoUrl": "https://www.stepstone.de/logos/beispiel-gmbh.png",
    "location": "Berlin",
    "postCode": "10115",
    "salary": "55.000 € - 70.000 €",
    "datePosted": "2026-06-28",
    "workFromHome": "2",
    "textSnippet": "Wir suchen einen Data Engineer zur Verstärkung unseres Teams...",
    "labels": ["Festanstellung", "Vollzeit"],
    "skills": ["SQL", "Python", "Airflow"],
    "section": "IT",
    "isSponsored": false,
    "searchUrl": "https://www.stepstone.de/jobs/data-engineer?ws=Berlin",
    "scrapedAt": "2026-07-02T10:30:00Z"
}
````

#### Full detail item (`includeDetails` on)

```json
{
    "id": 9876543,
    "harmonisedId": "9876543_de",
    "title": "Data Engineer (m/w/d)",
    "url": "https://www.stepstone.de/stellenangebote--Data-Engineer-Berlin--9876543",
    "companyName": "Beispiel GmbH",
    "companyUrl": "https://www.stepstone.de/cmp/de/beispiel-gmbh",
    "companyLogoUrl": "https://www.stepstone.de/logos/beispiel-gmbh.png",
    "location": "Berlin",
    "postCode": "10115",
    "salary": "55.000 € - 70.000 €",
    "datePosted": "2026-06-28",
    "workFromHome": "2",
    "textSnippet": "Wir suchen einen Data Engineer zur Verstärkung unseres Teams...",
    "labels": ["Festanstellung", "Vollzeit"],
    "skills": ["SQL", "Python", "Airflow"],
    "section": "IT",
    "isSponsored": false,
    "description": "Full job description text, unabridged, as published on the job page...",
    "descriptionHtml": "<p>Full job description text, unabridged, as published on the job page...</p>",
    "employmentType": "FULL_TIME",
    "validThrough": "2026-08-15",
    "latitude": 52.5200,
    "longitude": 13.4050,
    "streetAddress": "Musterstraße 12",
    "searchUrl": "https://www.stepstone.de/jobs/data-engineer?ws=Berlin",
    "scrapedAt": "2026-07-02T10:30:00Z"
}
```

### 🗂️ Data fields

| Category | Fields |
|----------|--------|
| **Identity** | id, harmonisedId, title, url |
| **Company** | companyName, companyId, companyUrl, companyLogoUrl |
| **Location** | location, postCode, streetAddress\*, latitude\*, longitude\* |
| **Compensation** | salary, unifiedSalary |
| **Timing** | datePosted, validThrough\* |
| **Job details** | description\*, descriptionHtml\*, employmentType\*, workFromHome, textSnippet |
| **Recruiter contact** | contactEmail\*, contactPhone\* |
| **Classification** | labels, topLabels, skills, section, partnership, isSponsored, isAnonymous, isHighlighted, isTopJob |
| **Meta** | searchUrl, scrapedAt |

`*` Added only when `includeDetails` is turned on. `contactEmail` and `contactPhone` are the recruiter contact details when the listing publishes them, ready for outreach. `workFromHome` is StepStone's remote-work indicator, returned as a short code (values such as `"1"` or `"2"`), signalling whether a role offers remote or home-office work. `salary` can be empty when the employer does not publish a figure, which is common on StepStone.

- `companyId` - StepStone's internal identifier for the hiring company.
- `unifiedSalary` - structured salary range (min, max, currency, period) when available.
- `labels` / `topLabels` - badges shown on the listing (for example new, top job).
- `skills` - skills highlighted on the listing when present.
- `partnership` - details when a listing comes from a partner job board.
- `isAnonymous` - true when the employer is not named on the listing.
- `isHighlighted` / `isTopJob` - promotion flags for the listing.

### 🚀 Examples

#### Search jobs by keyword and city

```json
{
    "keyword": "data engineer",
    "location": "Berlin",
    "maxItems": 50
}
```

#### Pull full descriptions for every result

```json
{
    "keyword": "product manager",
    "location": "München",
    "includeDetails": true,
    "maxItems": 100
}
```

#### Scrape a StepStone search URL you already built on the site

```json
{
    "searchUrls": ["https://www.stepstone.de/jobs/software-engineer/in-hamburg"],
    "maxItems": 200
}
```

#### Track new postings for a role in a specific city

```json
{
    "keyword": "data engineer",
    "location": "Berlin",
    "includeDetails": true,
    "maxItems": 30
}
```

#### Fast, listing-only run for a large keyword sweep

```json
{
    "keyword": "sales manager",
    "location": "Frankfurt",
    "includeDetails": false,
    "maxItems": 500
}
```

### 💻 Integrations

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("{username}/stepstone-scraper").call(run_input={
    "keyword": "data engineer",
    "location": "Berlin",
    "includeDetails": True,
    "maxItems": 100,
})

for job in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{job['title']} at {job['companyName']} ({job['location']}) - {job['salary']}")
```

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('{username}/stepstone-scraper').call({
    keyword: 'product manager',
    location: 'München',
    includeDetails: true,
    maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(job => {
    console.log(`${job.title} at ${job.companyName}: ${job.salary || 'salary not published'}`);
});
```

### 📈 Performance

| Metric | Value |
|--------|-------|
| **Speed (listing only)** | Fastest mode, one page fetch per batch of results |
| **Speed (with `includeDetails`)** | One extra page fetch per job, for the full description and exact location |
| **Data freshness** | Real-time, listings reflect what is live on StepStone.de at scrape time |
| **Max items per run** | 10,000 |

### 💡 Tips for best results

1. **Start with `maxItems: 50`** to confirm your keyword and location return the roles you expect, then scale up.
2. **Set `location` precisely.** `"Berlin"` returns tighter results than a broader region name.
3. **Turn on `includeDetails` for analytics work.** Salary benchmarking, skills extraction, and remote-work analysis all need the full job description, not just the search snippet.
4. **Turn off `includeDetails` for large keyword sweeps.** When you only need title, company, and location across thousands of jobs, the listing-only run is faster.
5. **Paste a `searchUrls` entry when you already filtered on the site.** Any filters you set on StepStone.de (contract type, seniority, radius) carry over automatically because the URL encodes them.

### ❓ FAQ

**Do I need a StepStone account?**
No. The scraper extracts publicly available job listings. No login, no API key.

**What's the difference between listing-only and full detail runs?**
Listing-only returns the fields shown on the search page. Turning on `includeDetails` adds the complete job description, employment type, and exact location by visiting each job page.

**Can I search by keyword without building a URL myself?**
Yes. Set `keyword` and, optionally, `location`. The scraper builds the search for you.

**Can I paste a search URL directly from StepStone.de?**
Yes. Copy the URL from your browser after running a search on StepStone.de and add it to `searchUrls`.

**Why is `salary` sometimes empty?**
Not every employer publishes a salary range on StepStone. When it is missing on the source page, it is left empty rather than guessed.

**Does it handle pagination automatically?**
Yes. The scraper keeps collecting jobs across result pages until it reaches `maxItems`.

### 📬 Support

Need something this scraper doesn't do yet? We ship features fast.

- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations

Response time: usually under 24 hours.

# Actor input Schema

## `searchUrls` (type: `array`):

StepStone.de search result URLs to scrape. Open StepStone.de, run a search, and paste the resulting URL here.

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

Job keyword to search (used when no Search URLs are provided). Example: 'data engineer'.

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

City or region to focus the keyword search. Example: 'Berlin'.

## `includeDetails` (type: `boolean`):

Visit each job page to add the full description, employment type, and exact location. Turn off for faster, cheaper listing-only runs.

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

The maximum total number of jobs to collect.

## `debugMode` (type: `boolean`):

Show detailed logs for troubleshooting.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.stepstone.de/jobs/data-engineer"
  ],
  "keyword": "",
  "location": "",
  "includeDetails": false,
  "maxItems": 50,
  "debugMode": false
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped jobs: title, company, location, salary, posting date, work-from-home, snippet, and full description when details are enabled.

# 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 = {
    "searchUrls": [
        "https://www.stepstone.de/jobs/data-engineer"
    ],
    "keyword": "",
    "location": "",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/stepstone-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 = {
    "searchUrls": ["https://www.stepstone.de/jobs/data-engineer"],
    "keyword": "",
    "location": "",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("silentflow/stepstone-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 '{
  "searchUrls": [
    "https://www.stepstone.de/jobs/data-engineer"
  ],
  "keyword": "",
  "location": "",
  "maxItems": 50
}' |
apify call silentflow/stepstone-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "StepStone Scraper",
        "description": "Scrape job listings from StepStone.de, Germany's leading job board. Extract job titles, companies, locations, salaries, full descriptions, employment types, posting dates and recruiter contact emails. Perfect for recruitment analytics, market research, salary benchmarking and lead generation.",
        "version": "1.0",
        "x-build-id": "9rHEsVDvLqc8gWKJs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/silentflow~stepstone-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-silentflow-stepstone-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/silentflow~stepstone-scraper/runs": {
            "post": {
                "operationId": "runs-sync-silentflow-stepstone-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/silentflow~stepstone-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-silentflow-stepstone-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": {
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "StepStone.de search result URLs to scrape. Open StepStone.de, run a search, and paste the resulting URL here.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Job keyword to search (used when no Search URLs are provided). Example: 'data engineer'.",
                        "default": ""
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City or region to focus the keyword search. Example: 'Berlin'.",
                        "default": ""
                    },
                    "includeDetails": {
                        "title": "Include full job details",
                        "type": "boolean",
                        "description": "Visit each job page to add the full description, employment type, and exact location. Turn off for faster, cheaper listing-only runs.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Maximum number of jobs",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "The maximum total number of jobs to collect.",
                        "default": 50
                    },
                    "debugMode": {
                        "title": "Debug mode",
                        "type": "boolean",
                        "description": "Show detailed logs for troubleshooting.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
