# goo.gl Resolver — Unshorten Dead Google Short URLs via Wayback (`nexgendata/goo-gl-resolver`) Actor

Google killed goo.gl in Aug 2025. Resolves dead goo.gl short URLs to their original destinations via the Wayback Machine Availability and CDX APIs. Unified JSON output, optional page-title enrichment.

- **URL**: https://apify.com/nexgendata/goo-gl-resolver.md
- **Developed by:** [Stephan Corbeil](https://apify.com/nexgendata) (community)
- **Categories:** Developer tools, SEO tools, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$4.00 / 1,000 goo.gl url resolve attempts

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

## goo.gl Resolver — Unshorten Dead Google Short URLs via Wayback

**Google killed goo.gl on August 25, 2025. Here's how to unshorten the 5 billion URLs that went dark.**

For over a decade, `goo.gl` was everywhere — stamped across marketing emails, press releases, printed brochures, QR codes, academic papers, PDFs, support docs, even business cards. Google quietly deprecated the shortener in 2018 and then, on August 25 2025, pulled the plug entirely. Every `goo.gl/*` link on the public internet now returns **404 Not Found**. Permanently.

That's hundreds of millions of dead outbound links in your CRM, your old ad creative, your customer support macros, your affiliate history, your Zapier runs, your competitor's backlink profile, and every PDF you've ever filed. The destination URLs aren't gone — Google still has them, they just won't tell you what they were.

**This actor tells you what they were.** It queries the Internet Archive's Wayback Machine (which captured ~5 billion `goo.gl/*` redirects before the shutdown via ArchiveTeam's goo.gl Warrior project) and recovers the original destination URL, the snapshot date, and optionally the live page title.

---

### What this actor does

For each `goo.gl` short URL you pass in, it:

1. **Queries the Wayback Availability API** — `https://archive.org/wayback/available?url=...` — and retrieves the closest archived snapshot of the short URL.
2. **Replays the snapshot with `id_` flavor** so the Wayback Machine returns the raw archived HTTP response (including the original `301 Location` header that goo.gl sent the browser back in the day).
3. **Falls back to the CDX API** — `https://web.archive.org/cdx/search/cdx?url=goo.gl/<code>&filter=statuscode:301` — when availability doesn't have a snapshot. CDX lets us reach deeper into the archive by scanning every recorded capture, not just the "closest" one.
4. **(Optional) Fetches the resolved destination** and extracts its `<title>` tag, so you know whether the destination is still live and what it points to.

The output is a flat, consistent record per URL: `short_url`, `short_code`, `resolved_url`, `resolved_via`, `snapshot_timestamp`, `page_title`, `resolved_domain`, `is_resolved`.

---

### Why not just follow the link yourself?

Because `goo.gl` no longer serves redirects. From the [Google URL Shortener shutdown notice](https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/):

> All `goo.gl` URLs stopped serving HTTP 302 responses and now return HTTP 404 errors starting August 25, 2025. This applies to every `goo.gl` URL, including those previously generated from Firebase Dynamic Links.

A plain HTTP GET on any `goo.gl/abc123` returns 404. No Location header. No redirect chain. Nothing. The *only* way to recover the original destination is through a URL that was captured **before August 25 2025** — and essentially the only public source of those captures at scale is the Internet Archive.

---

### Input

```json
{
  "urls": [
    "https://goo.gl/maps/abc",
    "goo.gl/xyz123",
    "https://goo.gl/2hLmN"
  ],
  "include_metadata": false,
  "timeout_seconds": 15
}
````

| Field | Type | Default | Notes |
|-------|------|---------|-------|
| `urls` | `string[]` | — | 1 to 500 goo.gl URLs. Accepts `goo.gl/xyz`, `https://goo.gl/xyz`, `http://goo.gl/maps/xyz`, etc. Non-goo.gl entries are rejected with a `resolved_via: "error"` row. |
| `include_metadata` | `boolean` | `false` | When true, fetches the resolved destination and extracts the HTML `<title>`. Adds one extra HTTP round-trip per resolved URL. |
| `timeout_seconds` | `integer` | `15` | Per-request HTTP timeout (5-60). Wayback endpoints can be slow during peak hours — bump this if you see cdx timeouts. |

***

### Output (one record per URL)

```json
{
  "short_url": "https://goo.gl/2hLmN",
  "short_code": "2hLmN",
  "resolved_url": "https://www.example.com/some/original/path",
  "resolved_via": "wayback_available",
  "snapshot_timestamp": "20230815120001",
  "page_title": "Example — a real page",
  "resolved_domain": "www.example.com",
  "is_resolved": true,
  "error": null
}
```

Field reference:

- **`short_url`** — normalized canonical form `https://goo.gl/<code>`.
- **`short_code`** — the code itself (`abc123`, or `maps/place/xyz` for Maps short links).
- **`resolved_url`** — the destination URL recovered from the archive. `null` when the link is permanently dead.
- **`resolved_via`** — `wayback_available` (the Availability API gave us a clean snapshot), `wayback_cdx` (we fell back to scanning the CDX index for the most recent 301 snapshot), `dead` (nothing in the archive), or `error` (HTTP error, bad input, etc.).
- **`snapshot_timestamp`** — Wayback timestamp in `YYYYMMDDhhmmss` form. Useful if you want to pin a specific snapshot or audit freshness.
- **`page_title`** — destination `<title>` tag (when `include_metadata: true` and the destination is still live). Capped at 500 chars.
- **`resolved_domain`** — the host of `resolved_url`, e.g. `maps.google.com`, `youtu.be`, `www.nytimes.com`. Great for bucketing at scale.
- **`is_resolved`** — the boolean you'll actually filter on. True iff we got a destination back.

***

### Pricing — $0.004 per URL

Pay-per-event: exactly **$0.004 per `url-resolve`**, charged whether or not the URL resolved. (Dead links cost the same as live ones because the archive lookup still runs.) No monthly minimum, no platform tax beyond Apify's, no data caps.

At this price, resolving 10,000 goo.gl links costs $40. The same job against a commercial URL resolution API (when they exist, which most don't for `goo.gl` specifically) runs anywhere from $200 to $2,000, assuming they even have historical coverage.

***

### Who needs this

- **SEO & link audit teams** — reclaiming `goo.gl` backlinks in Ahrefs/Majestic/GSC dumps before the 404s hurt pagerank or lose attribution. Feed in your backlink export, get destinations out, redirect at the edge.
- **Marketing ops / CRM cleanup** — HubSpot, Salesforce, Marketo campaigns from 2015-2024 are riddled with dead `goo.gl` tracking links. Re-point them at the original destinations (or mark them dead) before the next NPS blast goes out with rotten URLs.
- **Affiliate publishers** — old review posts, Amazon comparison tables, Pinterest boards, YouTube descriptions. Every dead `goo.gl` is lost revenue; resolve them and swap in direct links.
- **Researchers & journalists** — academic papers and news archives are full of `goo.gl/*` citations. This actor is a one-shot to footnote the original URLs in bulk.
- **Archivists & librarians** — WARC repair, Zotero cleanup, institutional-repository link rot projects.
- **Reverse-engineering / OSINT** — reconstructing historical campaign funnels and redirect chains where the shortener was the only breadcrumb.

***

### How it works under the hood

1. **Normalize** — strip scheme/case variance; accept `goo.gl/abc`, `https://goo.gl/abc`, `http://www.goo.gl/maps/xyz`. The short code (everything after `goo.gl/`) is preserved verbatim so Maps-style sub-paths (`goo.gl/maps/place/...`) survive.
2. **Availability lookup** — hits the cheap Availability API first. Fast, cached, JSON. Returns the closest snapshot URL and timestamp.
3. **Raw replay** — we rewrite the snapshot URL with the `id_` flavor (`web/<ts>id_/<original>`), which tells Wayback to serve the raw archived HTTP response instead of its wrapper HTML. That response preserves the original `Location: https://...` header from goo.gl. We also sniff meta-refresh as a last resort.
4. **CDX fallback** — if Availability has nothing, we hit CDX with `filter=statuscode:301&limit=-5` to get the 5 most recent 301 captures, walk them newest-first, and return the first one whose replay produces a resolvable destination.
5. **Optional metadata** — if `include_metadata: true`, we `GET` the resolved URL and parse the `<title>` with BeautifulSoup (first 500 KB only, HTML/XML content types only).

Every input URL produces exactly one output row, in input order. Non-goo.gl inputs get a `resolved_via: "error"` row with `error: "not a goo.gl URL"` so you can audit bad data.

***

### Limitations & honest caveats

- **Not everything was archived.** The Wayback Machine preserved billions of `goo.gl` redirects, but coverage isn't 100%. Low-traffic short URLs created in the last few months before shutdown may not have been crawled. Expect 40-80% resolve rates on broad internet corpuses, higher on prominent links.
- **The destination may also be dead.** We recover the URL goo.gl *pointed at*. Whether that destination still exists is a separate question — use `include_metadata: true` to probe.
- **Maps short links are lossy.** `goo.gl/maps/*` sometimes redirected through multiple Google-internal hops. The earliest snapshot may show an intermediate URL, not the final one.
- **Rate limits.** The Wayback Machine is a free public service; be kind. This actor runs sequentially (no concurrent request storm) and identifies itself via User-Agent. Keep batch sizes reasonable.

***

### Example uses

**Re-resolve a backlink export**

```json
{ "urls": ["https://goo.gl/abc", "https://goo.gl/def", "..."], "include_metadata": true }
```

Pipe the resulting dataset into your backlink DB, filter by `is_resolved: true`, and update the destination column.

**Quick one-off**

```json
{ "urls": ["goo.gl/2hLmN"] }
```

Gets you the original destination and the exact snapshot date in under a couple of seconds.

***

Built by a team that lost a chunk of its own ad-history CRM to the shutdown. Pricing is aggressive because the market for this is time-limited: every year more `goo.gl` references age out of Wayback's most-recent snapshots, and the job gets harder. Fix it while the archive is still warm.

### Related tools

- [📊 Tranco Rank Lookup — Alexa Rank Alternative](https://apify.com/nexgendata/tranco-rank-lookup?fpr=2ayu9b)
- [🔍 Google Search Scraper — SERP Results API](https://apify.com/nexgendata/google-search-scraper?fpr=2ayu9b)
- [🧭 Google CSE Replacement — Affordable SERP API](https://apify.com/nexgendata/google-cse-replacement?fpr=2ayu9b)
- [🏛️ Wayback Machine Harvester — Archive Snapshot API](https://apify.com/nexgendata/wayback-machine-harvester?fpr=2ayu9b)

# Actor input Schema

## `urls` (type: `array`):

List of goo.gl short URLs to resolve (1-500). Accepts either bare form (e.g. 'goo.gl/abc123') or full URL ('https://goo.gl/abc123'). Each entry triggers one resolve attempt and one PPE charge.

## `include_metadata` (type: `boolean`):

If true, fetch the resolved destination URL and extract its HTML <title> tag. Adds one extra HTTP request per resolved URL. Defaults to false for speed.

## `timeout_seconds` (type: `integer`):

HTTP timeout for each Wayback API / CDX / metadata request (5-60 seconds). Defaults to 15. Wayback endpoints can be slow during peak hours.

## Actor input object example

```json
{
  "urls": [
    "https://goo.gl/maps/abc",
    "goo.gl/xyz123"
  ],
  "include_metadata": false,
  "timeout_seconds": 15
}
```

# 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 = {
    "urls": [
        "https://goo.gl/maps/abc",
        "goo.gl/xyz123"
    ],
    "include_metadata": false,
    "timeout_seconds": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/goo-gl-resolver").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 = {
    "urls": [
        "https://goo.gl/maps/abc",
        "goo.gl/xyz123",
    ],
    "include_metadata": False,
    "timeout_seconds": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/goo-gl-resolver").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 '{
  "urls": [
    "https://goo.gl/maps/abc",
    "goo.gl/xyz123"
  ],
  "include_metadata": false,
  "timeout_seconds": 15
}' |
apify call nexgendata/goo-gl-resolver --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "goo.gl Resolver — Unshorten Dead Google Short URLs via Wayback",
        "description": "Google killed goo.gl in Aug 2025. Resolves dead goo.gl short URLs to their original destinations via the Wayback Machine Availability and CDX APIs. Unified JSON output, optional page-title enrichment.",
        "version": "0.0",
        "x-build-id": "HevBg1TIeJE2b21KN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~goo-gl-resolver/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-goo-gl-resolver",
                "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/nexgendata~goo-gl-resolver/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-goo-gl-resolver",
                "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/nexgendata~goo-gl-resolver/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-goo-gl-resolver",
                "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": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "goo.gl Short URLs",
                        "minItems": 1,
                        "maxItems": 500,
                        "type": "array",
                        "description": "List of goo.gl short URLs to resolve (1-500). Accepts either bare form (e.g. 'goo.gl/abc123') or full URL ('https://goo.gl/abc123'). Each entry triggers one resolve attempt and one PPE charge.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "include_metadata": {
                        "title": "Include Page Title",
                        "type": "boolean",
                        "description": "If true, fetch the resolved destination URL and extract its HTML <title> tag. Adds one extra HTTP request per resolved URL. Defaults to false for speed.",
                        "default": false
                    },
                    "timeout_seconds": {
                        "title": "Per-Request Timeout (seconds)",
                        "minimum": 5,
                        "maximum": 60,
                        "type": "integer",
                        "description": "HTTP timeout for each Wayback API / CDX / metadata request (5-60 seconds). Defaults to 15. Wayback endpoints can be slow during peak hours.",
                        "default": 15
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
