{
  "openapi": "3.0.1",
  "info": {
    "title": "Stocktwits Scraper",
    "description": "Collect current public Stocktwits messages, user posts, trending messages, and ranked symbols. Get source sentiment plus author and market context in structured rows. No Stocktwits login or API key is needed.",
    "version": "4.0",
    "x-build-id": "yXlpdgsD2dHi6tdp7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~stocktwits-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-stocktwits-scraper",
        "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/maximedupre~stocktwits-scraper/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-stocktwits-scraper",
        "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/maximedupre~stocktwits-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-stocktwits-scraper",
        "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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Result type",
            "enum": [
              "symbol",
              "user",
              "trending",
              "trending-streams",
              "trending-symbols"
            ],
            "type": "string",
            "description": "Choose messages for symbols, posts from users, trending messages, messages from trending tickers, or trending symbols."
          },
          "symbols": {
            "title": "Ticker symbols",
            "type": "array",
            "description": "For Symbol messages, enter one or more symbols listed on Stocktwits. Find each symbol in Stocktwits search or on its instrument page. Examples include AAPL, TSLA, BTC.X, and ETH.X, but other listed symbols work too. Enter the symbol, not a company or coin name.",
            "items": {
              "type": "string"
            },
            "default": [
              "AAPL",
              "TSLA",
              "NVDA",
              "SPY",
              "MSTR"
            ]
          },
          "usernames": {
            "title": "Stocktwits usernames",
            "type": "array",
            "description": "For User posts, enter one or more public Stocktwits usernames without @. Find the username in the profile URL or a message author's profile link. Use the username, not the display name. Some profiles may not be public or available.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxTrendingSymbols": {
            "title": "Trending symbol limit",
            "minimum": 0,
            "type": "integer",
            "description": "Set how many ranked trending symbols to collect. Used only for Trending symbols. Leave it empty or set 0 to collect all available results until the trending list has no more symbols."
          },
          "maxMessagesPerTarget": {
            "title": "Message limit per input or feed",
            "minimum": 0,
            "type": "integer",
            "description": "For all message choices, set how many matching messages to read per symbol or user, or from the Trending messages feed. A message counts toward each input's limit even if another input already saved it. Each message is saved only once. Leave empty or set 0 to continue until the public feed has no more available messages."
          },
          "sentiment": {
            "title": "Trader sentiment",
            "enum": [
              "all",
              "bullish",
              "bearish"
            ],
            "type": "string",
            "description": "For Symbol messages, User posts, Trending messages, and Trending ticker messages, keep all messages or only messages marked bullish or bearish by the author.",
            "default": "all"
          },
          "onlyPriceTargets": {
            "title": "Only posts with a price target",
            "type": "boolean",
            "description": "For all message choices, collect only posts with a source-reported price target. Leave this off to include posts with or without a price target.",
            "default": false
          },
          "newerThanMessageId": {
            "title": "Newer than message ID",
            "minimum": 1,
            "type": "integer",
            "description": "For all message choices, collect messages with an ID greater than this Stocktwits message ID. The message with this ID is excluded. Find the ID at the end of a Stocktwits message link, or use messageId from an earlier dataset. Leave empty to use no newer boundary."
          },
          "olderThanMessageId": {
            "title": "Older than message ID",
            "minimum": 1,
            "type": "integer",
            "description": "For all message choices, collect messages with an ID less than this Stocktwits message ID. The message with this ID is excluded. Find the ID at the end of a Stocktwits message link, or use messageId from an earlier dataset. Leave empty to use no older boundary."
          },
          "includeAuthorReceivedLikes": {
            "title": "Include author received likes",
            "type": "boolean",
            "description": "For all message choices, add the number of likes the message author got on their public Stocktwits posts. This is charged once per author. Leave it off to skip this data.",
            "default": false
          },
          "authorPostsForReceivedLikes": {
            "title": "Author posts to count",
            "minimum": 0,
            "type": "integer",
            "description": "Set how many of each author's latest public posts to read when counting received likes. Used only when Include author received likes is on. Set 0 to read all of the author's posts and get the full total, where available.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}