Stocktwits Sentiment Scraper
Pricing
from $1.00 / 1,000 results
Stocktwits Sentiment Scraper
Scrape real-time bullish/bearish sentiment from Stocktwits. Extract investor opinions, stock insights & market trends instantly. Perfect for traders & financial analysts seeking actionable trading data & sentiment-driven market analysis.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(2)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
47
Total users
12
Monthly active users
10 days ago
Last modified
Categories
Share
What does Stocktwits Sentiment Scraper do?
Stocktwits Sentiment Scraper collects current market discussion from Stocktwits and adds simple sentiment labels to each message. Run it without entering a URL or ticker: the Actor can return trending Stocktwits symbols, recent messages from their symbol streams, or both in one dataset.
The output is useful for trading research, market-monitoring dashboards, narrative analysis, alerting, and historical datasets. Each record includes source timestamps, symbols, message text, author details when available, engagement counts, and the original source payload.
Why use Stocktwits Sentiment Scraper?
- Track market attention - Rank symbols by their current Stocktwits trend position and available watchlist count.
- Collect investor discussion - Gather recent messages associated with the current trending symbol set.
- Filter by sentiment - Use
positive,neutral, ornegativelabels for quick analysis and alert rules. - Build repeatable datasets - Run on demand or schedule recurring collections in Apify for time-series research.
- Connect to workflows - Export results or send them to spreadsheets, webhooks, automation tools, and your own applications.
News collection is based on the symbols currently returned by Stocktwits trending data. The input does not accept a custom ticker list, so use maxNewsItems to control how many messages are saved from the automatically selected symbol streams.
What data can you extract from Stocktwits?
The dataset can contain trending-symbol records, market-message records, and error records when a source cannot be collected.
| Field | Type | Description |
|---|---|---|
type | String | Record type: trending_symbol, news_message, or error |
fetchedAt | String | ISO timestamp for when the record was collected |
rank | Integer | Position in the trending-symbol results |
symbol | String | Stocktwits symbol associated with the record |
title | String | Display name for a trending symbol |
id | Integer | Stocktwits symbol ID for trending records |
watchlist_count | Integer | Available watchlist count for a trending symbol |
messageId | Integer | Stocktwits message ID |
createdAt | String | Original publication timestamp for a message |
body | String | Market message text |
user | Object | Author object with id and username when available |
likes | Integer | Message like count when available |
sentimentScore | Integer | Numeric sentiment score when sentiment calculation is enabled |
sentimentLabel | String | positive, neutral, or negative when a score is available |
sourceUrl | String | Source URL associated with the record |
raw | Object | Original source object for additional fields |
endpoint | String | Failed collection source for an error record |
error | String | Error message for an error record |
Fields that do not apply to a record type are not included in that record. For example, rank is used for trending symbols, while body and sentimentLabel are used for market messages.
How to use Stocktwits Sentiment Scraper
- Open the Actor in Apify Console.
- Select the data you want to collect: trending symbols, market messages, or both.
- Set
maxSymbolsandmaxNewsItemsfor the size of the run. - Keep
computeSentimentenabled if you want sentiment scores and labels. - Run the Actor and review the dataset preview.
- Download the data or connect the dataset to your monitoring or analysis workflow.
For scheduled monitoring, create an Apify schedule and choose an interval that matches your research needs. Frequent runs can help capture changes in symbol attention and market discussion over time.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
includeTrendingSymbols | Boolean | No | true | Save records for current Stocktwits trending symbols |
maxSymbols | Integer | No | 20 | Maximum number of trending symbols to save, from 1 to 200 |
includeNews | Boolean | No | true | Collect market messages from the current trending symbol streams |
maxNewsItems | Integer | No | 20 | Maximum number of market messages to save, from 1 to 200 |
computeSentiment | Boolean | No | true | Calculate sentimentScore and sentimentLabel for messages |
timeoutSecs | Integer | No | 30 | Maximum wait time for each source request, from 1 to 300 seconds |
maxRetries | Integer | No | 3 | Number of attempts for a source request, from 1 to 10 |
proxyConfiguration | Object | No | - | Optional Apify Proxy configuration for collection reliability |
If both includeTrendingSymbols and includeNews are false, the Actor completes without collecting either dataset category. If includeNews is enabled, the Actor can still use current trending symbols to find market messages even when trending-symbol records are not saved.
Output Data
Trending symbol record
Trending records contain type, fetchedAt, rank, symbol, title, id, watchlist_count, sourceUrl, and raw.
Market message record
Message records contain type, fetchedAt, messageId, createdAt, symbol, body, user, likes, sentimentScore, sentimentLabel, sourceUrl, and raw.
When computeSentiment is false, sentimentScore and sentimentLabel are returned as null for message records. A message can also have a null sentiment value when its text is empty or unavailable.
Error record and run summary
If a collection source fails after its configured attempts, the dataset receives an error record with type, fetchedAt, endpoint, sourceUrl, and error. The run summary is saved in the Apify key-value store under the record name OUTPUT and includes ok, startedAt, the selected input modes, item counts, and an errors array.
Usage Examples
Basic collection
Collect both current trending symbols and market messages with sentiment enabled:
{"includeTrendingSymbols": true,"maxSymbols": 20,"includeNews": true,"maxNewsItems": 20,"computeSentiment": true}
Trending symbols only
Save a larger ranked list of trending symbols without collecting messages:
{"includeTrendingSymbols": true,"maxSymbols": 50,"includeNews": false}
Message collection without sentiment
Collect up to 100 messages while leaving sentiment fields unset:
{"includeTrendingSymbols": false,"includeNews": true,"maxNewsItems": 100,"computeSentiment": false}
Collection with proxy settings
Use an Apify Proxy configuration when your runs need additional network reliability:
{"includeTrendingSymbols": true,"maxSymbols": 50,"includeNews": true,"maxNewsItems": 100,"timeoutSecs": 60,"maxRetries": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
The following is one example of a market-message dataset item:
{"type": "news_message","fetchedAt": "2026-08-02T08:30:00.000Z","messageId": 123456789,"createdAt": "2026-08-02T08:28:41Z","symbol": "NVDA","body": "Investors are watching the next earnings update for guidance on data-center demand.","user": {"id": 987654,"username": "marketwatcher"},"likes": 12,"sentimentScore": 2,"sentimentLabel": "positive","sourceUrl": "https://api.stocktwits.com/api/2/streams/symbol/NVDA.json","raw": {"id": 123456789,"body": "Investors are watching the next earnings update for guidance on data-center demand."}}
Tips for Best Results
- Start with the default limits to confirm that the dataset contains the records you need.
- Increase
maxSymbolsandmaxNewsItemsgradually when building larger research datasets. - Keep
computeSentimentenabled for quick filtering, or disable it when you only need message text and metadata. - Use
createdAtto sort messages by publication time andfetchedAtto compare collection runs. - Treat sentiment as a simple text-based indicator and combine it with message timing, likes, symbol rank, and your own analysis.
- If a run includes error records, review the error text and retry with a smaller limit or a proxy configuration.
- Source pages and published fields can change. Report persistent issues through the Actor's Issues tab.
Integrations and Export Formats
- JSON - Use structured records in applications, scripts, and data pipelines.
- CSV - Analyze symbols and messages in spreadsheet or business-intelligence tools.
- Excel - Share filtered sentiment datasets with research and operations teams.
- Google Sheets - Maintain a collaborative market-monitoring workbook.
- Webhooks - Notify downstream services after a run finishes.
- Make and Zapier - Trigger alerts, notifications, or follow-up actions from new runs.
- Apify API - Retrieve datasets and the
OUTPUTrun summary programmatically.
Frequently Asked Questions
Do I need Stocktwits credentials?
No. The Actor is designed to collect publicly available Stocktwits data without user-supplied credentials.
Can I provide my own ticker list?
No. The current input does not include a custom-symbol parameter. Message collection uses the current Stocktwits trending symbols as its source set.
Can I run only one collection mode?
Yes. Set includeTrendingSymbols or includeNews to false to exclude that record type.
What happens when sentiment is disabled?
The Actor still collects market messages, but sentimentScore and sentimentLabel are set to null.
Can I export Stocktwits data to CSV or Excel?
Yes. Download the Apify dataset as CSV, Excel, JSON, XML, or another supported format after the run.
Can I run this Actor on a schedule?
Yes. Apify schedules can run the Actor hourly, daily, weekly, or at another interval you select.
Why are some fields empty?
Fields can be null when Stocktwits does not publish that value for a symbol or message. Error records can also appear when a source cannot be collected after the configured retries.
Is collecting Stocktwits data legal?
You are responsible for following Stocktwits terms, applicable laws, privacy requirements, and any restrictions that apply to your intended use of the data. Collect and use public data responsibly.
Related Actors
You can also find related data-collection Actors from Shahid Irfan's Apify profile:
Real Estate Actors
- iProperty Scraper - Collect Malaysian property listings with prices, locations, bedrooms, bathrooms, agent details, and listing links.
- Propertyfinder Scraper - Collect PropertyFinder UAE sale and rental listings with property details, pricing, location data, and broker information.
Jobs Actors
- Talent Job Scraper - Collect Talent.com job listings with titles, companies, locations, salary fields, descriptions, and source links.
- Jobsdb Scraper - Collect Jobsdb listings with structured job details such as titles, companies, and locations.
Support
For bugs, field changes, or feature requests, use the Issues tab on the Actor's Apify Store page. Include the run ID, input settings, and a short description of the unexpected result when requesting help.
Legal Notice
This Actor is intended for legitimate collection and analysis of publicly available Stocktwits data. Users are responsible for complying with Stocktwits terms, applicable laws, privacy rules, and any limitations on storing or redistributing collected content.