{
  "openapi": "3.0.1",
  "info": {
    "title": "Spotify Artist Scout – Monthly Listeners, Play Counts, AI Score",
    "description": "First 25 artists free. Spotify artist scout, pay per qualified artist - junk never charged by us: monthly listeners, listener growth, signing status, AI scouting note, from Spotify Play Count Scraper. Free demo on any plan; live search runs on your Apify account, any plan that runs Store Actors.",
    "version": "0.3",
    "x-build-id": "wV7jXJ7N55KgIiY4V"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rich_minds~spotify-artist-scout-ai/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rich_minds-spotify-artist-scout-ai",
        "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/rich_minds~spotify-artist-scout-ai/runs": {
      "post": {
        "operationId": "runs-sync-rich_minds-spotify-artist-scout-ai",
        "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/rich_minds~spotify-artist-scout-ai/run-sync": {
      "post": {
        "operationId": "run-sync-rich_minds-spotify-artist-scout-ai",
        "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": [
          "sourceMode"
        ],
        "properties": {
          "seedArtistUrls": {
            "title": "Artists like… (Spotify artist links)",
            "type": "array",
            "description": "Paste 1–5 Spotify artists whose fans you want. Their 'Fans also like' artists are found, scanned and scored; the seeds themselves are not charged. The live search runs on your Apify plan; typing here next to the free demo starts it.",
            "items": {
              "type": "string"
            }
          },
          "sourceMode": {
            "title": "Where do the artists come from?",
            "enum": [
              "actor",
              "dataset",
              "list"
            ],
            "type": "string",
            "description": "<b>actor</b> — live scout through two Store Actors on your account (seeds, a watchlist or just your brief). <b>dataset</b> — score an existing artist dataset. <b>list</b> — score records you paste. <code>{}</code> runs the free demo. The mode you choose always runs as chosen; only the untouched sample next to a typed seed switches to the live scout (spend-capped).",
            "default": "actor"
          },
          "preset": {
            "title": "Start from a ready niche scout (one click)",
            "enum": [
              "custom",
              "booking-agent",
              "indie-label-uk",
              "playlist-curator"
            ],
            "type": "string",
            "description": "Pick a niche and press Start: it fills the search fields and filters you left empty (seeds, Viral 50 charts, listener band, brief) and runs the live scout on your Apify plan, spend-capped by <code>maxDiscoveryChargeUsd</code>. Your own values always win. <b>Custom</b> = fill the fields yourself.",
            "default": "custom"
          },
          "scoutBrief": {
            "title": "What are you scouting for?",
            "type": "string",
            "description": "Genre, scene, stage and market in plain words — the AI scores every artist against it (fitScore) and explains why. No seeds? With the live scout picked, the brief alone starts it: markets it names (UK, Dublin, afrobeats) become Viral 50 charts, artists named after “like” are searched."
          },
          "minScore": {
            "title": "Minimum scout score (0–100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "The field that decides what you pay: artists scoring below this are dropped and <b>not charged</b>. 75+ = hot, 50+ = warm.",
            "default": 50
          },
          "maxQualified": {
            "title": "Max qualified artists to output",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on results — and the ceiling of what <b>this Actor</b> charges: at most this many × $0.01 with AI on (× $0.004 with AI off), e.g. 100 × $0.01 = $1. The source spend has its own cap right below. Best scores first.",
            "default": 100
          },
          "maxDiscoveryChargeUsd": {
            "title": "Max source spend (USD)",
            "minimum": 0.01,
            "maximum": 1000,
            "type": "number",
            "description": "Hard cap on what the two Spotify Store Actors may charge your account per run (≈ $0.004 per scanned artist, $0.001 per discovery row) — $0.50 in the form and for an API call that leaves it out. Raise it for bigger scouts.",
            "default": 0.5
          },
          "enableAi": {
            "title": "AI scouting note & pitch line",
            "type": "boolean",
            "description": "Adds the AI verdict per artist: fit to your brief, career stage, bio facts quoted from Spotify, a 2-sentence scouting note and a pitch line. <b>On = $0.01 per qualified artist + AI tokens; off = $0.004</b> (rule score and template note only).",
            "default": true
          },
          "notifyEmail": {
            "title": "E-mail me the new artists (optional)",
            "type": "string",
            "description": "After every run with at least one new artist, the digest (how many are new, growth alerts, the top 10 with links) is e-mailed here through Apify's send-mail Actor. Schedule the run weekly and only new or fast-growing artists reach your inbox. Never sent for the free demo."
          },
          "artistUrls": {
            "title": "Watchlist — scan exactly these artists",
            "type": "array",
            "description": "Spotify artist links, <code>spotify:artist:</code> URIs or IDs scanned as they are (no discovery cost). On a weekly schedule an artist already delivered comes back only as a growth alert. Track / album / playlist links are skipped with a note. The live search runs on your Apify plan; typing here next to the free demo starts it.",
            "items": {
              "type": "string"
            }
          },
          "playlistUrls": {
            "title": "Playlists to mine for artists",
            "type": "array",
            "description": "Spotify playlist links (e.g. an editorial new-music playlist or an indie curator's list). Every credited artist on the playlist is scanned. The live search runs on your Apify plan; typing here next to the free demo starts it.",
            "items": {
              "type": "string"
            }
          },
          "viralChartCountries": {
            "title": "Spotify Viral 50 charts",
            "type": "array",
            "description": "Countries whose Viral 50 chart feeds the scout — the artists behind the tracks going viral there. The live search runs on your Apify plan; typing here next to the free demo starts it.",
            "items": {
              "type": "string",
              "enum": [
                "GLOBAL",
                "US",
                "GB",
                "IE",
                "CA",
                "AU",
                "NZ",
                "DE",
                "AT",
                "CH",
                "FR",
                "BE",
                "NL",
                "LU",
                "ES",
                "PT",
                "IT",
                "SE",
                "NO",
                "DK",
                "FI",
                "IS",
                "PL",
                "CZ",
                "SK",
                "HU",
                "RO",
                "BG",
                "GR",
                "UA",
                "TR",
                "IL",
                "AE",
                "SA",
                "EG",
                "MA",
                "NG",
                "GH",
                "KE",
                "ZA",
                "BR",
                "MX",
                "AR",
                "CL",
                "CO",
                "PE",
                "EC",
                "UY",
                "DO",
                "PR",
                "JP",
                "KR",
                "TW",
                "HK",
                "IN",
                "PK",
                "ID",
                "PH",
                "TH",
                "VN",
                "MY",
                "SG"
              ],
              "enumTitles": [
                "Global (worldwide chart)",
                "United States",
                "United Kingdom",
                "Ireland",
                "Canada",
                "Australia",
                "New Zealand",
                "Germany",
                "Austria",
                "Switzerland",
                "France",
                "Belgium",
                "Netherlands",
                "Luxembourg",
                "Spain",
                "Portugal",
                "Italy",
                "Sweden",
                "Norway",
                "Denmark",
                "Finland",
                "Iceland",
                "Poland",
                "Czechia",
                "Slovakia",
                "Hungary",
                "Romania",
                "Bulgaria",
                "Greece",
                "Ukraine",
                "Turkey",
                "Israel",
                "United Arab Emirates",
                "Saudi Arabia",
                "Egypt",
                "Morocco",
                "Nigeria",
                "Ghana",
                "Kenya",
                "South Africa",
                "Brazil",
                "Mexico",
                "Argentina",
                "Chile",
                "Colombia",
                "Peru",
                "Ecuador",
                "Uruguay",
                "Dominican Republic",
                "Puerto Rico",
                "Japan",
                "South Korea",
                "Taiwan",
                "Hong Kong",
                "India",
                "Pakistan",
                "Indonesia",
                "Philippines",
                "Thailand",
                "Vietnam",
                "Malaysia",
                "Singapore"
              ]
            }
          },
          "artistSearchTerms": {
            "title": "Artist names to search",
            "type": "array",
            "description": "Spotify's artist search matches artist <b>names</b> (not genres): each term returns the 10 best-matching artists. The live search runs on your Apify plan; typing here next to the free demo starts it.",
            "items": {
              "type": "string"
            }
          },
          "minMonthlyListeners": {
            "title": "Min monthly listeners",
            "minimum": 0,
            "type": "integer",
            "description": "Artists below this are dropped before any charge.",
            "default": 1000
          },
          "maxMonthlyListeners": {
            "title": "Max monthly listeners",
            "minimum": 0,
            "type": "integer",
            "description": "Artists above this are dropped before any charge (already too big to scout). 0 = no upper limit — big artists then carry the <code>already_big</code> flag.",
            "default": 500000
          },
          "releasedWithinDays": {
            "title": "Released something in the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Drops artists whose newest album or single is older than this. 0 = off.",
            "default": 365
          },
          "targetCountries": {
            "title": "Audience in these countries",
            "type": "array",
            "description": "Keep only artists with at least one of their top-5 listener cities in these countries (the booker's and the label's home market). Empty = any country.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "IE",
                "CA",
                "AU",
                "NZ",
                "DE",
                "AT",
                "CH",
                "FR",
                "BE",
                "NL",
                "LU",
                "ES",
                "PT",
                "IT",
                "SE",
                "NO",
                "DK",
                "FI",
                "IS",
                "PL",
                "CZ",
                "SK",
                "HU",
                "RO",
                "BG",
                "GR",
                "UA",
                "TR",
                "IL",
                "AE",
                "SA",
                "EG",
                "MA",
                "NG",
                "GH",
                "KE",
                "ZA",
                "BR",
                "MX",
                "AR",
                "CL",
                "CO",
                "PE",
                "EC",
                "UY",
                "DO",
                "PR",
                "JP",
                "KR",
                "TW",
                "HK",
                "IN",
                "PK",
                "ID",
                "PH",
                "TH",
                "VN",
                "MY",
                "SG"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Ireland",
                "Canada",
                "Australia",
                "New Zealand",
                "Germany",
                "Austria",
                "Switzerland",
                "France",
                "Belgium",
                "Netherlands",
                "Luxembourg",
                "Spain",
                "Portugal",
                "Italy",
                "Sweden",
                "Norway",
                "Denmark",
                "Finland",
                "Iceland",
                "Poland",
                "Czechia",
                "Slovakia",
                "Hungary",
                "Romania",
                "Bulgaria",
                "Greece",
                "Ukraine",
                "Turkey",
                "Israel",
                "United Arab Emirates",
                "Saudi Arabia",
                "Egypt",
                "Morocco",
                "Nigeria",
                "Ghana",
                "Kenya",
                "South Africa",
                "Brazil",
                "Mexico",
                "Argentina",
                "Chile",
                "Colombia",
                "Peru",
                "Ecuador",
                "Uruguay",
                "Dominican Republic",
                "Puerto Rico",
                "Japan",
                "South Korea",
                "Taiwan",
                "Hong Kong",
                "India",
                "Pakistan",
                "Indonesia",
                "Philippines",
                "Thailand",
                "Vietnam",
                "Malaysia",
                "Singapore"
              ]
            }
          },
          "minGrowthPct": {
            "title": "Min monthly-listener growth since the last run (%)",
            "minimum": 0,
            "type": "number",
            "description": "From the second run on (the history is kept per artist): drops artists that grew less. 0 = off.",
            "default": 0
          },
          "alertGrowthPct": {
            "title": "Growth alert threshold (%)",
            "minimum": 0,
            "type": "number",
            "description": "An artist you already received comes back (and is charged once more) only when its monthly listeners grew at least this much since the last snapshot — <code>isGrowthAlert: true</code>. 0 = never re-deliver.",
            "default": 20
          },
          "requireSocialLink": {
            "title": "Only artists with an Instagram / TikTok / website",
            "type": "boolean",
            "description": "Drops artists without any social link on their Spotify page — nobody to DM.",
            "default": false
          },
          "targetFlags": {
            "title": "Target flags (any of)",
            "type": "array",
            "description": "Only deliver artists with at least one of these flags, e.g. <code>independent</code>, <code>growth_alert</code>, <code>recent_release</code>, <code>high_momentum</code> (<code>growthAlert</code> works too). An unknown name stops the run with the valid list.",
            "items": {
              "type": "string"
            }
          },
          "suppressionList": {
            "title": "Exclude list",
            "type": "array",
            "description": "Artist names, Spotify links or IDs to never output (your roster, artists you passed on). Skipped before the scan, never charged.",
            "items": {
              "type": "string"
            }
          },
          "yourOffer": {
            "title": "Who you are and what you offer",
            "type": "string",
            "description": "One line about you (label, manager, promoter, playlist). The pitch line names it exactly as written — never an invented deal."
          },
          "llmProvider": {
            "title": "AI model access",
            "enum": [
              "apify",
              "byok"
            ],
            "type": "string",
            "description": "<b>Apify (no keys)</b> — the AI runs through Apify's built-in OpenRouter proxy; tokens are billed to your Apify account at OpenRouter's rates. <b>My own key</b> — your OpenAI / Anthropic / Gemini / Groq key instead; a free-tier key assesses only a few artists per run — expect 1–3 AI checks (measured 2026-09-27: ≈ 40.2 s per artist with a free google:gemini-3.6-flash key, 2 of 6 assessed); the AI stops after 2 minutes of rate-limit waiting and the rest keep their rule score, so the run stays short. A paid Groq / Gemini key (billing on) assesses every artist. README → “How long does a run take?” gives the <code>timeoutSecs</code> per mode.",
            "default": "apify"
          },
          "llmModel": {
            "title": "AI model",
            "type": "string",
            "description": "Leave empty for the default (<code>anthropic/claude-haiku-4.5</code>). Apify mode takes an OpenRouter slug such as <code>openai/gpt-4.1-mini</code>; own-key mode takes <code>provider:model</code>, e.g. <code>anthropic:claude-haiku-4-5-20251001</code>."
          },
          "llmApiKey": {
            "title": "Your API key (own-key mode only)",
            "type": "string",
            "description": "Required when <b>AI model access</b> is <i>My own API key</i>. Stored encrypted by Apify, never logged."
          },
          "aiCandidateMultiplier": {
            "title": "AI candidate pool (× max qualified)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "The best rule-scored artists get the AI pass, up to this multiple of <b>Max qualified</b> — the AI can lift a borderline artist over <b>Minimum scout score</b> or drop it. Higher = more thorough, more tokens.",
            "default": 2
          },
          "slackWebhookUrl": {
            "title": "Post the new artists to Slack (optional)",
            "type": "string",
            "description": "A Slack incoming-webhook URL (<code>https://hooks.slack.com/services/…</code>). After every run with at least one new artist, the digest (new artists, growth alerts, the top 10 with links) is posted as a readable message. Never sent for the free demo."
          },
          "discordWebhookUrl": {
            "title": "Post the new artists to Discord (optional)",
            "type": "string",
            "description": "A Discord channel webhook URL (<code>https://discord.com/api/webhooks/…</code>). The same digest as Slack, posted after every run with at least one new artist. Never sent for the free demo."
          },
          "webhookUrl": {
            "title": "Webhook URL (optional)",
            "type": "string",
            "description": "Qualified artists are POSTed here as JSON (Zapier, Make, n8n, your CRM or A&R sheet). Stored encrypted — Zapier / Make hook URLs carry their secret in the path."
          },
          "webhookHeaders": {
            "title": "Webhook headers (optional)",
            "type": "object",
            "description": "Extra HTTP headers for the webhook, e.g. <code>{\"Authorization\": \"Bearer …\"}</code>. Stored encrypted by Apify, never logged."
          },
          "webhookBatchSize": {
            "title": "Webhook batch size",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "1 = one POST per artist the moment it is ready. Higher = one POST per N artists.",
            "default": 1
          },
          "dedupeAcrossRuns": {
            "title": "Remember artists across runs (growth + no repeats)",
            "type": "boolean",
            "description": "Keeps every delivered artist and a monthly-listener snapshot per artist in a named key-value store on your account: the next run skips what you already have (never charged twice) and computes growth since the last run.",
            "default": true
          },
          "dedupeStoreName": {
            "title": "Memory store name",
            "type": "string",
            "description": "Key-value store for the cross-run memory. Left at the default, the delivered-artist memory is kept per search (seeds, watchlist, playlists, charts, names): rewording <code>scoutBrief</code> keeps it. Scouting for several clients on one account? Type one name per client.",
            "default": "spotify-artist-scout-ai-seen"
          },
          "followReleases": {
            "title": "Read every release (label + streams per release)",
            "type": "boolean",
            "description": "Also scrapes each album and single: the record label (independent vs signed from the distributor) and the newest release's streams per day. Each release is one more $0.004 source row on your account — off by default.",
            "default": false
          },
          "maxArtistsToScan": {
            "title": "Max artists to scan",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on artists sent to the source per run (≈ $0.004 each on your account); discovered artists beyond it, and ones you already received, are never scanned.",
            "default": 200
          },
          "datasetId": {
            "title": "Dataset",
            "type": "string",
            "description": "Only for <b>dataset</b> mode: a dataset of Spotify Play Count Scraper, automation-lab/spotify-scraper (artist items) or eduair94/spotify-scraper (artist_play_counts). Pick it so the Actor is granted read access."
          },
          "itemsList": {
            "title": "Artists to score",
            "type": "array",
            "description": "Only for <b>list</b> mode. JSON array of artist objects in the Spotify Play Count Scraper shape (at least <code>name</code> and <code>monthlyListeners</code>; README → List-mode rows). Prefilled with 8 fictional sample artists — the free demo."
          },
          "discoveryActorId": {
            "title": "Source Actor (advanced)",
            "type": "string",
            "description": "Actor used for the artist scan in <b>actor</b> mode. Any Actor with the Spotify Play Count Scraper input (<code>urls</code>) and artist output works.",
            "default": "beatanalytics/spotify-play-count-scraper"
          },
          "discoveryInput": {
            "title": "Source Actor input (advanced)",
            "type": "object",
            "description": "Only for <b>actor</b> mode. Extra input merged into the source run as-is (its <code>urls</code> are scanned too). The live search runs that Store Actor on your Apify plan — if your plan cannot run Store Actors, use <b>dataset</b> mode."
          },
          "maxToProcess": {
            "title": "Max candidates to score",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Upper bound on how many loaded artists are scored in one run (controls run time). Default = 3 × max qualified."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}