# Jobindex Scraper - Jobindex.dk Job Listings (`memo23/jobindex-scraper`) Actor

Scrape Jobindex.dk job listings by keyword or URL. One row per job: title, company, location + coordinates, publish & deadline dates, apply URL, teaser and optional full ad text. Export to JSON, CSV or Excel.

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

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Jobindex Scraper

Turn any [Jobindex.dk](https://www.jobindex.dk) search into clean, structured data. Search by **keyword** or paste **search-result URLs** and **single job URLs** — and get one flat row per job with title, company, location + coordinates, publish and deadline dates, apply URL and a teaser. Flip on detail mode to add the full job-ad body text.

Built for recruitment-market research, salary and hiring-trend analysis, job aggregation and lead generation across the Danish job market.

#### How it works

![How the Jobindex Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-jobindex.png)

#### ✨ Why use this scraper?

- **Rich rows out of the box** — ~30 fields per job from the search results alone: title, company name + profile, location with **latitude/longitude**, first-seen and drop-off dates, apply deadline, apply URL, teaser text, logo and flags (remote, sponsored, archived).
- **Two ways in** — keyword searches, or paste Jobindex search-result URLs (with any filters you set on the site) and single `/vis-job/{id}` URLs. Mix them in one run.
- **Danish-IP ready** — Jobindex is a Danish site; every request routes through Danish residential IPs so you get the real page, not a geo-block.
- **Full ad text on demand** — turn on *Scrape job detail pages* (or paste a job URL) to add the complete job-ad body text.
- **Geocoded locations** — each job carries structured addresses (street, zip, city) with coordinates, ready to drop onto a map.
- **JSON, CSV, Excel or API** — pipe straight into your sheet, BI tool or pipeline. Billed per job.

#### 🎯 Use cases

| You are a… | Use it to… |
|---|---|
| Recruiter / agency | Track live openings by keyword, company and location across Denmark |
| Market researcher | Measure hiring volume, remote-work share and posting velocity per sector |
| Job-board / aggregator | Seed a Danish jobs dataset with structured, deduplicated listings |
| Data / app builder | Build a geocoded map of open roles from the address coordinates |
| Sales / lead-gen | Find hiring companies with their profile, homepage and follower count |

#### 📥 Supported inputs

- **Search keywords** — e.g. `ingeniør`, `sygeplejerske`, `developer`, `marketing`. Each is searched and paginated.
- **Search-result URLs** — `https://www.jobindex.dk/jobsoegning?...` with any filters you applied on the site (area, category, etc.).
- **Single job URLs** — `https://www.jobindex.dk/vis-job/{id}`. Auto-classified and always fully detailed.

#### ⚙️ How it works

1. **Collect** search-result pages from your keywords / URLs (20 jobs per page, up to 50 pages).
2. **Parse** each job card into a flat row — company, location + coordinates, dates, apply URL, teaser.
3. **Enrich** each job from its detail page (when *Scrape job detail pages* is on): full ad body text.
4. **Export** one row per job to the dataset — JSON, CSV, Excel or API.

#### ⚙️ Input parameters

| Field | Type | Default | What it does |
|---|---|---|---|
| `searchQueries` | array | `["ingeniør"]` | Keyword searches. Each is searched and paginated. |
| `startUrls` | array | `[]` | Jobindex search-result URLs and/or single `/vis-job/{id}` URLs. Auto-classified. |
| `scrapeDetails` | boolean | `false` | Also fetch each job's detail page for the full ad body text (`fullText`). ~2× requests. Pasted job URLs are always fully detailed. |
| `maxItems` | integer | `1000` | Hard cap on rows for the whole run. Each row is one paid `job` event. |
| `maxItemsPerSearch` | integer | `1000` | Cap per keyword / URL. |
| `maxConcurrency` | integer | `6` | Parallel HTTP requests (1–15). |
| `maxRequestRetries` | integer | `12` | Retry budget on 403 / 429 / 5xx; each retry rotates to a fresh Danish residential IP. |
| `proxy` | object | DK Residential | Proxy config (defaults to Apify Residential, country DK). |

#### 📊 Output overview

Each dataset record is **one job listing**. Rows carry the search-card fields (title, company block, location + coordinates, dates, apply URL, teaser, logo, flags) and — when *Scrape job detail pages* is on, or for pasted job URLs — the full ad body text (`fullText`).

#### 📦 Output sample

```json
{
  "rowType": "job",
  "jobId": "h1677520",
  "headline": "Product Developer, Footwear",
  "jobUrl": "https://www.jobindex.dk/vis-job/h1677520",
  "applyUrl": "https://www.jobindex.dk/c?t=e6185324&ctx=w",
  "companyName": "hummel",
  "companyId": 955,
  "companyProfileUrl": "https://www.jobindex.dk/virksomhed/955/hummel#om-virksomhed",
  "companyHomeUrl": "https://www.hummel.dk/",
  "companyFollowers": 1140,
  "area": "Aarhus C",
  "addresses": [
    {
      "line": "Balticagade 20",
      "zipcode": "8000",
      "city": "Aarhus C",
      "simpleString": "Balticagade 20, 8000 Aarhus C",
      "latitude": 56.155226,
      "longitude": 10.221049
    }
  ],
  "latitude": 56.155226,
  "longitude": 10.221049,
  "firstDate": "2026-06-26",
  "lastDate": "2026-07-09",
  "applyDeadline": "2026-07-09T21:59:59Z",
  "applyDeadlineAsap": false,
  "homeWorkplace": false,
  "hasSpo": true,
  "summary": "Do you have a sharp eye for what makes a collection come together? …",
  "sourceUrl": "https://www.jobindex.dk/jobsoegning?q=developer",
  "sourceMode": "search",
  "scrapedAt": "2026-07-06T03:24:12.172Z"
}
````

#### 🗂 Key output fields

| Field | Description |
|---|---|
| `jobId` | Jobindex job id (`tid`), e.g. `h1677520` |
| `headline` | Job title |
| `jobUrl` | Canonical `/vis-job/{id}` URL |
| `applyUrl` | Outbound redirect to the employer's apply flow |
| `companyName` / `companyId` | Employer name and Jobindex company id |
| `companyProfileUrl` / `companyHomeUrl` | Jobindex profile and employer homepage |
| `companyFollowers` | Follower count on the company's Jobindex profile |
| `area` | Primary display area |
| `addresses` | Structured addresses: street, zip, city + `latitude` / `longitude` |
| `latitude` / `longitude` | Coordinates of the first address (convenience) |
| `firstDate` / `lastDate` | First published / drops-off-search dates (YYYY-MM-DD) |
| `applyDeadline` / `applyDeadlineAsap` | ISO deadline, or ASAP flag |
| `homeWorkplace` | Remote / home-working flagged |
| `hasSpo` | Sponsored / promoted placement |
| `summary` | Listing-card teaser text |
| `fullText` | Full job-ad body text (when `scrapeDetails` is on) |

#### ❓ FAQ

**Do I need a Jobindex account or API key?** No. Paste keywords or URLs and run.

**What does *Scrape job detail pages* add?** The search row is already rich (~30 fields including a teaser). Turning it on visits each job's detail page to add the **full ad body text** (`fullText`) — at roughly double the requests. Job URLs you paste are always fully detailed.

**Can I use my own Jobindex filters?** Yes. Apply any filters on jobindex.dk (area, category, contract type), copy the resulting `jobsoegning?...` URL, and paste it into `startUrls`.

**Which locations does it cover?** All of Denmark. Each job carries structured addresses with coordinates where Jobindex provides them.

**What format is the output?** JSON, CSV, Excel or via API — one row per job.

#### 💬 Support

Found a missing field or a page that won't parse? Open an issue on the actor's Issues tab with the input you used — fixes usually ship within a day or two.

#### 🛠 Additional services

Need a custom field, a different Danish job board, or a scheduled feed into your database? Reach out via the Issues tab.

#### 🔎 Explore more scrapers

Browse the full portfolio of job-board and directory scrapers on the [Apify Store](https://apify.com/store).

### ⚠️ Disclaimer

This scraper collects only **publicly available** job-listing data from Jobindex.dk. It does not access private accounts, bypass authentication, or collect personal data beyond what employers publish on public job ads. You are responsible for using the scraped data in compliance with Jobindex's terms, Danish and EU law (including GDPR), and any applicable regulations. Use it for legitimate research, aggregation and analysis.

### SEO Keywords

Jobindex scraper, Jobindex.dk scraper, Denmark jobs scraper, Danish job listings API, scrape Jobindex, job board scraper Denmark, Jobindex jobs data, danish jobs dataset, recruitment data Denmark, hiring trends Denmark, job posting scraper, vis-job scraper, jobsoegning scraper, Apify Jobindex, extract Jobindex jobs, Danish vacancies data.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Jobindex, e.g. `ingeniør`, `sygeplejerske`, `developer`, `marketing`. Each is searched and paginated.

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

Jobindex search-result URLs (`https://www.jobindex.dk/jobsoegning?...` — with any filters you set on the site) and/or single job URLs (`https://www.jobindex.dk/vis-job/{id}`). Auto-classified.

## `scrapeDetails` (type: `boolean`):

For each job found in search, also fetch its detail page to add the full ad body text (`fullText`). Richer rows, but ~2× the requests. Off = the search-card fields (already ~30 per job, including a teaser). Job URLs you paste are always fully detailed.

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

Hard cap on rows across the entire run. Each row is one paid `job` event. Default 1000. Free-tier users are additionally capped at 100.

## `maxItemsPerSearch` (type: `integer`):

Cap per search keyword / URL. Jobindex returns 20 jobs per page, up to 50 pages. Default 1000.

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

Parallel HTTP requests. Default 6.

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

Per-request retry budget on transient 403 / 429 / 5xx and network errors. Each retry rotates to a fresh Danish residential IP. Default 12.

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

Jobindex is a Danish site and is served best over Danish residential IPs. Paid runs use a built-in DK residential pool automatically; this setting applies to free-tier runs (defaults to Apify Residential, country DK).

## Actor input object example

```json
{
  "searchQueries": [
    "ingeniør"
  ],
  "startUrls": [],
  "scrapeDetails": false,
  "maxItems": 1000,
  "maxItemsPerSearch": 1000,
  "maxConcurrency": 6,
  "maxRequestRetries": 12,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DK"
  }
}
```

# 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 = {
    "searchQueries": [
        "ingeniør"
    ],
    "startUrls": [],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "DK"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/jobindex-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 = {
    "searchQueries": ["ingeniør"],
    "startUrls": [],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "DK",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/jobindex-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 '{
  "searchQueries": [
    "ingeniør"
  ],
  "startUrls": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DK"
  }
}' |
apify call memo23/jobindex-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jobindex Scraper - Jobindex.dk Job Listings",
        "description": "Scrape Jobindex.dk job listings by keyword or URL. One row per job: title, company, location + coordinates, publish & deadline dates, apply URL, teaser and optional full ad text. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "iZ3plSIfzqiXeaXSA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~jobindex-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-jobindex-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/memo23~jobindex-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-jobindex-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/memo23~jobindex-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-jobindex-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": {
                    "searchQueries": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Keywords to search on Jobindex, e.g. `ingeniør`, `sygeplejerske`, `developer`, `marketing`. Each is searched and paginated.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Search & job URLs",
                        "type": "array",
                        "description": "Jobindex search-result URLs (`https://www.jobindex.dk/jobsoegning?...` — with any filters you set on the site) and/or single job URLs (`https://www.jobindex.dk/vis-job/{id}`). Auto-classified.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeDetails": {
                        "title": "Scrape job detail pages",
                        "type": "boolean",
                        "description": "For each job found in search, also fetch its detail page to add the full ad body text (`fullText`). Richer rows, but ~2× the requests. Off = the search-card fields (already ~30 per job, including a teaser). Job URLs you paste are always fully detailed.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max results (whole run)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on rows across the entire run. Each row is one paid `job` event. Default 1000. Free-tier users are additionally capped at 100.",
                        "default": 1000
                    },
                    "maxItemsPerSearch": {
                        "title": "Max jobs per search",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Cap per search keyword / URL. Jobindex returns 20 jobs per page, up to 50 pages. Default 1000.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max parallel requests",
                        "minimum": 1,
                        "maximum": 15,
                        "type": "integer",
                        "description": "Parallel HTTP requests. Default 6.",
                        "default": 6
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Per-request retry budget on transient 403 / 429 / 5xx and network errors. Each retry rotates to a fresh Danish residential IP. Default 12.",
                        "default": 12
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Jobindex is a Danish site and is served best over Danish residential IPs. Paid runs use a built-in DK residential pool automatically; this setting applies to free-tier runs (defaults to Apify Residential, country DK).",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "DK"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
