# NoFluffJobs Scraper - European Tech Job Listings (`studio-amba/nofluffjobs-scraper`) Actor

Scrape tech job listings from NoFluffJobs with mandatory salary ranges. Covers Poland, Czech Republic, Hungary, Ukraine. Extract titles, companies, salaries, technologies, seniority. Public API -- no login or cookies required.

- **URL**: https://apify.com/studio-amba/nofluffjobs-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** 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

### What does NoFluffJobs Scraper do?

**NoFluffJobs Scraper** extracts tech job listings from [NoFluffJobs](https://nofluffjobs.com), Europe's leading IT job board where every posting includes mandatory salary ranges -- no hidden compensation, no "competitive salary" vagueness. It covers Poland, Czech Republic, Hungary, Ukraine, and increasingly Western Europe. Uses the public API directly -- no login, cookies, or browser required.

Use it on the Apify platform to get structured European tech job market data via API, schedule recurring scrapes, and integrate with tools like Zapier, Make, Google Sheets, and Slack.

### How to scrape NoFluffJobs data

1. Go to the NoFluffJobs Scraper on the Apify Store.
2. Click **Try for free** to open the actor in the Apify Console.
3. Enter a search query (e.g. "javascript", "python", "devops", "react").
4. Optionally filter by category (backend, frontend, fullstack, devops, data, etc.).
5. Optionally filter by location (e.g. "warszawa", "krakow", "prague", "budapest").
6. Optionally filter by seniority level (junior, mid, senior, expert).
7. Optionally filter by salary currency (PLN, EUR, USD, CZK, HUF, GBP).
8. Set the maximum number of results you want (default: 100).
9. Click **Start** and wait for the run to finish.
10. Download your data as JSON, CSV, Excel, or HTML from the Output tab.

### Why use NoFluffJobs Scraper?

- **Mandatory salary transparency** -- Every job posting on NoFluffJobs is required to show salary ranges. This is the only major European tech job board with this rule, making it the best source for tech compensation data.
- **Salary benchmarking** -- Compare salary ranges across roles, seniority levels, technologies, and countries. Track how compensation evolves over time for specific tech stacks.
- **Recruitment intelligence** -- Monitor which companies are hiring, what technologies they need, and what they pay. Identify hiring trends before your competitors.
- **Market analysis** -- Understand tech labor market dynamics across Central and Eastern Europe. Which cities pay the most? Which technologies command the highest salaries?
- **Lead generation** -- Find companies actively hiring tech talent to target with B2B services, tools, or recruitment solutions.
- **Remote work tracking** -- Filter and analyze the remote work landscape in European tech. Track how remote availability changes across roles and seniority levels.
- **Academic research** -- Structured data for labor economics, tech industry studies, or compensation research papers.
- **Job aggregation** -- Feed job listings into your own job board, career platform, or notification system.

### About NoFluffJobs

NoFluffJobs is a tech-focused job board founded in Poland that has expanded across Central and Eastern Europe. Its defining feature is mandatory salary range disclosure on every job posting -- employers cannot post without specifying compensation. The platform covers:

- **Countries**: Poland, Czech Republic, Hungary, Ukraine, Slovakia, Netherlands, and more
- **Categories**: Backend, Frontend, Fullstack, Mobile, DevOps, Data, Testing/QA, Security, AI/ML, Product Management, UX, and more
- **Contract types**: B2B (business-to-business), Permanent (employment contract / UoP), Mandate contracts
- **Currencies**: PLN, EUR, USD, CZK, HUF, GBP, CHF

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | String | No | Search keyword (e.g. "javascript", "python"). Defaults to "javascript" if empty. |
| `category` | String | No | Job category: backend, frontend, fullstack, mobile, devops, data, testing, security, ai, etc. |
| `location` | String | No | City name (e.g. "warszawa", "krakow", "prague", "budapest"). Leave empty for all. |
| `seniority` | String | No | Seniority level: junior, mid, senior, or expert. Leave empty for all. |
| `currency` | String | No | Salary currency filter: PLN, EUR, USD, CZK, HUF, GBP, CHF. |
| `salaryPeriod` | String | No | Salary billing period: month or hour. |
| `enrichDetail` | Boolean | No | Fetch full details (must-have/nice-to-have skills) per listing. Slower but richer data. Default: false. |
| `maxResults` | Integer | No | Maximum job listings to return (default: 100, max: 10000). |
| `proxyConfiguration` | Object | No | Proxy settings. The API is public and usually works without proxies. |

### Output

Each result contains structured data about a single tech job listing with salary information. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Example output

```json
{
    "jobTitle": "Senior JavaScript Developer",
    "company": "Allegro",
    "location": "Warszawa, Poland | Krakow, Poland",
    "salaryFrom": 18000,
    "salaryTo": 25000,
    "salaryCurrency": "PLN",
    "salaryType": "b2b",
    "salaryPeriod": "month",
    "seniority": "senior",
    "category": "backend",
    "technologies": "JavaScript, TypeScript, Node.js, React",
    "remote": true,
    "postedDate": "2026-06-05T10:30:00.000Z",
    "url": "https://nofluffjobs.com/job/senior-javascript-developer-allegro-warszawa",
    "scrapedAt": "2026-06-09T14:30:00.000Z"
}
````

#### With enrichDetail enabled

```json
{
    "jobTitle": "Senior JavaScript Developer",
    "company": "Allegro",
    "location": "Warszawa, Poland | Krakow, Poland",
    "salaryFrom": 18000,
    "salaryTo": 25000,
    "salaryCurrency": "PLN",
    "salaryType": "b2b",
    "salaryPeriod": "month",
    "seniority": "senior",
    "category": "backend",
    "technologies": "JavaScript, TypeScript, Node.js, React",
    "remote": true,
    "postedDate": "2026-06-05T10:30:00.000Z",
    "mustHaveSkills": "JavaScript, TypeScript, Node.js, REST API, PostgreSQL",
    "niceToHaveSkills": "React, Docker, Kubernetes, AWS",
    "url": "https://nofluffjobs.com/job/senior-javascript-developer-allegro-warszawa",
    "scrapedAt": "2026-06-09T14:30:00.000Z"
}
```

### Data fields

| Field | Type | Description |
|-------|------|-------------|
| `jobTitle` | String | Job position title |
| `company` | String | Hiring company name |
| `location` | String | Job locations (city, country). Multiple locations separated by pipe. |
| `salaryFrom` | Number | Minimum salary in the range |
| `salaryTo` | Number | Maximum salary in the range |
| `salaryCurrency` | String | Salary currency code (PLN, EUR, USD, CZK, HUF, GBP) |
| `salaryType` | String | Contract type (b2b, permanent, mandate\_contract) |
| `salaryPeriod` | String | Billing period (month, hour) |
| `seniority` | String | Seniority levels (junior, mid, senior, expert) |
| `category` | String | Job category (backend, frontend, devops, data, etc.) |
| `technologies` | String | Required technologies, comma-separated |
| `remote` | Boolean | Whether remote work is available |
| `postedDate` | String | When the job was posted (ISO 8601) |
| `mustHaveSkills` | String | Required skills (only with enrichDetail enabled) |
| `niceToHaveSkills` | String | Preferred skills (only with enrichDetail enabled) |
| `url` | String | Direct URL to the job listing on NoFluffJobs |
| `scrapedAt` | String | ISO 8601 timestamp of when the data was collected |

### Cost estimate

This actor is very efficient because it uses a direct API integration (no browser rendering). It uses approximately **0.1 compute units per 1,000 results** in fast mode (enrichDetail disabled). With enrichDetail enabled, expect roughly **0.5 compute units per 1,000 results** due to individual detail fetches. With the Apify free tier you can run smaller scrapes at no cost.

### Tips

- **Fast mode** (default): Leave `enrichDetail` off to scrape titles, companies, salaries, and locations at maximum speed. Good for salary surveys and market overview.
- **Rich mode**: Enable `enrichDetail` to also get must-have and nice-to-have skills for each listing. Slower but invaluable for skills mapping and tech stack analysis.
- Use English tech keywords (e.g. "javascript", "python", "devops") -- NoFluffJobs uses English for technology names.
- Filter by `seniority` to compare salary ranges across experience levels.
- Filter by `currency` to normalize salary comparisons (EUR is useful for cross-country analysis).
- Schedule daily runs to build a time series of salary data and hiring trends.
- Combine with other European job board scrapers for comprehensive market coverage.

### Integrations

Connect NoFluffJobs Scraper with your existing tools and workflows:

- **Google Sheets** -- Export salary data to spreadsheets for benchmarking and reporting.
- **Slack** -- Get notified when new jobs matching your tech stack and salary range appear.
- **Zapier / Make** -- Build workflows that react to new job postings in real time.
- **Custom API** -- Access all results programmatically via the Apify API in JSON format.
- **Webhooks** -- Trigger actions in your systems when new data is available.
- **Data warehouses** -- Feed structured salary and job data into BigQuery, Snowflake, or PostgreSQL.

### FAQ and support

**How does NoFluffJobs enforce salary transparency?** Employers cannot publish a job listing without specifying a salary range. This is enforced by the platform itself, making it the most reliable source of tech compensation data in Central and Eastern Europe.

**What currencies are supported?** NoFluffJobs supports PLN, EUR, USD, CZK, HUF, GBP, and CHF. You can filter by currency to get salary data in a specific denomination.

**What does salaryType mean?** It indicates the contract type: "b2b" (business-to-business / contractor), "permanent" (employment contract, called UoP in Poland), or "mandate\_contract" (umowa zlecenie). Many jobs list multiple salary ranges for different contract types -- the scraper captures the first/primary one.

**Do I need proxies?** The NoFluffJobs API is public and typically works without proxies. For large-scale scraping (1000+ results), residential proxies in Poland are recommended to avoid rate limiting.

**How often is the data updated?** NoFluffJobs updates listings in real-time as employers post and modify jobs. Schedule the actor daily or weekly to track changes and new postings.

**I found a bug or have a feature request.** Open an issue in the Issues tab on the actor page. You can also request a custom scraping solution.

# Actor input Schema

## `searchQuery` (type: `string`):

Search keyword (e.g. 'javascript', 'python', 'devops', 'react'). Defaults to 'javascript' if empty.

## `category` (type: `string`):

Filter by job category. Leave empty for all categories.

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

City name (e.g. 'warszawa', 'krakow', 'prague', 'budapest'). Leave empty for all locations.

## `seniority` (type: `string`):

Filter by seniority level. Leave empty for all levels.

## `currency` (type: `string`):

Filter by salary currency. Leave empty for all currencies.

## `salaryPeriod` (type: `string`):

Filter by salary billing period. Leave empty for all.

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

Fetch full job details (must-have/nice-to-have skills) for each listing. Slower but more data. Disable for faster title/salary scrapes.

## `maxResults` (type: `integer`):

Maximum number of job listings to scrape.

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

Proxy settings. The NoFluffJobs API is public and often works without proxies, but residential proxies help with larger runs.

## Actor input object example

```json
{
  "searchQuery": "javascript",
  "enrichDetail": false,
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "PL"
  }
}
```

# 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 = {
    "searchQuery": "javascript",
    "enrichDetail": false,
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "PL"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/nofluffjobs-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 = {
    "searchQuery": "javascript",
    "enrichDetail": False,
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "PL",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/nofluffjobs-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 '{
  "searchQuery": "javascript",
  "enrichDetail": false,
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "PL"
  }
}' |
apify call studio-amba/nofluffjobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NoFluffJobs Scraper - European Tech Job Listings",
        "description": "Scrape tech job listings from NoFluffJobs with mandatory salary ranges. Covers Poland, Czech Republic, Hungary, Ukraine. Extract titles, companies, salaries, technologies, seniority. Public API -- no login or cookies required.",
        "version": "0.1",
        "x-build-id": "bkOhf7hOHoeaurlRJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~nofluffjobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-nofluffjobs-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/studio-amba~nofluffjobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-nofluffjobs-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/studio-amba~nofluffjobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-nofluffjobs-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": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search keyword (e.g. 'javascript', 'python', 'devops', 'react'). Defaults to 'javascript' if empty."
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "",
                            "backend",
                            "frontend",
                            "fullstack",
                            "mobile",
                            "devops",
                            "data",
                            "testing",
                            "security",
                            "ai",
                            "product-management",
                            "project-management",
                            "ux",
                            "support",
                            "erp"
                        ],
                        "type": "string",
                        "description": "Filter by job category. Leave empty for all categories."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City name (e.g. 'warszawa', 'krakow', 'prague', 'budapest'). Leave empty for all locations."
                    },
                    "seniority": {
                        "title": "Seniority",
                        "enum": [
                            "",
                            "junior",
                            "mid",
                            "senior",
                            "expert"
                        ],
                        "type": "string",
                        "description": "Filter by seniority level. Leave empty for all levels."
                    },
                    "currency": {
                        "title": "Salary Currency",
                        "enum": [
                            "",
                            "PLN",
                            "EUR",
                            "USD",
                            "CZK",
                            "HUF",
                            "GBP",
                            "CHF"
                        ],
                        "type": "string",
                        "description": "Filter by salary currency. Leave empty for all currencies."
                    },
                    "salaryPeriod": {
                        "title": "Salary Period",
                        "enum": [
                            "",
                            "month",
                            "hour"
                        ],
                        "type": "string",
                        "description": "Filter by salary billing period. Leave empty for all."
                    },
                    "enrichDetail": {
                        "title": "Enrich with Detail",
                        "type": "boolean",
                        "description": "Fetch full job details (must-have/nice-to-have skills) for each listing. Slower but more data. Disable for faster title/salary scrapes.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of job listings to scrape.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. The NoFluffJobs API is public and often works without proxies, but residential proxies help with larger runs."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
