# Tumblr Blog Scraper (`xtracto/tumblr-blog-scraper`) Actor

Get a Tumblr blog's info and posts via v2 API.

- **URL**: https://apify.com/xtracto/tumblr-blog-scraper.md
- **Developed by:** [Farhan Febrian Nauval](https://apify.com/xtracto) (community)
- **Categories:** Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Tumblr Blog Scraper

Fetch a Tumblr blog's profile data and its posts in a single run — info card, follower-visible metadata, and a paginated stream of posts with content, tags, and note counts. Works out of the box without any setup.

### Why use this actor

- **No setup required** — works anonymously, no account or API key needed. Optionally paste a free key for richer fields.
- **Blog info + posts in one call** — you get the blog's title, description, post counter, and avatar (with key) alongside the actual posts, so you do not need to combine two actors.
- **Filter by post type or tag** — pull only `photo` posts, only `video` posts, only items tagged `#illustration`, etc.
- **Bulk input** — pass a list of blog handles in one run; each blog produces one info record plus its posts.
- **Stable JSON output** — every row carries `_input`, `_type`, `_source`, and `_scrapedAt` envelope fields so you can join results back to your input list and tell info-rows from post-rows.
- **Automatic retries** — transient errors (429, 5xx) retry with backoff; missing or private blogs surface as a structured `_error` row instead of crashing the run.

### How it works

1. You provide a list of Tumblr blog handles (e.g. `staff.tumblr.com`). Optionally include a Tumblr API key for richer data.
2. The actor fetches the blog's info card, then paginates through posts up to `maxPosts`, optionally filtered by `kind` or `tag`.
3. Each record streams into your dataset, ready to download as JSON, CSV, or Excel.

You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.

### Setup (optional) — get your free Tumblr API key for richer fields

The actor runs without any key. If you want richer fields (avatar URLs, NSFW flag, theme metadata, ask configuration), register a Tumblr v2 API consumer key — it is free, instant, and takes about two minutes:

1. Go to [tumblr.com/oauth/apps](https://www.tumblr.com/oauth/apps) and log into any Tumblr account.
2. Click **Register application**. Fill in any name, website, and short description.
3. Copy the **OAuth consumer key** (the short alphanumeric string, not the secret).
4. Paste it as the `apiKey` input field.

There is no review process. One key gives you 5,000 API requests per day, enough for roughly 100,000 posts on this actor.

### Input

```json
{
  "blogs": [
    "staff.tumblr.com",
    "engineering.tumblr.com"
  ],
  "apiKey": "",
  "maxPosts": 20,
  "kind": "",
  "tag": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["DATACENTER"]
  }
}
````

| Field | Type | Description |
|---|---|---|
| `blogs` | array | List of Tumblr blog handles or URLs. Accepts `staff`, `staff.tumblr.com`, or `https://staff.tumblr.com/`. Dashed blog names are supported. |
| `apiKey` | string | **Optional** Tumblr v2 API consumer key for richer fields. Leave blank for anonymous mode (still returns blog info + posts + tags + note counts). |
| `maxPosts` | integer | Maximum posts per blog. Default `20`. Set to `0` for unlimited (paginates until the blog runs out). |
| `kind` | string | Optional post type filter: `text`, `photo`, `quote`, `link`, `audio`, `video`, `answer`. Leave blank for all types. |
| `tag` | string | Optional single-tag filter. Case-insensitive. Leave blank to fetch all posts. |
| `proxyConfiguration` | object | Apify Proxy settings. Datacenter proxy is recommended and works in nearly all cases. |

### Output

Each blog produces **one `blog_info` row followed by its posts**. Records stream into the dataset as they are fetched.

#### Blog info row

Input: `staff.tumblr.com`

```json
{
  "_input": "staff.tumblr.com",
  "_type": "blog_info",
  "_source": "S1-api",
  "_scrapedAt": "2026-05-18T11:24:08.187026+00:00",
  "name": "staff",
  "title": "Tumblr Staff",
  "url": "https://staff.tumblr.com/",
  "description": "The official Tumblr Staff blog.",
  "posts": 2986,
  "updated": 1778641000,
  "is_nsfw": false,
  "can_chat": false,
  "share_likes": false,
  "ask": true,
  "ask_anon": false,
  "avatar": [
    { "width": 512, "height": 512, "url": "https://64.media.tumblr.com/.../s512x512u_c1/..." }
  ],
  "theme": {
    "background_color": "#001935",
    "link_color": "#ffffff",
    "title_color": "#ffffff",
    "header_image": "https://..."
  }
}
```

#### Post row

```json
{
  "_input": "staff.tumblr.com",
  "_type": "post",
  "_source": "S1-api",
  "_scrapedAt": "2026-05-18T11:24:09.012345+00:00",
  "id": 775423442789793792,
  "blog_name": "staff",
  "post_url": "https://staff.tumblr.com/post/775423442789793792",
  "slug": "welcome-to-tumblr",
  "type": "text",
  "format": "html",
  "timestamp": 1778641000,
  "date": "2026-05-12 20:30:00 GMT",
  "summary": "Welcome to Tumblr",
  "note_count": 24512,
  "tags": ["tumblr", "welcome"],
  "state": "published",
  "title": "Welcome to Tumblr",
  "body": "<p>...</p>",
  "reblog_key": "AbCdEfGh",
  "short_url": "https://tmblr.co/Z..."
}
```

| Field | Type | Description |
|---|---|---|
| `_input` | string | The blog handle or URL exactly as you supplied it. Use to join results back to your input list. |
| `_type` | string | `"blog_info"` for the first row of each blog, `"post"` for each post that follows. |
| `_source` | string | Internal tag for the path used to fetch the record. `S1-api` means the official Tumblr v2 API path. |
| `_scrapedAt` | string | ISO-8601 UTC timestamp when the record was scraped. |
| `name` | string | Blog handle (info row). |
| `title` | string | Blog display title (info row) or post title (text/link posts). |
| `description` | string | Blog "About" text. May be empty. |
| `url` | string | Canonical blog URL (info row). |
| `posts` | integer | Total post count on the blog (info row). |
| `is_nsfw` | boolean | `true` if the blog is flagged as NSFW. |
| `avatar` | array | Avatar images at multiple resolutions. |
| `theme` | object | Blog theme — colors, header image. |
| `id` | integer | Numeric post ID (post row). |
| `post_url` | string | Permalink to the post. |
| `type` | string | Post kind: `text`, `photo`, `quote`, `link`, `audio`, `video`, `answer`. |
| `timestamp` | integer | Unix epoch seconds when the post was published. |
| `date` | string | Human-readable post date in GMT. |
| `summary` | string | Short text summary Tumblr generates for the post. |
| `note_count` | integer | Total notes (likes + reblogs + replies). |
| `tags` | array | Tags the author attached to the post. |
| `body` / `caption` / `content` | string / array | Post content. Field depends on `type` — text posts use `body`, photo/video posts use `caption` and `photos`/`video_url`, blocks-format posts use `content`. |

#### Error envelope

If the API key is missing, invalid, or the blog does not exist, the actor returns a structured error row instead of crashing:

```json
{
  "_input": "blog-that-does-not-exist.tumblr.com",
  "_error": "fetch_failed",
  "_errorDetail": "NotFound https://api.tumblr.com/v2/blog/blog-that-does-not-exist.tumblr.com/info",
  "_source": "S1-api",
  "_scrapedAt": "2026-05-18T11:24:11.998877+00:00"
}
```

Common `_errorDetail` values:

- `TUMBLR_API_KEY not configured` — `apiKey` input is missing.
- `401 Unauthorized` — the key is invalid, revoked, or quota-exhausted.
- `NotFound ...` — the blog handle does not exist or has been deactivated.

Filter on `_error` to triage failed rows.

### Pricing

This actor is billed per result: **$2.50 per 1,000 results** (Tier 2). Each `blog_info` row, each post row, and each `_error` row counts as one result.

### Other Sosmed Actors

| Platform | Actor | Best for |
|---|---|---|
| Tumblr | [Tumblr Post Detail Scraper](https://apify.com/xtracto/tumblr-post-detail-scraper) | One permalink — full blocks content, notes, blog card |
| Medium | [Medium User Scraper](https://apify.com/xtracto/medium-user-scraper) | Author profile + their published stories |
| Substack | [Substack Publication Scraper](https://apify.com/xtracto/substack-publication-scraper) | Newsletter masthead + recent posts |
| Mastodon | [Mastodon Account Scraper](https://apify.com/xtracto/mastodon-account-scraper) | Fediverse account profile + statuses |
| Bluesky | [Bluesky Account Scraper](https://apify.com/xtracto/bluesky-account-scraper) | atproto profile + counters |
| Threads | [Threads Account Scraper](https://apify.com/xtracto/threads-account-scraper) | Profile data for a Threads handle |

Browse the full catalog at [apify.com/xtracto](https://apify.com/xtracto).

### Notes

- **Quota** — one Tumblr API key gives you 5,000 requests per day. This actor uses one request per 20 posts plus one request per blog's info card, so a single key comfortably handles ~100,000 posts/day.
- **NSFW filter** — blogs that opted out of API exposure for adult content may return a partial response. The actor respects Tumblr's NSFW visibility rules.
- **Dashed blog names** — handles like `my-awesome-blog.tumblr.com` are fully supported. Both bare handle (`my-awesome-blog`) and full URL forms are accepted.
- **Pagination** — the actor paginates in batches of 20 posts (Tumblr's API limit per request) and stops when it reaches `maxPosts` or the blog runs out.
- **Custom domains** — blogs hosted on custom domains (e.g. a personal `.com`) still work as long as you supply the underlying `.tumblr.com` handle, not the vanity domain.

# Actor input Schema

## `blogs` (type: `array`):

List of Tumblr blog handles or URLs. Accepts `staff`, `staff.tumblr.com`, or `https://staff.tumblr.com/`. Dashed names like `my-blog-name` are supported.

## `apiKey` (type: `string`):

Optional Tumblr v2 API consumer key for richer fields (exact note counts, avatar URLs, NSFW flag, theme metadata). If left blank, the actor falls back to Tumblr's anonymous legacy endpoint which works without auth but returns fewer fields. Get a free key at tumblr.com/oauth/apps if you want the full data — registration takes 1 minute, no review process.

## `maxPosts` (type: `integer`):

Maximum number of posts to fetch per blog. Set to 0 for unlimited (paginates until the blog runs out). The blog info record is always returned in addition to posts.

## `kind` (type: `string`):

Restrict results to a single post type. Leave blank to fetch all types.

## `tag` (type: `string`):

Return only posts tagged with this single tag. Tag matching is case-insensitive. Leave blank to fetch all posts.

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

Apify Proxy settings. Datacenter proxy works for Tumblr's public API in nearly all cases.

## Actor input object example

```json
{
  "blogs": [
    "staff.tumblr.com",
    "engineering.tumblr.com"
  ],
  "maxPosts": 20,
  "kind": "",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "blogs": [
        "staff.tumblr.com",
        "engineering.tumblr.com"
    ],
    "maxPosts": 20,
    "kind": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("xtracto/tumblr-blog-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 = {
    "blogs": [
        "staff.tumblr.com",
        "engineering.tumblr.com",
    ],
    "maxPosts": 20,
    "kind": "",
}

# Run the Actor and wait for it to finish
run = client.actor("xtracto/tumblr-blog-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 '{
  "blogs": [
    "staff.tumblr.com",
    "engineering.tumblr.com"
  ],
  "maxPosts": 20,
  "kind": ""
}' |
apify call xtracto/tumblr-blog-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Tumblr Blog Scraper",
        "description": "Get a Tumblr blog's info and posts via v2 API.",
        "version": "1.0",
        "x-build-id": "x9bdLFfeElHKEt6Fe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/xtracto~tumblr-blog-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-xtracto-tumblr-blog-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/xtracto~tumblr-blog-scraper/runs": {
            "post": {
                "operationId": "runs-sync-xtracto-tumblr-blog-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/xtracto~tumblr-blog-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-xtracto-tumblr-blog-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": [
                    "blogs"
                ],
                "properties": {
                    "blogs": {
                        "title": "Tumblr blog handles",
                        "type": "array",
                        "description": "List of Tumblr blog handles or URLs. Accepts `staff`, `staff.tumblr.com`, or `https://staff.tumblr.com/`. Dashed names like `my-blog-name` are supported.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "apiKey": {
                        "title": "Tumblr API key (optional — recommended)",
                        "type": "string",
                        "description": "Optional Tumblr v2 API consumer key for richer fields (exact note counts, avatar URLs, NSFW flag, theme metadata). If left blank, the actor falls back to Tumblr's anonymous legacy endpoint which works without auth but returns fewer fields. Get a free key at tumblr.com/oauth/apps if you want the full data — registration takes 1 minute, no review process."
                    },
                    "maxPosts": {
                        "title": "Max posts per blog",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of posts to fetch per blog. Set to 0 for unlimited (paginates until the blog runs out). The blog info record is always returned in addition to posts.",
                        "default": 20
                    },
                    "kind": {
                        "title": "Post type filter (optional)",
                        "enum": [
                            "",
                            "text",
                            "photo",
                            "quote",
                            "link",
                            "audio",
                            "video",
                            "answer"
                        ],
                        "type": "string",
                        "description": "Restrict results to a single post type. Leave blank to fetch all types.",
                        "default": ""
                    },
                    "tag": {
                        "title": "Tag filter (optional)",
                        "type": "string",
                        "description": "Return only posts tagged with this single tag. Tag matching is case-insensitive. Leave blank to fetch all posts."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Datacenter proxy works for Tumblr's public API in nearly all cases.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
