# Snicket Jobs Scraper (`memo23/snicket-scraper`) Actor

Scrape snicket.org — Bradford and West Yorkshire community-sector vacancies. RSS + labelled detail-page extraction: title, organisation, salary, hours, closing date, payment schedule, contact name/email/phone, full HTML description. JSON or CSV out, billed per result

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

## Pricing

from $2.00 / 1,000 results

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

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

## Snicket Jobs Scraper

**Scrape Bradford and West Yorkshire community-sector vacancies from snicket.org.** Reads the public RSS feed for fast listing, then enriches each row with detail-page structured fields: organisation, salary, hours, closing date, payment schedule, contact name, contact email, and phone number. JSON or CSV out, no compute charge per run, just per result.

#### How it works

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

#### ✨ Why use this scraper?

Snicket is the community-sector hub for Bradford and West Yorkshire — local charities, faith groups, mental health orgs, family support, domestic abuse services, refugee support. Tracking who's hiring across the region's third sector? Building a Bradford voluntary-sector dashboard?

- 🎯 **Two starting points.** The `/jobs/feed/` RSS feed (default) or any direct `/jobs/<slug>/` URL.
- ⚡ **RSS feed as the primary source.** One HTTP call returns up to 17 items with title, link, pubDate, author, description, and full content HTML.
- 📋 **Detail-page label extraction.** Each job page has a "Job Details" section with inline `Label: value` rows — Hours, Closing Date, Payment Schedule, Job Salary, Contact Name, Contact Email, Phone Number.
- 📧 **Apply contact captured.** Contact email always populated when present — falls back to mailto in "How to Apply" section.
- 💰 **Salary parsed.** `Job Salary: £25,989 - £27,254` → structured `{currency, min, max, raw}`.
- 🇬🇧 **West Yorkshire community focus.** Bradford, Leeds, Calderdale, Kirklees, Wakefield — small charities and large support orgs alike.
- 📤 **Clean exports.** One row per vacancy with merged RSS + detail enrichment. JSON + CSV exported automatically.

#### 🎯 Use cases

| Team | What they build |
|------|-----------------|
| **Voluntary sector recruiters** | Daily new-vacancy feeds for West Yorkshire third-sector jobs |
| **Charity researchers** | Bradford / West Yorkshire community-sector hiring trends |
| **Aggregators** | Real recruiter contact emails for direct applicant outreach |
| **Funders** | Salary intelligence across small West Yorkshire charities |
| **Sector publications** | Auto-populate Bradford voluntary-sector job listings |

#### 📥 Supported inputs

| URL pattern | Behaviour |
|---|---|
| `https://snicket.org/jobs/feed/` | **RSS feed** (default) — up to 17 items |
| `https://snicket.org/jobs/` | **Jobs archive** — routed to the RSS feed |
| `https://snicket.org/jobs/<slug>/` | **Single job** — synthetic stub + detail-page fetch |

Leave `startUrls` empty for the default RSS feed.

**Not supported:** hosts outside `snicket.org`.

#### 🔄 How it works

1. **Bucket each `startUrl`** as RSS feed vs direct detail URL.
2. **Fetch the RSS feed** — title, link, pubDate, author, full content HTML.
3. **For each item**, optionally fetch the `/jobs/<slug>/` detail page.
4. **Parse the "Job Details" section** — labelled `Hours: …`, `Closing Date: …`, `Payment Schedule: …`, `Job Salary: …`, `Contact Name: …`, `Contact Email: …`, `Phone Number: …`.
5. **Find the organisation** — "About <Org>" heading on the detail page.
6. **Push one merged row per vacancy** to the dataset.

#### ⚙️ Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `startUrls` | array | `["https://snicket.org/jobs/feed/"]` | RSS feed or direct job URLs. Empty = default feed. |
| `enrichDetail` | boolean | `true` | When `true`, fetches each detail page for the labelled fields above. Disable for RSS-only output. |
| `postedWithinHours` | integer | (none) | Only return rows posted in the last N hours (24 = last day, 72 = last 3 days). Empty/0 = all. Ideal for daily monitoring runs that only want fresh postings. |
| `maxItems` | integer | `1000` | Hard cap on rows pushed (~17 in the RSS feed at any time). |
| `maxConcurrency` / `minConcurrency` | integer | `5` / `1` | Parallel detail-page fetch limits. |
| `maxRequestRetries` | integer | `5` | Retries before a failed request is given up. |
| `proxy` | object | No proxy | Site does not anti-bot — proxy optional. |

#### 📊 Output overview

Each scraped vacancy is one **single dataset row** of `type: "job"`. RSS-derived fields merged with the detail-page structured "Job Details" block.

#### 📦 Output sample

```json
{
  "type": "job",
  "source": "snicket.org",
  "jobId": "5955",
  "slug": "community-engagement-worker-2",
  "jobUrl": "https://snicket.org/jobs/community-engagement-worker-2/",
  "title": "Community Engagement Worker",
  "description": "<p>Community Engagement Worker for West Bowling Community Advice and Training Centre…</p>",
  "descriptionText": "Community Engagement Worker for West Bowling Community Advice and Training Centre…",
  "companyName": "West Bowling Community Advice and Training Centre",
  "companyWebsite": null,
  "companyDomain": null,
  "location": null,
  "remote": false,
  "salary": {
    "currency": "GBP",
    "min": 25989,
    "max": 27254,
    "raw": "£25,989 - £27,254"
  },
  "salaryRaw": "£25,989 - £27,254",
  "hours": "35 hours per week",
  "closingDate": "26/05/2026",
  "paymentSchedule": "Monthly",
  "contactName": "Wbcatc26",
  "contactEmail": "mohammed.rafiq@wbcentre.org.uk",
  "contactPhone": "01274 733770",
  "categories": [],
  "employmentTypes": [],
  "contractType": null,
  "status": "publish",
  "postedDate": "2026-05-19T15:45:02.000Z",
  "modifiedDate": null,
  "applyType": "email",
  "applyUrl": "https://snicket.org/jobs/community-engagement-worker-2/",
  "applyEmail": "mohammed.rafiq@wbcentre.org.uk",
  "externalApplyUrl": null,
  "authorName": "Snicket",
  "scrapedAt": "2026-05-20T00:13:00.000Z"
}
````

#### 🗂 Key output fields

| Group | Fields |
|---|---|
| **Identifiers** | `type`, `source`, `jobId`, `slug`, `jobUrl`, `scrapedAt` |
| **Content** | `title`, `description` (HTML, from RSS), `descriptionText` (plain) |
| **Dates** | `postedDate` (from RSS pubDate), `closingDate` (from Job Details), `modifiedDate` |
| **Employer** | `companyName` (from "About <Org>" heading) |
| **Compensation** | `salary.{currency, min, max, raw}`, `salaryRaw`, `paymentSchedule` (Monthly / Weekly / etc.) |
| **Working pattern** | `hours` (e.g. "35 hours per week") |
| **Apply flow** | `applyType`, `applyUrl`, `applyEmail`, `externalApplyUrl` |
| **Contact** | `contactName`, `contactEmail`, `contactPhone` |
| **WordPress meta** | `authorName` (RSS `dc:creator`) |

#### ❓ FAQ

**Why is `location` sometimes null?**
Snicket doesn't enforce a "Location" field in their post template. When present we extract it from a dedicated heading; otherwise null.

**Why does `contactEmail` sometimes have trailing junk (e.g. "Interview Date" appended)?**
The labelled-extraction regex can over-match when the post uses a non-standard label after the email. This is rare but the email is always at the start — split on the first whitespace if needed.

**Can I get the full HTML description?**
Yes — see `description`. The plain-text version (`descriptionText`) drops markup but keeps line breaks.

**Can I scrape private pages or applicant data?**
No. Only the public RSS feed and public `/jobs/<slug>/` pages.

**How do I limit results?**
Set `maxItems`. Disable `enrichDetail` to skip per-job HTTP calls (17 jobs in 1 fetch).

#### 💬 Support

- For issues or feature requests, please use the **Issues** tab on the actor's Apify Console page.
- Author's website: <https://muhamed-didovic.github.io/>
- Email: <muhamed.didovic@gmail.com>

#### 🛠 Additional services

- Custom output shape, additional fields, or one-off datasets: <muhamed.didovic@gmail.com>
- Similar scrapers for other CVS / volunteer hubs (Doing Good Leeds, VA Rotherham, VAS Sheffield, Barnsley CVS): drop an email.
- For API access (no Apify fee, just usage): <muhamed.didovic@gmail.com>

#### 🔎 Explore more scrapers

See other scrapers at [memo23's Apify profile](https://apify.com/memo23) — covering job boards, real estate, social media, and more.

***

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Snicket, snicket.org, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only the publicly available RSS feed and public job pages on snicket.org — no authenticated endpoints, recruiter-only features, or content behind a login. Users are responsible for ensuring their use complies with snicket.org's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.

***

### SEO Keywords

snicket scraper, scrape snicket.org, snicket jobs api, bradford voluntary sector jobs scraper, bradford charity jobs scraper, west yorkshire community sector jobs api, Apify snicket, west yorkshire charity recruitment data, bradford third sector jobs api, bradford community jobs scraper, rss feed scraper, west yorkshire nonprofit jobs, leeds bradford charity hiring data, wakefield charity jobs api, kirklees charity jobs scraper, charityjob alternative scraper, doing good leeds alternative scraper, vassheffield alternative scraper, barnsleycvs alternative scraper, uk cvs jobs scraper

# Actor input Schema

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

Supported shapes: `https://snicket.org/jobs/feed/`, `https://snicket.org/jobs/`, `https://snicket.org/jobs/<slug>/`. Leave empty for the full feed.

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

When enabled, each job triggers one extra HTTP call to the /jobs/<slug>/ page to extract organisation name, salary, location, job type and role type from the `.job-header` block and body classes. Disable for RSS-only output.

## `postedWithinHours` (type: `integer`):

Filters on each row's posted date. Set 24 for the last day, 72 for the last 3 days, etc. Leave empty (or 0) to return everything regardless of age. Rows whose source has no posted date are always kept.

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

Hard cap on rows pushed. The Snicket RSS returns the 10 most recent jobs per request.

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

Maximum detail-page fetches in parallel.

## `minConcurrency` (type: `integer`):

Minimum detail-page fetches in parallel.

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

Number of retries before a failed request is given up.

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

snicket.org does not anti-bot — proxy is optional. Defaults to no proxy.

## Actor input object example

```json
{
  "startUrls": [
    "https://snicket.org/jobs/feed/"
  ],
  "enrichDetail": true,
  "postedWithinHours": 24,
  "maxItems": 1000,
  "maxConcurrency": 5,
  "minConcurrency": 1,
  "maxRequestRetries": 5,
  "proxy": {
    "useApifyProxy": 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 = {
    "startUrls": [
        "https://snicket.org/jobs/feed/"
    ],
    "postedWithinHours": 24,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/snicket-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": ["https://snicket.org/jobs/feed/"],
    "postedWithinHours": 24,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/snicket-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://snicket.org/jobs/feed/"
  ],
  "postedWithinHours": 24,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call memo23/snicket-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Snicket Jobs Scraper",
        "description": "Scrape snicket.org — Bradford and West Yorkshire community-sector vacancies. RSS + labelled detail-page extraction: title, organisation, salary, hours, closing date, payment schedule, contact name/email/phone, full HTML description. JSON or CSV out, billed per result",
        "version": "0.0",
        "x-build-id": "cabaTqJ1E4zo9JlxT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~snicket-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-snicket-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~snicket-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-snicket-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~snicket-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-snicket-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": {
                    "startUrls": {
                        "title": "snicket.org URLs",
                        "type": "array",
                        "description": "Supported shapes: `https://snicket.org/jobs/feed/`, `https://snicket.org/jobs/`, `https://snicket.org/jobs/<slug>/`. Leave empty for the full feed.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "enrichDetail": {
                        "title": "Fetch each detail page for structured fields (recommended)",
                        "type": "boolean",
                        "description": "When enabled, each job triggers one extra HTTP call to the /jobs/<slug>/ page to extract organisation name, salary, location, job type and role type from the `.job-header` block and body classes. Disable for RSS-only output.",
                        "default": true
                    },
                    "postedWithinHours": {
                        "title": "Only rows posted in the last N hours",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filters on each row's posted date. Set 24 for the last day, 72 for the last 3 days, etc. Leave empty (or 0) to return everything regardless of age. Rows whose source has no posted date are always kept."
                    },
                    "maxItems": {
                        "title": "Maximum jobs to scrape",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Hard cap on rows pushed. The Snicket RSS returns the 10 most recent jobs per request.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum detail-page fetches in parallel.",
                        "default": 5
                    },
                    "minConcurrency": {
                        "title": "Min concurrency",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Minimum detail-page fetches in parallel.",
                        "default": 1
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of retries before a failed request is given up.",
                        "default": 5
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "snicket.org does not anti-bot — proxy is optional. Defaults to no proxy.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
