# Turkish Discount Market Scraper - A101, BİM, ŞOK Deals (`caulleonard/tr-aktuel-scraper`) Actor

Scrape weekly promotional catalogs (aktuel) from Turkey's three largest discount grocery chains in one run. Unified schema, historical BIM archive, no personal data.

- **URL**: https://apify.com/caulleonard/tr-aktuel-scraper.md
- **Developed by:** [Fatih Şahinbaş](https://apify.com/caulleonard) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$4.00 / 1,000 product-scrapeds

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Turkish Discount Market Scraper — A101, BİM, ŞOK Aktüel Deals

Scrape the **weekly promotional catalogs ("aktüel" campaigns)** of Turkey's three
largest hard-discount grocery chains — **A101**, **BİM** and **ŞOK** — in a single
run, into a single unified dataset.

These catalogs drive a huge share of Turkish household spending and rotate every
week. Until now there was no self-serve way to collect them. This Actor gives you
one clean schema across all three chains, so you can compare them directly instead
of stitching three different site structures together.

### What you get

| Field | Description |
|---|---|
| `chain` | `A101`, `BIM` or `SOK` |
| `campaign` | Campaign or catalog date, e.g. `Aldın Aldın`, `25-31 Temmuz`, `Haftanın Fırsatları` |
| `productId` | Stable identifier within the chain |
| `brand` | Manufacturer brand where the chain publishes it |
| `name` | Product name |
| `price` | Current selling price as a number (TRY) |
| `originalPrice` | Struck-through price — `null` when there is no markdown |
| `discountRate` | Discount percentage |
| `currency` | Always `TRY` |
| `inStock` | Stock flag where the chain exposes it |
| `unit` | Weight, volume or pack size (e.g. `500 g`) |
| `url` | Product page URL |
| `image` | Product image URL |
| `categoryPath` | Category breadcrumb where available |
| `promotions` | Promotion badges, e.g. multi-buy offers |
| `features` | Bullet-point specs (BİM non-food items) |
| `scrapedAt` | UTC timestamp of the run |

Prices are parsed into real numbers, not strings. Turkish decimal formatting
(`34.750,00`) and split price markup are handled, and a struck-through price that
is not actually higher than the selling price is discarded rather than saved as a
fake discount.

The dataset ships with two views: **Aktuel products** (everything) and
**Discounted only** (rows that carry a real markdown).

### Why this Actor

**Three chains, one schema.** A101 serves JSON inside its page payload, BİM serves
classic server-rendered HTML with prices split across separate elements, ŞOK serves
a Next.js storefront. All three are normalised into identical rows.

**BİM historical archive.** BİM keeps a separate catalog per promotion date, newest
first. Raise `bimMaxDates` and the Actor walks those dated catalogs, so you can
build a price history instead of only capturing this week.

**ŞOK campaign IDs are auto-discovered and ranked.** ŞOK rotates its collection IDs
every week. Rather than hardcoding a URL that breaks every Monday, the Actor reads
the homepage, then ranks what it finds so weekly-deal and campaign pages are
scraped before brand showcases.

**Fair quotas.** When you cap the run with `maxItems`, every selected chain and
every campaign page gets a reserved share. A small fast-loading brand page cannot
consume the budget and leave the weekly deals empty.

**Failure isolation.** Each chain is scraped independently. If one site changes its
layout, the others still return data.

**No personal data.** Only product catalog information is collected — no seller
names, no reviewer profiles, no contact details.

### Use cases

- FMCG and CPG price intelligence in the Turkish market
- Retail media and news coverage of weekly discount catalogs
- Brand monitoring: where and at what price your SKUs appear
- Building a longitudinal Turkish grocery price index
- Feeding LLM, BI or dashboard pipelines with structured retail pricing data

### Input

```json
{
  "chains": ["A101", "BIM", "SOK"],
  "a101Campaigns": ["aldin-aldin"],
  "bimMaxDates": 2,
  "sokAutoDiscover": true,
  "sokMaxCollections": 4,
  "sokMaxPages": 3,
  "maxItems": 300,
  "onlyDiscounted": false
}
````

| Input | Meaning |
|---|---|
| `chains` | Which chains to include |
| `a101Campaigns` | A101 campaign slugs. `aldin-aldin` = weekly deals, `ekstra` = marketplace catalog, `kapida` = grocery delivery |
| `bimMaxDates` | How many dated BİM catalogs to pull beyond the current one, newest first. `0` = current only |
| `sokAutoDiscover` | Follow live ŞOK collection links from the homepage |
| `sokUrls` | Explicit ŞOK collection URLs, if you prefer to pin them |
| `sokMaxCollections` | How many discovered ŞOK collections to scrape, highest relevance first |
| `sokMaxPages` | Pages to follow per ŞOK collection (~20 products each) |
| `maxItems` | Cap across all chains, shared out fairly. `0` = unlimited |
| `onlyDiscounted` | Keep only products that show a struck-through original price |

### Output sample

```json
{
  "chain": "BIM",
  "campaign": "25-31 Temmuz",
  "productId": "makarna-cesitleri-25-7",
  "brand": "NUH'UN ANKARA",
  "name": "MAKARNA ÇEŞİTLERİ",
  "price": 24.5,
  "originalPrice": 33.5,
  "discountRate": 26,
  "currency": "TRY",
  "unit": "500 g",
  "url": "https://www.bim.com.tr/aktuel-urunler/makarna-cesitleri-25-7/aktuel.aspx",
  "image": "https://cdn1.bim.com.tr/uploads/aktuel-urunler/1627_kucuk.jpg",
  "scrapedAt": "2026-07-25T09:00:00+00:00"
}
```

### Pricing

Pay per event: you are charged only for products actually written to the dataset.
Runs that return nothing cost nothing.

### Tips

- Start with `maxItems: 300` to see the shape of the data before scaling up.
- For a weekly price archive, schedule the Actor every Monday morning and keep
  appending to the same dataset.
- `onlyDiscounted: true` is the fastest way to answer "what is actually marked down
  this week".
- Set `maxItems: 0` when you want the full catalogs; quotas only apply when a cap
  is set.
- Turkish residential proxies are the default and give the most reliable results,
  though these sites are usually reachable without one. If your plan has no proxy
  access the Actor logs a warning and continues on a direct connection.

### Notes

Catalogs change weekly, and occasionally a chain restructures its pages. If you see
a drop in results, open an issue on the Actor page and it will be fixed. Only
publicly available product catalog data is collected.

# Actor input Schema

## `chains` (type: `array`):

Which discount chains to include in this run. Each chain is scraped independently, so a failure on one does not abort the others.

## `a101Campaigns` (type: `array`):

A101 campaign page slugs to scrape, e.g. 'aldin-aldin' for the weekly deals, 'ekstra' for the marketplace catalog, 'kapida' for grocery delivery.

## `bimMaxDates` (type: `integer`):

BIM publishes a separate catalog for each promotion date. 0 = only the current landing catalog. Higher values also pull past and upcoming dated catalogs, which is how you build a historical price archive.

## `sokAutoDiscover` (type: `boolean`):

SOK rotates its campaign collection IDs every week. When enabled, the Actor reads the SOK homepage and follows the current collection links instead of relying on hardcoded URLs. Keep this on unless you supply your own URLs below.

## `sokUrls` (type: `array`):

Specific SOK collection or category URLs to scrape. Leave empty to rely on auto-discovery.

## `sokMaxCollections` (type: `integer`):

How many discovered SOK collections to scrape, highest relevance first. Weekly deals and campaign pages rank above brand showcases, so a low number still gets you the pages that matter.

## `sokMaxPages` (type: `integer`):

How many paginated pages to follow per SOK collection. Each page returns roughly 20 products.

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

Stop the run after this many products across all chains. Set 0 for no limit.

## `onlyDiscounted` (type: `boolean`):

When enabled, only products that show a struck-through original price are saved. Useful for tracking genuine markdowns rather than the full catalog.

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

Proxy settings. Turkish residential proxies give the most reliable results, but these sites are usually reachable without a proxy.

## Actor input object example

```json
{
  "chains": [
    "A101",
    "BIM",
    "SOK"
  ],
  "a101Campaigns": [
    "aldin-aldin"
  ],
  "bimMaxDates": 2,
  "sokAutoDiscover": true,
  "sokUrls": [],
  "sokMaxCollections": 4,
  "sokMaxPages": 3,
  "maxItems": 200,
  "onlyDiscounted": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "TR"
  }
}
```

# 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 = {
    "chains": [
        "A101",
        "BIM",
        "SOK"
    ],
    "a101Campaigns": [
        "aldin-aldin"
    ],
    "bimMaxDates": 2,
    "sokMaxCollections": 4,
    "sokMaxPages": 3,
    "maxItems": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("caulleonard/tr-aktuel-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 = {
    "chains": [
        "A101",
        "BIM",
        "SOK",
    ],
    "a101Campaigns": ["aldin-aldin"],
    "bimMaxDates": 2,
    "sokMaxCollections": 4,
    "sokMaxPages": 3,
    "maxItems": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("caulleonard/tr-aktuel-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 '{
  "chains": [
    "A101",
    "BIM",
    "SOK"
  ],
  "a101Campaigns": [
    "aldin-aldin"
  ],
  "bimMaxDates": 2,
  "sokMaxCollections": 4,
  "sokMaxPages": 3,
  "maxItems": 200
}' |
apify call caulleonard/tr-aktuel-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Turkish Discount Market Scraper - A101, BİM, ŞOK Deals",
        "description": "Scrape weekly promotional catalogs (aktuel) from Turkey's three largest discount grocery chains in one run. Unified schema, historical BIM archive, no personal data.",
        "version": "0.1",
        "x-build-id": "IlPMxbbkzT5fXgR6m"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/caulleonard~tr-aktuel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-caulleonard-tr-aktuel-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/caulleonard~tr-aktuel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-caulleonard-tr-aktuel-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/caulleonard~tr-aktuel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-caulleonard-tr-aktuel-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": [
                    "chains"
                ],
                "properties": {
                    "chains": {
                        "title": "Chains to scrape",
                        "type": "array",
                        "description": "Which discount chains to include in this run. Each chain is scraped independently, so a failure on one does not abort the others.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "A101",
                                "BIM",
                                "SOK"
                            ],
                            "enumTitles": [
                                "A101 (Aldin Aldin)",
                                "BIM (Aktuel Urunler)",
                                "SOK (Haftanin Firsatlari)"
                            ]
                        },
                        "default": [
                            "A101",
                            "BIM",
                            "SOK"
                        ]
                    },
                    "a101Campaigns": {
                        "title": "A101 campaign pages",
                        "type": "array",
                        "description": "A101 campaign page slugs to scrape, e.g. 'aldin-aldin' for the weekly deals, 'ekstra' for the marketplace catalog, 'kapida' for grocery delivery.",
                        "default": [
                            "aldin-aldin"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "bimMaxDates": {
                        "title": "BIM archive depth (number of dated catalogs)",
                        "minimum": 0,
                        "maximum": 40,
                        "type": "integer",
                        "description": "BIM publishes a separate catalog for each promotion date. 0 = only the current landing catalog. Higher values also pull past and upcoming dated catalogs, which is how you build a historical price archive.",
                        "default": 2
                    },
                    "sokAutoDiscover": {
                        "title": "Auto-discover SOK campaign collections",
                        "type": "boolean",
                        "description": "SOK rotates its campaign collection IDs every week. When enabled, the Actor reads the SOK homepage and follows the current collection links instead of relying on hardcoded URLs. Keep this on unless you supply your own URLs below.",
                        "default": true
                    },
                    "sokUrls": {
                        "title": "SOK collection URLs (optional)",
                        "type": "array",
                        "description": "Specific SOK collection or category URLs to scrape. Leave empty to rely on auto-discovery.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sokMaxCollections": {
                        "title": "SOK collections to follow",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "How many discovered SOK collections to scrape, highest relevance first. Weekly deals and campaign pages rank above brand showcases, so a low number still gets you the pages that matter.",
                        "default": 4
                    },
                    "sokMaxPages": {
                        "title": "SOK pages per collection",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "How many paginated pages to follow per SOK collection. Each page returns roughly 20 products.",
                        "default": 3
                    },
                    "maxItems": {
                        "title": "Maximum products",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop the run after this many products across all chains. Set 0 for no limit.",
                        "default": 0
                    },
                    "onlyDiscounted": {
                        "title": "Only products with a discount",
                        "type": "boolean",
                        "description": "When enabled, only products that show a struck-through original price are saved. Useful for tracking genuine markdowns rather than the full catalog.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Turkish residential proxies give the most reliable results, but these sites are usually reachable without a proxy.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "TR"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
