{
  "openapi": "3.0.1",
  "info": {
    "title": "Truth Social Alerts: AI Market Signals from Trump Truth Posts",
    "description": "First 25 posts free. Truth social alerts: Trump posts naming your tariffs, Fed, tickers or countries — pay per qualified post, junk never charged by us. Tagged with a headline, via a Truth Social scraper. Free demo on any plan; live search runs on your Apify account, any plan that runs Store Actors.",
    "version": "0.1",
    "x-build-id": "4ih8QtNNX4LOmWcVd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rich_minds~truth-social-alerts-ai/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rich_minds-truth-social-alerts-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~truth-social-alerts-ai/runs": {
      "post": {
        "operationId": "runs-sync-rich_minds-truth-social-alerts-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~truth-social-alerts-ai/run-sync": {
      "post": {
        "operationId": "run-sync-rich_minds-truth-social-alerts-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",
        "properties": {
          "usernames": {
            "title": "Truth Social accounts to watch",
            "type": "array",
            "description": "Handles to read live, e.g. <code>realDonaldTrump</code> (<code>@name</code> or the profile URL work too). Empty = the free demo on sample posts; typing accounts starts the live read on your Apify plan (any plan that runs Store Actors), spend-capped below. Adding an account keeps the memory of the others.",
            "items": {
              "type": "string"
            }
          },
          "preset": {
            "title": "Start from a ready watch list (one click)",
            "enum": [
              "custom",
              "tariffs-trade",
              "fed-rates",
              "market-movers",
              "crypto",
              "administration-watch",
              "election-endorsements",
              "fast-lane"
            ],
            "type": "string",
            "description": "Pick one and press Start: it fills the fields you left empty and reads the accounts live, its first read capped at $0.15 (no preset is measured on a live read yet). Your own values always win. <b>Custom</b> = fill the fields yourself.",
            "default": "custom"
          },
          "watchKeywords": {
            "title": "Watch keywords",
            "type": "array",
            "description": "Deliver posts that name any of these words or phrases (any case, whole words; <code>tariff*</code> also matches tariffs) in the post, the quoted post or the link title. Leave empty with every other filter to get every new post.",
            "items": {
              "type": "string"
            }
          },
          "watchEntities": {
            "title": "Watch entities (companies, $TICKERs, countries, people)",
            "type": "array",
            "description": "Deliver posts that name any of these in the text, the mentions, the hashtags or the link title. <code>$NVDA</code> matches <code>$NVDA</code> or a bare <code>NVDA</code> in capitals. The AI tags the stance toward each.",
            "items": {
              "type": "string"
            }
          },
          "goalDescription": {
            "title": "What matters to you?",
            "type": "string",
            "description": "Describe your book or beat in plain words. The AI scores every post against it and explains why in one line."
          },
          "enableAi": {
            "title": "AI assessment",
            "type": "boolean",
            "description": "Topic, market relevance 0–100, a score against your goal with a quoted reason, summary, headline, sentiment and grounded entities per post. <b>On = $0.01 per qualified post + AI tokens; off = $0.004</b> (rule-based tags only). Your first 5 posts get live AI verdicts on any plan; every one with Apify model access or a paid own key.",
            "default": true
          },
          "maxQualified": {
            "title": "Max qualified posts 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.00; the source's own spend has its cap right below. The best-scoring posts are output first.",
            "default": 100
          },
          "maxDiscoveryChargeUsd": {
            "title": "Max source spend (USD)",
            "minimum": 0.01,
            "maximum": 1000,
            "type": "number",
            "description": "Affects what you pay: hard cap on what the Truth Social source runs may charge your account (≈ $0.005 per post + $0.0001 per run on the default source) — $0.50 in the form and for an API or agent call that leaves it out. Raise it for many accounts.",
            "default": 0.5
          },
          "notifyEmail": {
            "title": "E-mail me the new posts (optional)",
            "type": "string",
            "description": "After every run with at least one new post, the digest (how many are new, the top 10 with headline, topic and link) is e-mailed here through Apify's send-mail Actor. Schedule the run (Actions → Schedule) and only new posts reach your inbox. Never sent for the free demo."
          },
          "minScore": {
            "title": "Minimum score (0–100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Affects what you pay: posts scoring below this are discarded and <b>not charged</b>. 0 = every post that passes your watch filters. Raise it to pay only for the strongest matches.",
            "default": 0
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Deliver posts whose topic (the AI's, else the keyword lexicon's) is one of these.",
            "items": {
              "type": "string",
              "enum": [
                "tariffs_trade",
                "monetary_policy_fed",
                "company_or_stock",
                "crypto",
                "geopolitics_war",
                "immigration",
                "domestic_politics",
                "legal_courts",
                "personnel",
                "endorsement_or_attack",
                "media",
                "other"
              ],
              "enumTitles": [
                "Tariffs & trade",
                "Fed, rates & inflation",
                "Company or stock",
                "Crypto",
                "Geopolitics & war",
                "Immigration",
                "Domestic politics",
                "Courts & legal",
                "Personnel (appointments, firings)",
                "Endorsement or attack",
                "Media",
                "Other"
              ]
            }
          },
          "minMarketRelevance": {
            "title": "Minimum market relevance (0–100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Deliver posts whose market relevance (does it touch markets, a policy or a named company or country — never a price direction) is at least this. 0 = off.",
            "default": 0
          },
          "onlyOutliers": {
            "title": "Also deliver engagement outliers",
            "type": "boolean",
            "description": "Deliver posts whose engagement (likes + 2 × reposts + 3 × replies) is at least 2× the account's median — once 5 or more of its posts were seen.",
            "default": false
          },
          "sinceDate": {
            "title": "Only posts published after",
            "type": "string",
            "description": "YYYY-MM-DD, an ISO date-time, or a recent window: <code>60m</code>, <code>6h</code>, <code>2d</code> (an agent asking about the last hour sends <code>60m</code>). Older posts are dropped free; the default source skips older days at the source."
          },
          "includeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "Off: replies are dropped free. On: the default source runs a second, replies-only read per account (one more run fee).",
            "default": false
          },
          "includeReposts": {
            "title": "Include reposts (ReTruths)",
            "type": "boolean",
            "description": "Off: reposts of other people's posts are dropped free.",
            "default": false
          },
          "targetFlags": {
            "title": "Required flags (any of)",
            "type": "array",
            "description": "Only deliver posts with at least one of these rule flags, ranked higher with more of them. An API call passes the names from the README's flag table, e.g. <code>market_hours</code> (<code>marketHours</code> works too); an unknown name stops the run at once with the list of valid ones.",
            "items": {
              "type": "string",
              "enum": [
                "keyword_match",
                "entity_match",
                "ticker_mentioned",
                "high_market_relevance",
                "market_hours",
                "outlier",
                "announcement",
                "has_link",
                "quote_post",
                "media_only",
                "all_caps"
              ],
              "enumTitles": [
                "Names a watch keyword",
                "Names a watch entity",
                "Mentions a $TICKER",
                "Rule market relevance 60+",
                "Posted during US market hours",
                "Engagement outlier",
                "States an action or decision",
                "Links an article",
                "Quotes another post",
                "Image or video without text",
                "Mostly capital letters"
              ]
            }
          },
          "suppressionList": {
            "title": "Exclude list",
            "type": "array",
            "description": "Post ids, URLs or account handles to never output. Skipped before any processing and never charged.",
            "items": {
              "type": "string"
            }
          },
          "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> — use your OpenAI / Anthropic / Gemini / Groq key instead; a free-tier key assesses only a few posts per run — expect 1–3 AI checks (2 calls at a time, one after a rate limit, then the 3 borderline posts retried one by one) — and the rest keep their rule score; a paid Groq / Gemini key (billing on) assesses every post.",
            "default": "apify"
          },
          "llmModel": {
            "title": "AI model",
            "type": "string",
            "description": "Leave empty for the default: <code>anthropic/claude-haiku-4.5</code> through Apify, <code>google:gemini-3.5-flash-lite</code> with your own key (a free Gemini key works as is). 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> or <code>groq:openai/gpt-oss-120b</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."
          },
          "sendAlertsTo": {
            "title": "Send alerts to (Slack, Discord, Teams, Google Chat, Telegram or webhook)",
            "type": "string",
            "description": "Paste one or more URLs, one per line — the service is detected from the address: a Slack or Discord channel webhook, a Teams Workflows or Google Chat space webhook, your Telegram bot's send link (<code>https://api.telegram.org/bot&lt;token&gt;/sendMessage?chat_id=@yourchannel</code>) or any other https URL (Zapier, Make, n8n, your CRM), which gets each qualified post as JSON. After every run with at least one new post, the digest (how many are new, the top 10 with headline and link) is posted there. Never sent for the free demo. Headers, batching, signing and one field per service: <i>Delivery details (advanced)</i>."
          },
          "dedupeAcrossRuns": {
            "title": "Never output the same post twice",
            "type": "boolean",
            "description": "Remembers every post you were charged for (in a named key-value store on your account) and skips it in future runs — even when the source's own cursor was reset.",
            "default": true
          },
          "dedupeTtlDays": {
            "title": "Deliver a post again after (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "How long a delivered post stays remembered. 0 = never deliver or charge it again (posts do not recur — keep 0).",
            "default": 0
          },
          "historyDatasetName": {
            "title": "Keep a running log (dataset name)",
            "type": "string",
            "description": "Optional. Type a name (e.g. <code>truth-social-alerts-log</code>) and every run appends its new posts with the date to that named dataset on your account — one labelled corpus across months to connect to Google Sheets or your BI tool once. Empty = off. Costs nothing extra.",
            "default": ""
          },
          "sourceMode": {
            "title": "Where do the posts come from?",
            "enum": [
              "actor",
              "dataset",
              "list"
            ],
            "type": "string",
            "description": "<b>actor</b> — read the accounts above live with the source Store Actor on your account, billed separately. <b>dataset</b> — an existing dataset of either source Actor. <b>list</b> — posts you paste in. <b>Bring your own data:</b> rows or a dataset ID, and you pay only for the analysis — the source Actor is never run. The mode you choose always runs as chosen; only the untouched sample posts next to accounts you typed switch to the live read (spend-capped). <code>{}</code> over the API runs the free demo — nothing charged.",
            "default": "actor"
          },
          "discoveryActorId": {
            "title": "Source Actor",
            "enum": [
              "tri_angle/truth-scraper",
              "muhammetakkurtt/truth-social-scraper"
            ],
            "type": "string",
            "description": "Affects what you pay: <b>tri_angle/truth-scraper</b> (default) — every account in one run, $0.005 per post + $0.0001 per run: ≈ $0.29 a month of run fees on a 15-minute schedule. <b>muhammetakkurtt/truth-social-scraper</b> — one run per account, $0.005 per post + $0.02 per run (≈ $58 a month per account on the same schedule).",
            "default": "tri_angle/truth-scraper"
          },
          "maxPostsPerAccount": {
            "title": "Max posts per account per run",
            "minimum": 5,
            "maximum": 1000,
            "type": "integer",
            "description": "Affects what you pay: the source bills ≈ $0.005 per post it returns, so 50 posts × 1 account ≤ $0.25 + the run fee. With <b>Only new posts</b> on, a scheduled run returns only what is new. Minimum 5.",
            "default": 50
          },
          "onlyNewPosts": {
            "title": "Only new posts since the last run",
            "type": "boolean",
            "description": "Uses the source's own last-post cursor (<code>useLastPostId</code> / <code>continueFromLastPostId</code>), so a schedule pays the source only for new posts. Our cross-run memory drops repeats on top.",
            "default": true
          },
          "autoSwitchToLive": {
            "title": "Typed accounts next to the sample start the live read",
            "type": "boolean",
            "description": "On (default): accounts typed next to the untouched sample posts start the live read (spend-capped; <code>OUTPUT.switchedToLive</code> names them). Off: the mode you send is the mode that runs — API pipelines that must never start a paid read on their own: send <code>false</code>.",
            "default": true
          },
          "datasetId": {
            "title": "Dataset",
            "type": "string",
            "description": "Only for <b>dataset</b> mode: a dataset of <code>muhammetakkurtt/truth-social-scraper</code> or <code>tri_angle/truth-scraper</code> output. Pick it so the Actor is granted read access."
          },
          "itemsList": {
            "title": "Posts to process",
            "type": "array",
            "description": "Only for <b>list</b> mode. JSON array of Truth Social posts in either source's shape: at least <code>id</code> or <code>url</code> plus <code>content</code> (or <code>text</code>), optionally <code>created_at</code>, <code>account.username</code> and the counts. The prefilled posts are fictional samples."
          },
          "discoveryInput": {
            "title": "Source Actor input (advanced)",
            "type": "object",
            "description": "Only for <b>actor</b> mode. Extra keys passed to every source run as-is, overriding ours (e.g. <code>{\"onlyMedia\": true}</code>). The live read runs that Store Actor on your Apify plan — if your plan cannot run Store Actors, paste your own posts in <b>list</b> mode (any plan); <b>dataset</b> only for a dataset you already have."
          },
          "maxToProcess": {
            "title": "Max candidates to process",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Upper bound on how many new posts are scored in one run (controls run time). Default = 3 × max qualified."
          },
          "webhookUrl": {
            "title": "Webhook URL (optional)",
            "type": "string",
            "description": "Each qualified post is POSTed here as JSON with <code>alertHeadline</code>, <code>summary</code>, <code>url</code>, <code>topic</code>, <code>marketRelevance</code> and <code>entities</code> (Zapier, Make, n8n, a Telegram bot). Stored encrypted — Zapier / Make hook URLs carry their secret in the path. A failed POST is retried and never fails the run."
          },
          "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 post the moment it is ready (per-post alerts). Higher = one POST per N posts (batched).",
            "default": 1
          },
          "webhookSecret": {
            "title": "Webhook signing secret (optional)",
            "type": "string",
            "description": "Any random string. Every webhook POST then carries <code>X-Signature: sha256=&lt;HMAC-SHA256 of the raw body with this secret&gt;</code>, so your endpoint can verify it came from this Actor. Stored encrypted by Apify, never logged."
          },
          "alertFooter": {
            "title": "Credit line under Discord / Telegram digests",
            "type": "boolean",
            "description": "Ends each Discord and Telegram digest with one small line, \"via Truth Social Alerts on Apify\" and the link, so your channel's members can find the source. Switch it off to post the alerts without it.",
            "default": true
          },
          "dedupeStoreName": {
            "title": "Dedupe store name",
            "type": "string",
            "description": "Key-value store used for cross-run memory. Left at the default, the memory is kept per search (source mode and filters): rewording <code>goalDescription</code> or adding an account keeps it, so a scheduled run never re-delivers what you already have. Running it for several desks or clients on one account, type one name per desk.",
            "default": "truth-social-alerts-ai-seen"
          },
          "discoveryTimeoutSecs": {
            "title": "Source run timeout, seconds (API only)",
            "minimum": 60,
            "maximum": 86400,
            "type": "integer",
            "description": "API only — hidden on the form. How long the source Store Actor may run before its partial results are used. Raise it when the status says the source stopped early.",
            "default": 3600
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL (API only)",
            "type": "string",
            "description": "API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Slack incoming-webhook URL for the digest."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL (API only)",
            "type": "string",
            "description": "API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Discord channel webhook URL for the digest."
          },
          "teamsWebhookUrl": {
            "title": "Microsoft Teams webhook URL (API only)",
            "type": "string",
            "description": "API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Teams Workflows webhook URL for the digest."
          },
          "googleChatWebhookUrl": {
            "title": "Google Chat webhook URL (API only)",
            "type": "string",
            "description": "API only — hidden on the form, where <code>sendAlertsTo</code> takes it. Google Chat space webhook URL for the digest."
          },
          "telegramUrl": {
            "title": "Telegram sendMessage link (API only)",
            "type": "string",
            "description": "API only — hidden on the form, where <code>sendAlertsTo</code> takes it. The bot's sendMessage link with its chat_id (<code>https://api.telegram.org/bot&lt;token&gt;/sendMessage?chat_id=@yourchannel</code>)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}