{
  "openapi": "3.0.1",
  "info": {
    "title": "Reddit Trending Topics Finder",
    "description": "Discover what is starting to trend on Reddit. Analyse recent posts across Reddit or selected communities, measure score and comment velocity, cluster repeated themes, and get ranked trending topics with evidence posts, subreddit spread and momentum scores. No Reddit login or API key.",
    "version": "1.0",
    "x-build-id": "XAfF8Wb25OrpHabj8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/coregent~reddit-trending-topics-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-coregent-reddit-trending-topics-finder",
        "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/coregent~reddit-trending-topics-finder/runs": {
      "post": {
        "operationId": "runs-sync-coregent-reddit-trending-topics-finder",
        "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/coregent~reddit-trending-topics-finder/run-sync": {
      "post": {
        "operationId": "run-sync-coregent-reddit-trending-topics-finder",
        "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": {
          "mode": {
            "title": "Discovery mode",
            "enum": [
              "HYBRID",
              "POPULAR",
              "SUBREDDITS",
              "SEEDS"
            ],
            "type": "string",
            "description": "Where to look for trends. POPULAR analyses Reddit's popular feed. SUBREDDITS analyses the communities you list. SEEDS searches Reddit for each seed topic and finds the themes inside the results. HYBRID combines the popular feed with every subreddit and seed topic you give — the recommended mode for broad research.",
            "default": "HYBRID"
          },
          "subreddits": {
            "title": "Subreddits",
            "type": "array",
            "description": "Communities to analyse, one per line (up to 100). Any form works: technology, r/technology or https://www.reddit.com/r/technology/. Used in SUBREDDITS and HYBRID mode.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "seedTopics": {
            "title": "Seed topics",
            "type": "array",
            "description": "Broad themes to search Reddit for, one per line (up to 25) — for example 'AI agents', 'home batteries', 'gaming handhelds'. The Actor finds the specific sub-topics rising inside the results; the seed itself is never returned as a topic. Used in SEEDS and HYBRID mode.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "timeWindow": {
            "title": "Time window",
            "enum": [
              "6_HOURS",
              "12_HOURS",
              "24_HOURS",
              "3_DAYS",
              "7_DAYS",
              "14_DAYS",
              "30_DAYS"
            ],
            "type": "string",
            "description": "Only posts created inside this window are analysed. 24 hours suits fast-moving communities; 7 days suits general trend research.",
            "default": "7_DAYS"
          },
          "postsPerSource": {
            "title": "Posts per source",
            "minimum": 10,
            "maximum": 500,
            "type": "integer",
            "description": "How many recent posts to analyse from each source. A source is one feed: the popular feed's Hot list, one subreddit's Rising list, one seed topic's search results. More posts find smaller topics but take longer. Seed-topic searches stop at Reddit's own limit of about 250 results.",
            "default": 100
          },
          "sortSources": {
            "title": "Reddit feeds to read",
            "type": "array",
            "description": "Which of Reddit's own sorts to read for each source. Rising shows early momentum, Hot strong current engagement, New recency, Top the window's most engaged posts. Do not rely on Top alone: high past engagement is not current momentum. Seed-topic searches have no Rising sort and use the others. The form starts with Hot and Rising; add New to read each scope's newest posts too.",
            "items": {
              "type": "string",
              "enum": [
                "HOT",
                "RISING",
                "NEW",
                "TOP"
              ],
              "enumTitles": [
                "Hot",
                "Rising",
                "New",
                "Top"
              ]
            },
            "default": [
              "HOT",
              "RISING",
              "NEW"
            ]
          },
          "minimumPostsPerTopic": {
            "title": "Minimum posts per topic",
            "minimum": 2,
            "maximum": 50,
            "type": "integer",
            "description": "A topic needs at least this many distinct posts. A single viral post is not a trending topic; 3 is the recommended floor. Copies of the same content (crossposts, reposts) count once.",
            "default": 3
          },
          "minimumAuthorsPerTopic": {
            "title": "Minimum authors per topic",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "A topic needs posts from at least this many different authors, so one account posting repeatedly is not mistaken for a trend.",
            "default": 2
          },
          "minimumSubredditsPerTopic": {
            "title": "Minimum subreddits per topic",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "A topic needs posts from at least this many communities. 1 keeps single-community trends, which are often the most useful; set 2 or more to see only themes spreading across Reddit.",
            "default": 1
          },
          "minimumTrendTier": {
            "title": "Minimum trend tier",
            "enum": [
              "BREAKOUT",
              "RISING",
              "ACTIVE",
              "WEAK"
            ],
            "type": "string",
            "description": "Lowest tier to return. BREAKOUT: strong recent acceleration across several posts or communities. RISING: clear positive momentum. ACTIVE: current discussion with limited acceleration. WEAK: low momentum or confidence.",
            "default": "ACTIVE"
          },
          "maxTopics": {
            "title": "Max topics",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "The most topics to return, highest trend score first. Each topic delivered is one billable result.",
            "default": 50
          },
          "minimumScore": {
            "title": "Minimum post score",
            "minimum": 0,
            "type": "integer",
            "description": "Ignore posts with fewer upvotes than this. 0 keeps everything. A post whose score Reddit hides is kept.",
            "default": 0
          },
          "minimumComments": {
            "title": "Minimum post comments",
            "minimum": 0,
            "type": "integer",
            "description": "Ignore posts with fewer comments than this. 0 keeps everything.",
            "default": 0
          },
          "excludeNSFW": {
            "title": "Exclude NSFW posts",
            "type": "boolean",
            "description": "Leave out posts Reddit marks as NSFW. Reddit's logged-out feeds already omit most of them.",
            "default": true
          },
          "excludeCrossposts": {
            "title": "Exclude crossposts",
            "type": "boolean",
            "description": "Leave crossposts out entirely. Off by default: a crosspost and its original are counted once as one piece of content, while the communities it spread to still count towards the topic's reach.",
            "default": false
          },
          "includeEvidencePosts": {
            "title": "Include evidence posts",
            "type": "boolean",
            "description": "Attach the posts that best support each topic — chosen for recent breakouts and for variety of authors, communities and feeds, not only by score.",
            "default": true
          },
          "maxEvidencePosts": {
            "title": "Evidence posts per topic",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many supporting posts to attach to each topic.",
            "default": 5
          },
          "includeCommentsSignal": {
            "title": "Add a comment signal",
            "type": "boolean",
            "description": "Read a small sample of top comments on the fastest-moving posts and use them to find emerging phrases. Adds one request per sampled post (at most 60). Off by default; this is a sample, not a comment scraper.",
            "default": false
          },
          "maxCommentsPerEvidencePost": {
            "title": "Comments sampled per post",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "How many top comments to read per sampled post. Only used with 'Add a comment signal'.",
            "default": 10
          },
          "maxConcurrency": {
            "title": "Sources in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many sources to read at once (1–10). Each runs on its own proxy session with its own Reddit rate budget.",
            "default": 5
          },
          "debugMode": {
            "title": "Debug mode",
            "type": "boolean",
            "description": "Log every page fetched and every exclusion reason.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Datacenter proxy (the default) or no proxy both work. Apify RESIDENTIAL proxy is refused and fails the run at startup: Reddit feed pages are large and residential bandwidth is billed to the Actor, while Reddit serves the same pages to datacenter addresses. To route through your own residential provider, use Custom proxy URLs — that traffic goes through your account and is honoured.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}