# XING Jobs Scraper (`scrapers-hub/xing-jobs-scraper`) Actor

XING Jobs scraper to extract job listings, company names, job titles, locations, posting dates, and other publicly available job data from XING Jobs 💼📊 Perfect for job market research, recruitment, talent sourcing, and employment trend analysis.

- **URL**: https://apify.com/scrapers-hub/xing-jobs-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## XING Jobs Scraper

An [Apify](https://apify.com) actor that searches [XING](https://www.xing.com) job
listings by keyword and, optionally, enriches every posting with the full
description, responsibilities, requirements, benefits, company profile and
metadata.

### Input

```json
{
  "queries": ["software engineer"],
  "limit": 100,
  "enrich_data": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

| Field | Type | Default | Description |
|---|---|---|---|
| `queries` | `string[]` | `["software engineer"]` | Keywords to search. Each runs its own paginated search. |
| `startUrls` | `string[]` | – | Full `xing.com/jobs/search?...` URLs to scrape instead of / alongside `queries`. |
| `location` | `string` | – | City filter applied to every query. |
| `radius` | `integer` | `20` | Search radius in km around `location`. |
| `limit` | `integer` | `100` | Max postings per query. XING caps guest browsing at ~200 per search. |
| `enrich_data` | `boolean` | `true` | Fetch each detail page for full description + sections. |
| `proxyConfiguration` | `object` | RESIDENTIAL | **Required.** XING blocks datacenter IPs — use residential. |
| `maxConcurrency` | `integer` | `5` | Parallel detail-page fetches. Keep low to avoid blocks. |
| `maxRequestRetries` | `integer` | `5` | Retries per blocked/failed request. |

### Output

One dataset item per job posting. Card-level fields come from the search API;
the `enrichment` block and long-text fields are added when `enrich_data` is on.

```jsonc
{
  "id": "155102097.afd464",
  "url": "https://www.xing.com/jobs/heimertingen-software-engineer-...",
  "title": "Software Engineer - Mobile Application | Android (m/w/d)",
  "company": "blackned GmbH",
  "location": "Heimertingen",
  "employmentType": "Full-time",
  "salaryMin": 59500,
  "salaryMax": 78500,
  "salaryMedian": 64000,
  "currency": "EUR",
  "applyUrl": "https://t.gohiring.com/h/...",
  "refreshedAt": "2026-06-24T11:50:15+00:00",
  "activeUntil": "2026-08-08T11:50:17+00:00",
  "fullDescription": "…",
  "responsibilities": "…",
  "requirements": "…",
  "benefits": "…",
  "companyProfileUrl": "https://www.xing.com/pages/blacknedgmbh",
  "companyLogoUrl": "https://www.xing.com/imagecache/...",
  "companySize": "51-200 employees",
  "companyIndustry": "Software",
  "companyLocation": "Heimertingen, Germany",
  "enrichment": {
    "detailUrl": "…",
    "sections": {
      "companyDescription": { "title": "Über uns:", "text": "…", "html": "…" },
      "responsibilities":   { "title": "Deine Aufgaben:", "text": "…", "html": "…" },
      "benefits":           { "title": "Wir bieten Dir:", "text": "…", "html": "…" }
    },
    "company": { "profileUrl": "…", "logoUrl": "…", "size": "…", "industry": "…", "location": "…" },
    "metadata": { "language": "de", "remoteOptions": ["NON_REMOTE"], "activatedAt": "…", "activeUntil": "…" }
  },
  "source_context": {
    "source_url": "https://www.xing.com/jobs/search?keywords=software+engineer",
    "seed_type": "query",
    "seed_value": "software engineer",
    "page_index": 1
  }
}
```

### How it works

1. **Search** — [`src/xing_client.py`](src/xing_client.py) calls XING's
   `JobSearchByQuery` GraphQL operation (`https://www.xing.com/xing-one/api`)
   with a guest consent cookie, paginating in pages of 20 until `limit` is
   reached or results run out. Each result maps to the flat card-level fields.
2. **Enrich** (optional) — [`src/parse_detail.py`](src/parse_detail.py) fetches
   each job's detail page, extracts the `JobPosting` JSON-LD block for the
   description/salary/apply URL, and pulls the titled content sections from the
   embedded page state.
3. **Output** — [`src/main.py`](src/main.py) deduplicates by `id`, attaches
   `source_context`, and pushes to the dataset incrementally.

### Notes & maintenance

- **Residential proxy is essential.** XING challenges datacenter IPs and requires
  the consent cookie (already sent by the client). Without it you will get
  blocked/empty results.
- **If XING changes their GraphQL schema**, the query string in
  [`src/xing_client.py`](src/xing_client.py) (`JOB_SEARCH_QUERY`) is the single
  place to update. All field reads are defensive (`.get(...)`), so a partial
  change degrades to missing fields rather than a crash.
- **Section detection is heuristic** (`classify_section` in `parse_detail.py`):
  German and English headlines are matched to canonical keys
  (`companyDescription`, `responsibilities`, `requirements`, `benefits`,
  `contactInfo`). Add synonyms to `SECTION_KEYS` as needed.
- XING limits guest browsing to ~200 results per search — split broad searches
  into several keywords or cities to collect more.

### Run locally

```bash
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt
## set APIFY_TOKEN in your env for Apify Proxy, then:
apify run   # or: python -m src   (uses ./storage for input/output)
```

Requires Python 3.10+ (the actor image uses 3.13).

# Actor input Schema

## `enrich_data` (type: `boolean`):

Turn this on to open each individual XING listing page and collect richer job and company details: full description, responsibilities, requirements, benefits, company profile and metadata.

## `queries` (type: `array`):

Use search words or phrases when you want the actor to build the search URLs for you. Each term runs its own paginated search. Example: \["software engineer", "backend developer"].

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

Add a location filter (city name) applied to every query, e.g. "Berlin".

## `radius` (type: `string`):

Search radius around the location, in kilometers. Only applies when a location is set.

## `date_posted` (type: `string`):

Limit query-built searches to recently posted jobs.

## `workplace` (type: `array`):

Filter by workplace / remote arrangement. Choose one or more.

## `employment_type` (type: `array`):

Filter by employment type. Choose one or more.

## `seniority` (type: `array`):

Filter by career level. Choose one or more.

## `min_price` (type: `integer`):

Only keep jobs whose salary range is at or above this value (EUR).

## `max_price` (type: `integer`):

Only keep jobs whose salary range is at or below this value (EUR).

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

Alternative to the query-building logic: full XING job search URLs to scrape, e.g. https://www.xing.com/jobs/search?keywords=python\&location=Berlin\&radius=20. Scraped in addition to any search terms.

## `limit` (type: `integer`):

Maximum number of job postings to collect per query. XING limits guest browsing to ~200 results per search.

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

XING blocks datacenter IPs and requires a consent cookie. RESIDENTIAL Apify Proxy is strongly recommended.

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

Maximum number of detail pages fetched in parallel. Keep low to avoid blocking.

## `maxRequestRetries` (type: `integer`):

How many times to retry a blocked/failed request before giving up.

## `introspect` (type: `boolean`):

Debug mode: instead of scraping, dump XING's real GraphQL job-search input schema into the log, then exit. Use to discover the correct query shape if a run fails with a GraphQL schema error.

## Actor input object example

```json
{
  "enrich_data": true,
  "queries": [
    "software engineer"
  ],
  "radius": "20",
  "limit": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxConcurrency": 5,
  "maxRequestRetries": 5,
  "introspect": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "software engineer"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/xing-jobs-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 = {
    "queries": ["software engineer"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/xing-jobs-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 '{
  "queries": [
    "software engineer"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapers-hub/xing-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "XING Jobs Scraper",
        "description": "XING Jobs scraper to extract job listings, company names, job titles, locations, posting dates, and other publicly available job data from XING Jobs 💼📊 Perfect for job market research, recruitment, talent sourcing, and employment trend analysis.",
        "version": "1.0",
        "x-build-id": "74HR73faoc3TJ2dEq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~xing-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-xing-jobs-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/scrapers-hub~xing-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-xing-jobs-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/scrapers-hub~xing-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-xing-jobs-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",
                "required": [
                    "proxyConfiguration"
                ],
                "properties": {
                    "enrich_data": {
                        "title": "Enrich results with full job data",
                        "type": "boolean",
                        "description": "Turn this on to open each individual XING listing page and collect richer job and company details: full description, responsibilities, requirements, benefits, company profile and metadata.",
                        "default": true
                    },
                    "queries": {
                        "title": "Search terms to look up",
                        "type": "array",
                        "description": "Use search words or phrases when you want the actor to build the search URLs for you. Each term runs its own paginated search. Example: [\"software engineer\", \"backend developer\"].",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location for query searches",
                        "type": "string",
                        "description": "Add a location filter (city name) applied to every query, e.g. \"Berlin\"."
                    },
                    "radius": {
                        "title": "Radius",
                        "enum": [
                            "10",
                            "20",
                            "50",
                            "70",
                            "100",
                            "200"
                        ],
                        "type": "string",
                        "description": "Search radius around the location, in kilometers. Only applies when a location is set.",
                        "default": "20"
                    },
                    "date_posted": {
                        "title": "Date posted",
                        "enum": [
                            "LAST_24_HOURS",
                            "LAST_WEEK",
                            "LAST_MONTH"
                        ],
                        "type": "string",
                        "description": "Limit query-built searches to recently posted jobs."
                    },
                    "workplace": {
                        "title": "Workplace",
                        "type": "array",
                        "description": "Filter by workplace / remote arrangement. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "FULL_REMOTE.050e26",
                                "PARTLY_REMOTE.ca71ca",
                                "NON_REMOTE.3ca273"
                            ],
                            "enumTitles": [
                                "Fully Remote",
                                "Hybrid",
                                "On-site"
                            ]
                        }
                    },
                    "employment_type": {
                        "title": "Employment type",
                        "type": "array",
                        "description": "Filter by employment type. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "PART_TIME.58889d",
                                "FULL_TIME.ef2fe9",
                                "CONTRACTOR.0ed397",
                                "INTERN.dc571c",
                                "SEASONAL.e4ab1d",
                                "TEMPORARY.8ff6ad",
                                "VOLUNTARY.c61099"
                            ],
                            "enumTitles": [
                                "Part-time",
                                "Full-time",
                                "Self-employed",
                                "Student",
                                "Seasonal",
                                "Temp",
                                "Volunteer"
                            ]
                        }
                    },
                    "seniority": {
                        "title": "Seniority",
                        "type": "array",
                        "description": "Filter by career level. Choose one or more.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1.795d28",
                                "2.24d1f6",
                                "3.2ebf16",
                                "4.83b992",
                                "5.6b837d",
                                "6.37d32d"
                            ],
                            "enumTitles": [
                                "Student/Intern",
                                "Entry Level",
                                "Professional/Experienced",
                                "Manager/Supervisor",
                                "Executive (VP, SVP, etc.)",
                                "Senior Executive (CEO, CFO, President)"
                            ]
                        }
                    },
                    "min_price": {
                        "title": "Minimum salary (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep jobs whose salary range is at or above this value (EUR)."
                    },
                    "max_price": {
                        "title": "Maximum salary (EUR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep jobs whose salary range is at or below this value (EUR)."
                    },
                    "startUrls": {
                        "title": "Pages or links to scrape",
                        "type": "array",
                        "description": "Alternative to the query-building logic: full XING job search URLs to scrape, e.g. https://www.xing.com/jobs/search?keywords=python&location=Berlin&radius=20. Scraped in addition to any search terms.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "limit": {
                        "title": "Max results for each input",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of job postings to collect per query. XING limits guest browsing to ~200 results per search.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "XING blocks datacenter IPs and requires a consent cookie. RESIDENTIAL Apify Proxy is strongly recommended.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of detail pages fetched in parallel. Keep low to avoid blocking.",
                        "default": 5
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many times to retry a blocked/failed request before giving up.",
                        "default": 5
                    },
                    "introspect": {
                        "title": "Introspect schema (debug)",
                        "type": "boolean",
                        "description": "Debug mode: instead of scraping, dump XING's real GraphQL job-search input schema into the log, then exit. Use to discover the correct query shape if a run fails with a GraphQL schema error.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
