# Salesforce AppExchange Scraper (`khadinakbar/salesforce-appexchange-scraper`) Actor

Scrape Salesforce AppExchange app listings — name, publisher firmographics (website, email, country, size), pricing plans, edition matrix, supported languages, ratings & reviews. HTTP-only via the public listings API. MCP-ready.

- **URL**: https://apify.com/khadinakbar/salesforce-appexchange-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Lead generation, Developer tools, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 listing scrapeds

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Salesforce AppExchange Scraper

Scrape **Salesforce AppExchange** app listings into clean, structured JSON — publisher firmographics, pricing plans, the Salesforce edition matrix, supported languages, ratings and reviews — straight from AppExchange's own public listings API. **HTTP-only, no login, no cookies, MCP-ready.**

### What you get

Give the actor a listing URL/ID, or let it browse the catalog, and every listing comes back as one flat record:

| Field | Example |
|---|---|
| `name` | `BenefitsGuide: Business Listings` |
| `tagline` / `description` / `fullDescription` | short blurb + full marketing copy |
| `averageRating` / `reviewCount` | `5` / `1` |
| `startingPrice` / `startingPriceFrequency` / `startingPriceUnit` | `20` / `monthly` / `user` |
| `pricingPlans[]` | every plan with price, currency, frequency, unit, trial days |
| `editions[]` | `Professional, Enterprise, Unlimited, Developer …` |
| `languages[]` | `en, fr, de …` |
| `appType` / `technology` | `Package/Platform/Data` / `force/package` |
| `isLightningReady` / `isSalesforceShield` / `isFedrampCertified` | `true` / `true` / `false` |
| `publisherName` / `publisherWebsite` / `publisherEmail` | partner lead data |
| `publisherCountry` / `publisherLocation` / `publisherEmployees` / `publisherYearFounded` | firmographics |
| `salesEmail` / `salesPhone` | direct sales contact |
| `screenshots[]` | listing media URLs |
| `listingUrl` / `listingId` / `publishedDate` / `scrapedAt` | provenance |

### When to use it

- **ISV / partner competitive intelligence** — track competitor apps, pricing, editions, and review velocity on AppExchange.
- **B2B lead generation** — every listing is an enrichable software vendor with website, email, country, size and sales contact.
- **Market research** — pull whole catalog slices by listing type and analyze pricing models, edition coverage, or language support.
- **AI agents (MCP)** — paste an AppExchange URL, get back structured JSON in one tool call.

**Not** for scraping individual AppExchange *reviews* text, install counts, or logged-in partner-console data — this actor returns public listing + publisher metadata.

### Price

Pay-per-event. **$0.005 per listing scraped** + a negligible $0.00005 start fee. A 50-listing run costs about **$0.25**. Pay-Per-Usage (compute + proxy) is also available for very large jobs.

---

### Input

Two ways to drive it:

#### 1. Direct — scrape specific listings

```json
{
  "listingUrls": [
    "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ",
    "a0N3A00000FMkeoUAD"
  ],
  "maxResults": 50
}
````

Paste full `appxListingDetail` URLs **or** raw `a0N...` listing ids. Batch as many as you like.

#### 2. Browse — enumerate the catalog

```json
{
  "listingType": "App",
  "keyword": "marketing",
  "maxResults": 100,
  "maxScan": 600
}
```

The actor enumerates AppExchange's public sitemap (~4,200 App listings) and returns the first `maxResults`. Add a `keyword` to keep only listings whose name, tagline, description, publisher or categories contain that substring (`maxScan` caps how many listings are inspected while searching for matches).

| Input | Type | Default | Notes |
|---|---|---|---|
| `listingUrls` | string\[] | – | URLs or raw `a0N...` ids. When set, browse settings are ignored. |
| `listingType` | enum | `App` | `App` or `Consulting` (browse mode). |
| `keyword` | string | – | Case-insensitive substring filter (browse mode). |
| `maxResults` | integer | `50` | Max listings returned + billed (1–5000). |
| `maxScan` | integer | `400` | Listings inspected per keyword search (browse + keyword only). |
| `proxyConfiguration` | proxy | Apify datacenter (US) | Residential only needed if blocked. |

> **Keyword note:** the filter is a literal substring match over scraped fields, **not** Salesforce's relevance-ranked search engine. For exact, known apps use `listingUrls`.

### Output

One record per listing (see the table at the top). Example:

```json
{
  "listingId": "a0N4V00000FguFBUAZ",
  "name": "BenefitsGuide: Business Listings",
  "averageRating": 5,
  "reviewCount": 1,
  "isPaid": true,
  "startingPrice": 20,
  "startingPriceCurrency": "USD",
  "startingPriceFrequency": "monthly",
  "startingPriceUnit": "user",
  "editions": ["Professional", "Enterprise", "Unlimited", "Force.com", "Developer", "Performance"],
  "languages": ["en"],
  "appType": "Package/Platform/Data",
  "isLightningReady": true,
  "publisherName": "BenefitsGuide",
  "publisherWebsite": "http://www.benefitsguide.com",
  "publisherEmail": "jason@benefitsguide.com",
  "publisherCountry": "US",
  "publisherEmployees": 8,
  "listingUrl": "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ",
  "scrapedAt": "2026-06-21T00:00:00.000Z"
}
```

### How it works

AppExchange is a Salesforce Lightning app, but each listing's data is served by a **public JSON endpoint** the site itself calls — no authentication, no CAPTCHA. This actor calls that endpoint directly with Apify's datacenter proxy and session rotation, so it is fast and reliable. The only obstacle is light per-IP rate limiting, which session rotation + retries clear automatically.

### Use via API / MCP

```bash
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~salesforce-appexchange-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "listingUrls": ["a0N4V00000FguFBUAZ"], "maxResults": 1 }'
```

Add it to any MCP-capable agent via `https://mcp.apify.com` and it appears as `apify--salesforce-appexchange-scraper`.

### FAQ

**Does it need a Salesforce login or cookies?** No. All data comes from public endpoints.

**Can it scrape consulting partners?** Yes — set `listingType` to `Consulting` in browse mode. App listings have the richest data (full pricing, editions, firmographics).

**Why isn't there a true keyword search?** AppExchange's relevance search runs through a private search backend. This actor offers a transparent substring filter over real scraped data instead — for exact apps, pass their URLs/ids directly.

**How current is the data?** Live — every run hits AppExchange in real time.

### Legal

This actor collects only publicly available information from Salesforce AppExchange. You are responsible for using the data in compliance with Salesforce's Terms of Service, applicable laws (including GDPR/CCPA for any personal data such as publisher contact emails), and the intended business purpose. Do not use scraped contact data for unsolicited bulk messaging where prohibited. Salesforce and AppExchange are trademarks of Salesforce, Inc.; this actor is independent and not affiliated with or endorsed by Salesforce.

# Actor input Schema

## `listingUrls` (type: `array`):

Specific AppExchange listings to scrape. Paste full detail URLs (e.g. 'https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ') or just the raw listing id ('a0N4V00000FguFBUAZ'). When this list is non-empty the actor scrapes exactly these and ignores browse settings below. Leave empty to browse the catalog by type instead.

## `listingType` (type: `string`):

Which AppExchange catalog to enumerate when no Listing URLs are given. 'App' = solutions/apps under appxListingDetail (the main catalog, ~4,200 listings, richest data). 'Consulting' = partner consultants. Defaults to 'App'. Ignored when Listing URLs are provided.

## `keyword` (type: `string`):

Optional case-insensitive substring filter applied to each browsed listing's name, tagline, description, publisher and categories. Example: 'marketing'. This is a literal substring match over scraped data, NOT Salesforce's relevance-ranked search. Leave empty to return listings in catalog order.

## `maxResults` (type: `integer`):

Maximum number of listings to return and bill for (one 'listing-scraped' charge each). Applies to both direct and browse modes. Defaults to 50; allowed range 1–5000. In keyword mode the actor stops as soon as this many matches are found.

## `maxScan` (type: `integer`):

Only used in browse mode WITH a keyword: how many catalog listings to fetch and inspect while looking for matches. Higher values find more matches but cost more compute. Defaults to 400; allowed range up to 5000. Ignored when no keyword is set or when Listing URLs are provided.

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

Proxy settings. The default Apify datacenter (US) proxy is sufficient — AppExchange has no CAPTCHA, only light per-IP rate limiting that session rotation clears. Only switch to RESIDENTIAL if you see repeated blocking. Leave as default for best speed and cost.

## Actor input object example

```json
{
  "listingUrls": [
    "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ"
  ],
  "listingType": "App",
  "keyword": "marketing",
  "maxResults": 50,
  "maxScan": 400,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

Every AppExchange listing scraped in this run.

## `summary` (type: `string`):

Counts and billed amount for this run.

# 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 = {
    "listingUrls": [
        "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/salesforce-appexchange-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 = {
    "listingUrls": ["https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/salesforce-appexchange-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 '{
  "listingUrls": [
    "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call khadinakbar/salesforce-appexchange-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Salesforce AppExchange Scraper",
        "description": "Scrape Salesforce AppExchange app listings — name, publisher firmographics (website, email, country, size), pricing plans, edition matrix, supported languages, ratings & reviews. HTTP-only via the public listings API. MCP-ready.",
        "version": "1.1",
        "x-build-id": "Pp2YKwHnZliUnvIo1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~salesforce-appexchange-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-salesforce-appexchange-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/khadinakbar~salesforce-appexchange-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-salesforce-appexchange-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/khadinakbar~salesforce-appexchange-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-salesforce-appexchange-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": {
                    "listingUrls": {
                        "title": "Listing URLs or IDs",
                        "type": "array",
                        "description": "Specific AppExchange listings to scrape. Paste full detail URLs (e.g. 'https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ') or just the raw listing id ('a0N4V00000FguFBUAZ'). When this list is non-empty the actor scrapes exactly these and ignores browse settings below. Leave empty to browse the catalog by type instead.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "listingType": {
                        "title": "Listing type (browse mode)",
                        "enum": [
                            "App",
                            "Consulting"
                        ],
                        "type": "string",
                        "description": "Which AppExchange catalog to enumerate when no Listing URLs are given. 'App' = solutions/apps under appxListingDetail (the main catalog, ~4,200 listings, richest data). 'Consulting' = partner consultants. Defaults to 'App'. Ignored when Listing URLs are provided.",
                        "default": "App"
                    },
                    "keyword": {
                        "title": "Keyword filter (browse mode)",
                        "type": "string",
                        "description": "Optional case-insensitive substring filter applied to each browsed listing's name, tagline, description, publisher and categories. Example: 'marketing'. This is a literal substring match over scraped data, NOT Salesforce's relevance-ranked search. Leave empty to return listings in catalog order."
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of listings to return and bill for (one 'listing-scraped' charge each). Applies to both direct and browse modes. Defaults to 50; allowed range 1–5000. In keyword mode the actor stops as soon as this many matches are found.",
                        "default": 50
                    },
                    "maxScan": {
                        "title": "Max listings to scan (keyword mode)",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Only used in browse mode WITH a keyword: how many catalog listings to fetch and inspect while looking for matches. Higher values find more matches but cost more compute. Defaults to 400; allowed range up to 5000. Ignored when no keyword is set or when Listing URLs are provided.",
                        "default": 400
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. The default Apify datacenter (US) proxy is sufficient — AppExchange has no CAPTCHA, only light per-IP rate limiting that session rotation clears. Only switch to RESIDENTIAL if you see repeated blocking. Leave as default for best speed and cost.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
