# Goodmoves Jobs Scraper (`maximedupre/goodmoves-jobs-scraper`) Actor

Scrape public Goodmoves job listings from search, browse, location, and direct vacancy URLs. Export titles, employers, salaries, locations, dates, apply links, OSCR charity numbers, organisation websites, and source metadata.

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

## Pricing

$2.60 / 1,000 scraped 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

### 🔎 Scrape Goodmoves charity jobs

Goodmoves Jobs Scraper collects public job listings from [Goodmoves](https://goodmoves.org/) and saves them as structured data you can export, schedule, or pull through the Apify API. Use this Goodmoves jobs scraper to turn Goodmoves search, browse, location, and direct vacancy URLs into job rows with titles, organisations, locations, salaries, dates, descriptions, apply links, OSCR charity numbers, organisation websites, and source metadata.

For a small first run, keep the prefilled Goodmoves URLs and set `Maximum jobs` to `25`. Review the dataset, then replace the examples with the Goodmoves filters you care about.

### ✅ What this Goodmoves jobs scraper does

- Scrapes public Goodmoves listing, search, browse, location, and direct vacancy URLs.
- Saves one dataset row per accepted Goodmoves job posting.
- Extracts job title, organisation, description, salary, workplace type, work hours, employment type, dates, location, apply metadata, source position, and scrape time.
- Can enrich rows with organisation website, website domain, Goodmoves organisation profile URL, and Scottish Charity Register number when Goodmoves exposes them.
- Supports a run-wide job limit so you can test small and scale later.
- Supports scheduled monitoring with `Only new jobs` when you want later runs to save jobs that have not already been delivered by this Actor.
- Works with Apify exports, schedules, webhooks, integrations, and API clients.

This Actor focuses on public Goodmoves job data. It does not log in, submit applications, contact organisations, scrape applicant data, or read private employer dashboards.

### 📦 What data you get

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

- `jobId` and `salesforceId`: Goodmoves job identifiers.
- `jobUrl` and `sourceListingUrl`: vacancy URL and the listing URL that produced it when available.
- `title`: job title.
- `descriptionHtml` and `descriptionText`: job description content.
- `postedDate`, `closingDate`, and `daysUntilClosing`: visible date information when available.
- `companyName`, `companyProfileUrl`, `organisationSlug`, and `organisationSalesforceId`: organisation details from the vacancy.
- `companyWebsite`, `companyDomain`, and `oscrCharityNumber`: optional organisation enrichment.
- `location`: source location text and parsed location values when available.
- `workplaceType`, `employmentType`, `workHours`, `industry`, and `occupationalCategory`: Goodmoves job classification fields.
- `salary`: raw salary text plus parsed numeric range, currency, and period when available.
- `applyType`, `applyUrl`, `applyEmail`, `externalApplyUrl`, and `applyUrlDecoded`: application metadata.
- `position`: listing position and absolute position from the source page.
- `enrichment`: whether organisation enrichment was requested and whether a profile was found.
- `scrapedAt`: scrape timestamp.

### 🧭 Common use cases

- Track Scottish charity-sector hiring by role, location, salary, or organisation.
- Build repeatable Goodmoves exports for recruiting research or labour-market analysis.
- Monitor fundraising, support, policy, care, housing, youth work, and charity leadership vacancies.
- Feed Goodmoves job data into spreadsheets, dashboards, CRMs, alerts, or data warehouses.
- Compare posted salaries, closing dates, workplace types, and organisation details across Goodmoves results.
- Save direct Goodmoves vacancy pages into a consistent dataset for later review.

### 🚀 How to run it

1. Open Goodmoves and set the filters you want.
2. Copy the resulting Goodmoves URL.
3. Paste one or more URLs into `Goodmoves URLs`.
4. Keep `Maximum jobs` at `25` for your first run.
5. Leave `Include organisation details` enabled if you want website, domain, and OSCR charity-number fields.
6. Run the Actor and open the dataset.

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/...`

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

### 🎛️ Input options

- `Goodmoves URLs`: Goodmoves listing, search, browse, location, or direct vacancy URLs. You can mix URL types in one run.
- `Only new jobs`: for scheduled monitoring. The first run builds the saved baseline, and later runs save jobs this Actor has not delivered before.
- `Reset saved jobs`: clears the saved monitoring baseline at the start of the run.
- `Include organisation details`: fetches Goodmoves organisation profiles when available to add website, domain, and OSCR charity number.
- `Maximum jobs`: maximum number of Goodmoves jobs to save across the whole run.

### 🧾 Output example

```json
{
  "type": "job",
  "jobId": "a4sP1000001abcDIAQ",
  "jobUrl": "https://goodmoves.org/vacancy/a4sP1000001abcDIAQ/example-role",
  "sourceListingUrl": "https://goodmoves.org/jobs-in/glasgow",
  "title": "Community Support Worker",
  "companyName": "Example Charity",
  "companyProfileUrl": "https://goodmoves.org/organisation/example-charity",
  "companyWebsite": "https://www.examplecharity.org.uk/",
  "companyDomain": "examplecharity.org.uk",
  "oscrCharityNumber": "SC012345",
  "location": {
    "text": "Glasgow",
    "locality": "Glasgow",
    "region": null,
    "country": "GB"
  },
  "salary": {
    "rawText": "£28,000 - £32,000",
    "min": 28000,
    "max": 32000,
    "currency": "GBP",
    "period": null
  },
  "closingDate": "2026-06-30",
  "applyType": "email",
  "applyEmail": "jobs@examplecharity.org.uk",
  "scrapedAt": "2026-06-05T19:00:00.000Z"
}
````

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each Goodmoves job saved to the dataset. Runs that find no matching jobs do not create paid job items.

### ⚠️ 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.
- `Only new jobs` is Actor-level monitoring state, not a Goodmoves account feature. Use `Reset saved jobs` when you want to rebuild that saved baseline.
- Direct vacancy URLs normally produce one job item each when the page still exposes public job data.
- Recoverable source issues are handled as skipped pages or empty results instead of placeholder dataset rows.

### ❓ FAQ

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

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

#### 🔗 Can I use direct vacancy URLs?

Yes. Add direct Goodmoves vacancy URLs to `Goodmoves URLs`. Each valid direct vacancy URL normally saves one job item.

#### 🔄 Can I monitor new Goodmoves jobs?

Yes. Enable `Only new jobs` and run the Actor on a schedule. The first run builds the baseline for this Actor, and later runs save jobs that were not delivered before.

#### 💷 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 tries to parse numeric min and max values.

### 📝 Changelog

- 0.0: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~goodmoves-jobs-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [CWjobs Scraper ↗](https://apify.com/maximedupre/cwjobs-scraper) - Export public UK tech jobs with employers, salaries, locations, and apply metadata.
- [Freelancer Scraper ↗](https://apify.com/maximedupre/freelancer-scraper) - Export public Freelancer.com projects and freelancer profiles.
- [LinkedIn Company People Scraper ↗](https://apify.com/maximedupre/linkedin-company-people-scraper) - Export visible employees from LinkedIn company People pages.
- [LinkedIn Company Scraper ↗](https://apify.com/maximedupre/linkedin-company-scraper) - Collect public company profile facts for account research.
- [Website Emails Scraper ↗](https://apify.com/maximedupre/website-emails-scraper) - Find public contact emails from websites you already care about.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

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

Add Goodmoves listing, search, browse, or direct vacancy URLs. You can mix URL types in the same run.

## `onlyNewSinceLastRun` (type: `boolean`):

When enabled, the first run builds your baseline. Later runs with the same Actor only save jobs that were not delivered before.

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

Clear the saved job history at the start of this run. Use this after changing targets or when you want to rebuild the baseline.

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

Fetch each organisation profile when available to add website, domain, and Scottish Charity Register number. Disable this when you only need vacancy fields and want a faster run.

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

Maximum number of Goodmoves jobs to save across the whole run. Start small, then raise the limit when the output looks right.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://goodmoves.org/jobs-in/glasgow"
    },
    {
      "url": "https://goodmoves.org/search?keywords=fundraising"
    },
    {
      "url": "https://goodmoves.org/browse/charity-sector"
    }
  ],
  "onlyNewSinceLastRun": false,
  "resetSeenJobs": false,
  "includeOrganisationDetails": true,
  "maxItems": 25
}
```

# Actor output Schema

## `results` (type: `string`):

Open the dataset with Goodmoves job titles, employers, locations, salaries, dates, apply links, organisation details, source URLs, and scrape metadata.

# 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"
        },
        {
            "url": "https://goodmoves.org/search?keywords=fundraising"
        },
        {
            "url": "https://goodmoves.org/browse/charity-sector"
        }
    ],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/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" },
        { "url": "https://goodmoves.org/search?keywords=fundraising" },
        { "url": "https://goodmoves.org/browse/charity-sector" },
    ],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/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"
    },
    {
      "url": "https://goodmoves.org/search?keywords=fundraising"
    },
    {
      "url": "https://goodmoves.org/browse/charity-sector"
    }
  ],
  "maxItems": 25
}' |
apify call maximedupre/goodmoves-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Goodmoves Jobs Scraper",
        "description": "Scrape public Goodmoves job listings from search, browse, location, and direct vacancy URLs. Export titles, employers, salaries, locations, dates, apply links, OSCR charity numbers, organisation websites, and source metadata.",
        "version": "0.0",
        "x-build-id": "hD32PSJUDsNE0ex4K"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~goodmoves-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-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/maximedupre~goodmoves-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-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/maximedupre~goodmoves-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Goodmoves URLs",
                        "minItems": 1,
                        "type": "array",
                        "description": "Add Goodmoves listing, search, browse, or direct vacancy URLs. You can mix URL types in the same run.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "Goodmoves listing, search, browse, or vacancy URL."
                                }
                            }
                        }
                    },
                    "onlyNewSinceLastRun": {
                        "title": "Only new jobs",
                        "type": "boolean",
                        "description": "When enabled, the first run builds your baseline. Later runs with the same Actor only save jobs that were not delivered before.",
                        "default": false
                    },
                    "resetSeenJobs": {
                        "title": "Reset saved jobs",
                        "type": "boolean",
                        "description": "Clear the saved job history at the start of this run. Use this after changing targets or when you want to rebuild the baseline.",
                        "default": false
                    },
                    "includeOrganisationDetails": {
                        "title": "Include organisation details",
                        "type": "boolean",
                        "description": "Fetch each organisation profile when available to add website, domain, and Scottish Charity Register number. Disable this when you only need vacancy fields and want a faster run.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum jobs",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of Goodmoves jobs to save across the whole run. Start small, then raise the limit when the output looks right.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
