{
  "openapi": "3.0.1",
  "info": {
    "title": "Reddit Leads Scraper",
    "description": "Scan the newest posts in subreddits you choose for buying-intent leads. Returns title, snippet, author, post URL, matched phrases, a rule-based 0-100 intent score, hot/warm/cold tier and a reply angle. Reads about 25 posts per subreddit and feed, up to 20 subreddits. No login.",
    "version": "0.3",
    "x-build-id": "jIIAiKYfFi1fqBvnF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~reddit-lead-miner/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-reddit-lead-miner",
        "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/axiomworks~reddit-lead-miner/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-reddit-lead-miner",
        "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/axiomworks~reddit-lead-miner/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-reddit-lead-miner",
        "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": [
          "subreddits"
        ],
        "properties": {
          "subreddits": {
            "title": "Subreddits",
            "uniqueItems": true,
            "type": "array",
            "description": "Required. Array of 1-20 subreddit names or URLs to scan, e.g. [\"SaaS\", \"r/smallbusiness\", \"https://www.reddit.com/r/webdev/\"]. Each subreddit and feed scans about 25 of the newest posts. Invalid names are skipped; if none is valid the run fails.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords / phrases",
            "type": "array",
            "description": "Array of your product or category terms matched against post titles and bodies, case-insensitive, e.g. [\"CRM\", \"email marketing tool\"]. Optional ([] allowed) when useBuiltInIntentPhrases is true and requireKeywordMatch is false; with requireKeywordMatch true (default) and no keywords, no post qualifies.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "useBuiltInIntentPhrases": {
            "title": "Use built-in buying-intent phrases",
            "type": "boolean",
            "description": "true/false, default true. Also match generic buying signals such as 'looking for', 'recommend', 'alternative to', 'worth it', which raise the intent score. Example: true.",
            "default": true
          },
          "requireKeywordMatch": {
            "title": "Require a keyword match",
            "type": "boolean",
            "description": "true/false, default true. When true only posts containing at least one of your keywords are returned (built-in phrases then only raise the score). Set false to return posts matching built-in buying-intent phrases alone.",
            "default": true
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Array of words or phrases; posts whose title or body contains any are skipped, e.g. [\"hiring\", \"for hire\", \"crypto\"]. Optional, default [] (no exclusion).",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxAgeHours": {
            "title": "Max post age (hours)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional integer >= 1. Only consider posts published within this many hours, e.g. 24 for the last day, 168 for a week. Omit for no age limit."
          },
          "skipSeenPosts": {
            "title": "Skip posts from earlier runs",
            "type": "boolean",
            "description": "true/false, default false. When true, posts returned in earlier runs are not returned again (ids kept in a named key-value store), so scheduled runs deliver only new leads.",
            "default": false
          },
          "feeds": {
            "title": "Feeds",
            "uniqueItems": true,
            "type": "array",
            "description": "Array of listing feeds to scan per subreddit: any of \"new\", \"hot\", \"rising\". Default [\"new\"] (fastest signal). Each extra feed scans about 25 more posts per subreddit, and every post scanned is billed.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "hot",
                "rising"
              ],
              "enumTitles": [
                "New",
                "Hot",
                "Rising"
              ]
            },
            "default": [
              "new"
            ]
          },
          "minScore": {
            "title": "Minimum intent score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Integer 0-100, default 0. Only return leads with intent_score at least this. Example: 40 returns warm and hot leads only (hot is 70+, warm 40-69).",
            "default": 0
          },
          "maxResults": {
            "title": "Max leads",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Integer 1-500, default 100. Maximum leads returned, highest intent score first. Example: 10. Billing is per post scanned (about 25 per subreddit per feed), not per lead returned, so fewer subreddits and feeds lower cost, not this.",
            "default": 100
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Optional integer 1-500. Alias for maxResults; when set it overrides maxResults. Example: 5."
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 500,
            "maximum": 10000,
            "type": "integer",
            "description": "Integer 500-10000 ms, default 2000. Pause between feed fetches; Reddit rate-limits aggressively. Example: 1500.",
            "default": 2000
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings object, e.g. {\"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"]}. Reddit blocks datacenter IPs, so residential is used automatically on Apify if omitted. {\"useApifyProxy\": false} connects directly (works only from a home or office IP)."
          },
          "postTypes": {
            "title": "Post types",
            "type": "array",
            "description": "Post types to keep: text, link, image or video. Default [] keeps all types. Use [\"text\"] to focus on discussions. Classification uses links in the public RSS feed; this filters leads after scanning and does not change scan billing.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "link",
                "image",
                "video"
              ]
            },
            "default": []
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}