{
  "openapi": "3.0.1",
  "info": {
    "title": "Reddit Brand Monitoring - Keyword Alerts for Posts & Comments",
    "description": "Monitor Reddit for new posts and comments that mention your brand, competitors or keywords. Scheduled runs return only new mentions: keyword, post or comment, title, text, author, subreddit, link, date. $1.50 per 1,000 mentions plus $0.003 per keyword or subreddit per run; failed scans are free.",
    "version": "1.0",
    "x-build-id": "d0ONEWvEUJo9PYeDK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tenfoldfleet~reddit-brand-monitoring/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tenfoldfleet-reddit-brand-monitoring",
        "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/tenfoldfleet~reddit-brand-monitoring/runs": {
      "post": {
        "operationId": "runs-sync-tenfoldfleet-reddit-brand-monitoring",
        "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/tenfoldfleet~reddit-brand-monitoring/run-sync": {
      "post": {
        "operationId": "run-sync-tenfoldfleet-reddit-brand-monitoring",
        "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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Keywords to monitor",
            "type": "array",
            "description": "Brand names, product names, competitor names or phrases to watch for on Reddit, one per line, up to 100 per run. Each keyword is searched separately and every match is checked in the post or comment text before it is returned.",
            "items": {
              "type": "string"
            }
          },
          "monitorName": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "Runs with the same monitor name share a memory of the mentions already returned, so each scheduled run returns only what is new. Leave it empty and a saved task keeps its own memory (editing the task's keywords keeps it); a run outside a task ties the memory to its exact keyword list. Give it a name, such as \"acme-brand\", to share one memory between tasks or API calls. Use a different name for each brand or client."
          },
          "onlyNewMentions": {
            "title": "Only new mentions",
            "type": "boolean",
            "description": "On: skip mentions this monitor returned in earlier runs (the first run returns everything in the time window). Off: return every match in the time window on every run; each returned mention is charged.",
            "default": true
          },
          "timeWindow": {
            "title": "Look back (first run)",
            "enum": [
              "hour",
              "day",
              "week",
              "month",
              "year",
              "all"
            ],
            "type": "string",
            "description": "How far back the first run of a monitor searches: this is the backlog you get, up to the per-keyword limit. Later runs return what is new since the previous run, even when that run was longer ago than this window, and stop as soon as they reach mentions already returned.",
            "default": "week"
          },
          "matchMode": {
            "title": "Match keywords as",
            "enum": [
              "phrase",
              "allWords",
              "anyWord"
            ],
            "type": "string",
            "description": "\"Exact phrase\": the keyword's words must appear together in this order (case doesn't matter, whole words only). \"All words\": every word of the keyword appears somewhere in the post or comment. \"Any word\": at least one of the keyword's words appears.",
            "default": "phrase"
          },
          "excludeWords": {
            "title": "Exclude words",
            "type": "array",
            "description": "Skip a post or comment when its title or text contains any of these words or phrases (whole words, case doesn't matter). Skipped items are never charged. Example: for the brand \"Notion\" exclude \"the notion\".",
            "items": {
              "type": "string"
            }
          },
          "subreddits": {
            "title": "Subreddits",
            "type": "array",
            "description": "Optional. Subreddit names (\"shopify\", \"r/ecommerce\" or a subreddit link), up to 100 per run. Their latest comments are scanned for your keywords, and when \"Search all of Reddit\" is off, posts are searched only in these subreddits. Comment mentions are found only in the subreddits listed here.",
            "items": {
              "type": "string"
            }
          },
          "searchAllReddit": {
            "title": "Search posts on all of Reddit",
            "type": "boolean",
            "description": "On: search posts in every public subreddit. Off: search posts only in the subreddits listed above.",
            "default": true
          },
          "includeComments": {
            "title": "Scan comments in the listed subreddits",
            "type": "boolean",
            "description": "Read the newest comments of each listed subreddit and return the ones that mention a keyword. Reddit's search does not return comments, so this is how comment mentions are found. Each subreddit read costs one subreddit scan ($0.003) per run.",
            "default": true
          },
          "commentsPerSubreddit": {
            "title": "Comments to scan per subreddit",
            "minimum": 100,
            "maximum": 1000,
            "type": "integer",
            "description": "How many of the newest comments to read in each listed subreddit per run (100 per page). Reddit lists at most about 1,000. Busy subreddits get thousands of comments a day, so schedule busy ones more often. Later runs stop early when they reach comments already scanned.",
            "default": 300
          },
          "maxMentionsPerKeyword": {
            "title": "Max new mentions per keyword",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper limit of mentions returned for each keyword in one run. Free Apify plan: at most 50 mentions per run in total.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The Apify datacenter proxy is used by default and is included in the price. Residential proxy groups are ignored.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}