# Goodmoves Jobs Scraper: Charity Sector Jobs (`devanshlive/goodmoves-jobs-scraper`) Actor

Pull public Goodmoves job listings from any listing, search, browse, or direct vacancy URL. Export titles, employers, salaries, locations, dates, apply links, OSCR charity numbers, organisation websites, and source metadata. Free tier available.

- **URL**: https://apify.com/devanshlive/goodmoves-jobs-scraper.md
- **Developed by:** [Devansh Tiwari](https://apify.com/devanshlive) (community)
- **Categories:** Jobs, Social media, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 jobs

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

### What does Goodmoves Jobs Scraper do?

**Goodmoves jobs scraper and charity sector job data extraction API for Scottish nonprofits.** Extract titles, employers, salaries, locations, apply links, OSCR charity numbers, organisation websites, and source metadata from Goodmoves.org with this Apify Actor. Free tier included.

Goodmoves is Scotland's largest charity and voluntary sector recruitment platform, run by SCVO (Scottish Council for Voluntary Organisations). It advertises 300+ live vacancies across hundreds of nonprofit organisations. This Actor turns that data into clean structured JSON ready for spreadsheets, CRMs, dashboards, or AI training pipelines.

Built for social researchers, recruitment teams, and AI developers who need Scottish charity sector job data with apply metadata and organisation enrichment.

### Why use Goodmoves Jobs Scraper?

- **Dual output** - Post details + apply metadata (email, URL, or PDF) + optional organisation enrichment in one Actor
- **JSON-LD backed accuracy** - Title, salary, location, dates, employment type, full description, and organisation address all parsed from the page's `application/ld+json` block, the same data Google reads
- **Real organisation details** - Each row includes company website, domain, and Scottish Charity Register (OSCR) number when Goodmoves exposes them
- **Apply metadata captured** - The "Application notes" section yields the recruiter's email or outbound application URL, no resolver step needed
- **No anti-bot, no auth** - A Goodmoves listing returns every match in one HTTP call. All 300+ vacancies typically scrape in under a minute
- **Clean exports** - One row per vacancy. JSON, CSV, Excel, RSS, or HTML exported automatically
- **Lower price** - $1.99 per 1,000 jobs vs $2.60 on the main competitor

### How to use Goodmoves Jobs Scraper

1. Open the Input tab in Apify Console
2. Set **Discovery mode** to `Sitemap` to fetch all live vacancies (default), or `Listing` to use your own start URLs
3. Optionally add Goodmoves URLs (listing, search, browse, or direct vacancy)
4. Set **Maximum jobs** (default 100, max 5000)
5. Enable **Include organisation details** to enrich rows with website + OSCR charity number
6. Click **Start** and open the dataset when complete

Supported URL types include:

- `https://goodmoves.org/jobs-in/glasgow`
- `https://goodmoves.org/search?keywords=fundraising`
- `https://goodmoves.org/browse/charity-sector`
- `https://goodmoves.org/vacancy/{salesforce-id}/{slug}`

You do not need Goodmoves cookies, a Goodmoves account, or a separate Goodmoves API key.

### Input

| Field | Type | Description | Default |
|---|---|---|---|
| `startUrls` | array | Goodmoves listing, search, browse, location, organisation, or direct vacancy URLs | `[]` |
| `discoveryMode` | string | `sitemap`, `listing`, or `none` | `sitemap` |
| `onlyNewJobs` | boolean | First run builds baseline; later runs save only new jobs | `false` |
| `resetSeenJobs` | boolean | Clear saved monitoring baseline at start of run | `false` |
| `includeOrganisationDetails` | boolean | Fetch each organisation profile once for website, domain, OSCR | `true` |
| `maxItems` | integer | Hard cap on jobs (1-5000) | `100` |
| `proxyConfiguration` | object | Optional proxy settings | `{useApifyProxy: false}` |

### Output

Each dataset item is one Goodmoves job. Fields can be empty when Goodmoves does not expose that value for a specific vacancy.

```json
{
  "type": "job",
  "jobId": "a4sp1000001gpvniay",
  "jobUrl": "https://goodmoves.org/vacancy/a4sp1000001gpvniay/supporter-care-executive",
  "sourceListingUrl": "https://goodmoves.org/jobs-in/glasgow",
  "title": "Supporter Care Executive",
  "companyName": "Glasgow Children's Hospital Charity",
  "companyLogoUrl": "https://storage.googleapis.com/.../gchc-logo.png",
  "companyWebsite": "https://www.gchc.scot",
  "companyDomain": "gchc.scot",
  "oscrCharityNumber": "SC039119",
  "location": {
    "streetAddress": "Paisley Northwest",
    "locality": "Paisley and Renfrewshire North",
    "region": "Renfrewshire",
    "country": "Scotland",
    "postalCode": "PA3 2RB",
    "text": "Paisley Northwest, Paisley and Renfrewshire North, PA3 2RB"
  },
  "salary": {
    "rawText": "£26000 - £29000",
    "min": 26000,
    "max": 29000,
    "currency": "GBP",
    "period": "YEAR"
  },
  "postedDate": "2026-05-28T14:24:00",
  "closingDate": "2026-06-14T22:59:00",
  "daysUntilClosing": 8,
  "employmentType": "Full time or Part time",
  "industry": ["Children & Early Years", "Health"],
  "occupationalCategory": ["Administration"],
  "workplaceType": "On site",
  "workHours": "35 hours per week. Part-time hours will be discussed at interview stage",
  "applyType": "email",
  "applyEmail": "melissa.sutherland@gchc.scot",
  "applyUrl": null,
  "externalApplyUrl": null,
  "scrapedAt": "2026-06-06T10:00:00.000Z"
}
````

### Data fields

| Field | Description |
|---|---|
| `type` | Always `"job"` |
| `jobId` | 15-char Salesforce job identifier (lowercase) |
| `jobId18Char` | 18-char mixed-case Salesforce identifier from JSON-LD |
| `jobUrl` | Direct vacancy URL |
| `sourceListingUrl` | Listing URL that produced this job |
| `title` | Job title |
| `descriptionHtml` / `descriptionText` | Full job description |
| `postedDate` / `closingDate` | ISO timestamps |
| `daysUntilClosing` | Computed from closing date |
| `companyName` | Organisation name |
| `companyLogoUrl` | Organisation logo URL |
| `companyProfileUrl` | Goodmoves organisation profile URL |
| `companyWebsite` / `companyDomain` | Organisation website (enrichment) |
| `oscrCharityNumber` | Scottish Charity Register number (enrichment) |
| `location` | Object with street, locality, region, country, postcode |
| `salary` | Raw text + parsed min/max + currency + period |
| `applyType` | `email`, `url`, `pdf`, or `none` |
| `applyEmail` | Application email from mailto link |
| `applyUrl` / `externalApplyUrl` | Application URL (internal or external) |
| `enrichment` | Metadata about organisation enrichment state |
| `scrapedAt` | ISO timestamp of scrape |

### Pricing

**$1.99 per 1,000 scraped jobs.** Runs that find no matching jobs do not create paid items. A typical run of 100 jobs completes in 1 to 2 minutes.

### Tips

- For monitoring new listings over time, enable `onlyNewJobs` and run on a schedule
- Set `discoveryMode: sitemap` to scrape the full job board in one run
- For targeted extraction (e.g., only Glasgow), use `discoveryMode: listing` with `/jobs-in/glasgow` as the start URL
- Disable `includeOrganisationDetails` to skip the org enrichment pass and speed up large runs

### FAQ

#### Can I scrape Goodmoves without a login?

Yes. Goodmoves jobs are public pages. This Actor works with public data and does not ask for cookies, passwords, or API keys.

#### Can I use direct vacancy URLs?

Yes. Add direct Goodmoves vacancy URLs to `startUrls` and set `discoveryMode: none`. Each valid direct vacancy URL saves one job item.

#### Can I monitor new Goodmoves jobs?

Yes. Enable `onlyNewJobs` and run the Actor on a schedule. The first run builds the baseline; later runs save only jobs not delivered before. Use `Reset seen jobs` to rebuild the baseline.

#### Why is a salary field empty?

Some Goodmoves postings do not show salary details. When salary text is visible, the Actor saves the raw text and parses numeric min and max values.

#### What is the OSCR charity number?

OSCR is the Office of the Scottish Charity Regulator. Each registered charity has a unique number (format `SC######`). This Actor extracts it from the organisation's Goodmoves profile page.

### Limits and caveats

- Goodmoves can omit fields such as salary, work hours, workplace type, apply email, or organisation details on some vacancies
- Organisation enrichment depends on public Goodmoves organisation profiles. If a profile is missing or incomplete, organisation fields can stay empty
- `onlyNewJobs` is Actor-level monitoring state, not a Goodmoves account feature
- Direct vacancy URLs normally produce one job item each when the page still exposes public job data

### Support

For issues, questions, or feature requests, file a ticket in the [Apify Console](https://console.apify.com/actors/devanshlive~goodmoves-jobs-scraper/issues).

# Actor input Schema

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

Goodmoves listing, search, browse, location, organisation, or direct vacancy URLs. If empty, uses sitemap to discover all vacancies.

## `discoveryMode` (type: `string`):

How to discover vacancy URLs. 'sitemap' fetches all live vacancies from the sitemap (recommended). 'listing' treats startUrls as listing pages and extracts vacancy links. 'none' treats startUrls as direct vacancy URLs only.

## `onlyNewJobs` (type: `boolean`):

When enabled, first run builds a baseline of job IDs; later runs only save jobs not delivered before. Requires 'discoveryMode: sitemap' or 'listing'.

## `resetSeenJobs` (type: `boolean`):

Clear the saved monitoring baseline at the start of this run. Use after changing targets or rebuilding the baseline.

## `includeOrganisationDetails` (type: `boolean`):

Fetch each unique organisation profile once to add website, domain, and OSCR charity number. Disable for faster runs.

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

Hard cap on jobs collected across the whole run (1-5000).

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

Proxy settings. Goodmoves has no anti-bot, so this is optional. Enable only if you hit rate limits.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://goodmoves.org/jobs-in/glasgow"
    }
  ],
  "discoveryMode": "sitemap",
  "onlyNewJobs": false,
  "resetSeenJobs": false,
  "includeOrganisationDetails": true,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `csv` (type: `string`):

No description

## `json` (type: `string`):

No description

# 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": [
        {
            "url": "https://goodmoves.org/jobs-in/glasgow"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("devanshlive/goodmoves-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 = { "startUrls": [{ "url": "https://goodmoves.org/jobs-in/glasgow" }] }

# Run the Actor and wait for it to finish
run = client.actor("devanshlive/goodmoves-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 '{
  "startUrls": [
    {
      "url": "https://goodmoves.org/jobs-in/glasgow"
    }
  ]
}' |
apify call devanshlive/goodmoves-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Goodmoves Jobs Scraper: Charity Sector Jobs",
        "description": "Pull public Goodmoves job listings from any listing, search, browse, or direct vacancy URL. Export titles, employers, salaries, locations, dates, apply links, OSCR charity numbers, organisation websites, and source metadata. Free tier available.",
        "version": "0.1",
        "x-build-id": "d0IQWRUaO19c5M98W"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/devanshlive~goodmoves-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-devanshlive-goodmoves-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/devanshlive~goodmoves-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-devanshlive-goodmoves-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/devanshlive~goodmoves-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-devanshlive-goodmoves-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": [
                    "discoveryMode"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Goodmoves URLs",
                        "type": "array",
                        "description": "Goodmoves listing, search, browse, location, organisation, or direct vacancy URLs. If empty, uses sitemap to discover all vacancies.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "discoveryMode": {
                        "title": "URL discovery mode",
                        "enum": [
                            "sitemap",
                            "listing",
                            "none"
                        ],
                        "type": "string",
                        "description": "How to discover vacancy URLs. 'sitemap' fetches all live vacancies from the sitemap (recommended). 'listing' treats startUrls as listing pages and extracts vacancy links. 'none' treats startUrls as direct vacancy URLs only.",
                        "default": "sitemap"
                    },
                    "onlyNewJobs": {
                        "title": "Only new jobs",
                        "type": "boolean",
                        "description": "When enabled, first run builds a baseline of job IDs; later runs only save jobs not delivered before. Requires 'discoveryMode: sitemap' or 'listing'.",
                        "default": false
                    },
                    "resetSeenJobs": {
                        "title": "Reset seen jobs",
                        "type": "boolean",
                        "description": "Clear the saved monitoring baseline at the start of this run. Use after changing targets or rebuilding the baseline.",
                        "default": false
                    },
                    "includeOrganisationDetails": {
                        "title": "Include organisation details",
                        "type": "boolean",
                        "description": "Fetch each unique organisation profile once to add website, domain, and OSCR charity number. Disable for faster runs.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum jobs",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on jobs collected across the whole run (1-5000).",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Goodmoves has no anti-bot, so this is optional. Enable only if you hit rate limits.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
