{
  "openapi": "3.0.1",
  "info": {
    "title": "Reddit Post View Booster API",
    "description": "Boost views on any Reddit post — on demand. Deliver from a few to thousands of real view events through your own proxies, instantly or spread naturally over time. Pay only for views that land. Simple API, fully automatable",
    "version": "0.0",
    "x-build-id": "SPoBMvUnff8AovIKq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/webm~reddit-post-view-booster-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-webm-reddit-post-view-booster-api",
        "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/webm~reddit-post-view-booster-api/runs": {
      "post": {
        "operationId": "runs-sync-webm-reddit-post-view-booster-api",
        "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/webm~reddit-post-view-booster-api/run-sync": {
      "post": {
        "operationId": "run-sync-webm-reddit-post-view-booster-api",
        "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": [
          "postUrl",
          "proxyUrls"
        ],
        "properties": {
          "action": {
            "title": "Action",
            "type": "string",
            "description": "Which operation to run. Only 'boost-views' is available for now.",
            "default": "boost-views"
          },
          "postUrl": {
            "title": "Post or comment URL",
            "type": "string",
            "description": "Full Reddit post URL (…/comments/<id>/…) to boost post views, or a comment permalink (…/comments/<id>/comment/<commentId>/…) to boost views on that comment thread. Post type (subreddit vs profile) and post vs comment are auto-detected."
          },
          "quality": {
            "title": "View quality",
            "enum": [
              "low",
              "high"
            ],
            "type": "string",
            "description": "Anonymous views, or maximum realism (higher quality, higher price).",
            "default": "low"
          },
          "count": {
            "title": "View count",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many views to send. Free plan is capped to 100; paid up to 100000.",
            "default": 5000
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "fast",
              "random",
              "wave"
            ],
            "type": "string",
            "description": "How views are delivered. 'fast' = immediate burst (up to 5000 views in flight), no time needed. 'random' = spread uniformly over a time window (requires 'spreadSeconds'). 'wave' = fast rise then gentle decline over a time window (requires 'spreadSeconds').",
            "default": "fast"
          },
          "spreadSeconds": {
            "title": "Spread window (seconds)",
            "minimum": 1,
            "maximum": 86400,
            "type": "integer",
            "description": "Time window to spread the views over (max 86400 = 24h). Required for 'random' and 'wave'; ignored for 'fast'. Rejected if below the minimum feasible window for the given view count."
          },
          "maxTries": {
            "title": "Max tries per view",
            "minimum": 1,
            "type": "integer",
            "description": "Retries per view on a transport error / 5xx / 429 — each retry moves to the next proxy.",
            "default": 3
          },
          "postType": {
            "title": "Post type",
            "type": "string",
            "description": "Event shape. 'auto' detects it from the URL (…/user/<name>/comments/… → profile, …/r/<sub>/comments/… → subreddit). Force with 'profile' or 'subreddit'.",
            "default": "auto"
          },
          "proxyUrls": {
            "title": "Proxy URLs (your own) — required",
            "minItems": 1,
            "type": "array",
            "description": "Your own proxy URLs (required). Reddit blocks datacenter/shared server IPs, so you need GOOD proxies whose IPs Reddit hasn't flagged — e.g. a quality shared-datacenter provider like DataImpulse. Apify's own proxies (datacenter and residential) are blocked by Reddit. The actor rotates through them and retries a failed view on the next. Format: http://user:pass@host:port",
            "items": {
              "type": "string"
            }
          },
          "csrf": {
            "title": "CSRF token",
            "type": "string",
            "description": "Optional CSRF token captured from a real Reddit event request."
          },
          "userAgent": {
            "title": "User-Agent (force one)",
            "type": "string",
            "description": "Force a single User-Agent for every view. Leave empty to auto-generate a realistic browser fingerprint (User-Agent + client hints) per view."
          },
          "postId": {
            "title": "Post ID override",
            "type": "string",
            "description": "Override the t3_<id> normally derived from postUrl."
          },
          "post": {
            "title": "Post object overrides",
            "type": "object",
            "description": "Override fields of the event's post object (merged over the captured defaults)."
          },
          "subreddit": {
            "title": "Subreddit block overrides",
            "type": "object",
            "description": "For subreddit posts only. Override the event's subreddit block, e.g. { \"id\": \"t5_...\", \"name\": \"...\" }. The name is derived from the URL by default."
          },
          "microappRoute": {
            "title": "x-sh-microapp-route",
            "type": "string",
            "description": "Override the x-sh-microapp-route header. Leave empty to use the value for the detected post type (profile → 'profiles', subreddit → 'pdp')."
          },
          "pageType": {
            "title": "page_type",
            "type": "string",
            "description": "Override action_info.page_type. Leave empty for 'post_detail'."
          },
          "routeName": {
            "title": "route_name",
            "type": "string",
            "description": "Override action_info.route_name. Leave empty to use the value for the detected post type (profile → 'profile_post_page', subreddit → 'post_page')."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}