Truth Social Scraper
Pricing
from $4.00 / 1,000 results
Truth Social Scraper
Scrape Truth Social profiles, posts, replies, comments, search, hashtags and trending truths. The mode is detected automatically from your input.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
19 days ago
Last modified
Categories
Share
What is Truth Social Scraper?
Truth Social Scraper extracts public Truth Social posts ("truths"), profiles, comment threads, keyword and hashtag search results and trending truths, and returns them as clean dataset rows. Each post row has the post id, url, plain-text content, createdAt, language, author handle, display name, verification and follower count, reply, retruth and like counts, reply and retruth flags, media, mentions and hashtags. Political analysts, journalists, traders watching market-moving posts, OSINT researchers and AI agents use it to monitor public figures and topics, starting from a username, URL, post ID, #hashtag or the word trending.
Best fit for this Actor
- Designed for monitoring public voices. Use it to track what prominent accounts post, archive statements as they appear, and measure engagement per post.
- One input box, auto-detected.
queryaccepts a username, profile URL, post URL or 18-digit ID, a#hashtagortrending, and the Actor picks the mode. - Scheduled monitoring.
sinceLastRunreturns only posts newer than the last run for each profile or hashtag, which suits hourly or daily schedules. - Batch jobs.
startUrlstakes many profile, post and hashtag URLs in one run. - Cross-platform view. When you want the same story from X, then use X (Twitter) Tweet Scraper with the same names or keywords and compare the two datasets.
- Community reaction elsewhere. For discussion threads on the same topic, continue with Reddit Posts Scraper.
What people and AI agents ask this Actor to do
Get the latest 50 truths from realDonaldTrump. Pull this post and its comment thread. Search Truth Social for posts about tariffs. Give me only new posts from these accounts since yesterday's run.
| Request | Input to send |
|---|---|
| Latest posts from a prominent account | {"query": "realDonaldTrump", "maxResults": 50} |
| Posts with media only | {"query": "realDonaldTrump", "onlyMedia": true, "maxResults": 25} |
| Profile card plus posts | {"query": "realDonaldTrump", "includeProfileInfo": true} |
| One post and its comments | {"query": "https://truthsocial.com/@realDonaldTrump/117340294147897033", "includeComments": true, "maxComments": 100} |
| Keyword search | {"searchTerms": ["tariffs"], "searchType": "statuses", "maxResults": 200} |
| New posts only on a schedule | {"query": "realDonaldTrump", "sinceLastRun": true} |
Workflow example: a market-signal alert
A trading desk starts with query set to realDonaldTrump, sinceLastRun on and maxResults at 20, and schedules the run every 15 minutes. Each run returns only new truths with content, createdAt and engagement counts. The desk feeds content into a keyword filter for words like tariff, rate or sanction, then pushes matching rows to a chat alert with the post url. At the end of the week the analyst exports the dataset and compares likesCount and retruthsCount across topics.
How to scrape Truth Social
- Put a username, profile URL, post URL or ID,
#hashtagortrendingin Query. Use Search terms for keywords or Start URLs for a batch. - Set Maximum results to cap the number of rows.
- Click Start, then export the dataset or read it through the API.
Input
{"query": "realDonaldTrump","maxResults": 50,"includeReplies": false,"onlyMedia": false,"cleanContent": true,"sinceLastRun": false}
| Field | Type | What it controls |
|---|---|---|
query | string | Username, profile URL, post URL or ID, #hashtag, or trending. Default realDonaldTrump. |
searchTerms | array | Keywords or hashtags to search. Runs with an access token. |
startUrls | array | Many profile, post or hashtag URLs in one run, each auto-detected. |
mode | string | auto by default; or force profile, post, comments, search, hashtag, trending or profileMetadata. |
maxResults | integer | Total rows for the run. Default 50. |
includeReplies | boolean | Add the account's reply posts in profile mode. Default false. |
onlyMedia | boolean | Keep posts with images or video in profile and hashtag modes. Default false. |
includeComments | boolean | Add a single post's comment thread. Default false. |
maxComments | integer | Comments per post when the thread is on. Default 40. |
searchType | string | statuses, accounts or hashtags for keyword search. Default statuses. |
includeProfileInfo | boolean | Add one profile row (bio, counts, avatar) before the posts. Default false. |
cleanContent | boolean | Plain-text content; set false to keep HTML in contentHtml. Default true. |
sinceLastRun | boolean | Return only posts newer than the previous run, per target. Default false. |
accessToken, username, password | string | Optional sign-in for comments, search, hashtag, trending and smaller profiles. Stored encrypted. |
proxyConfiguration | object | Apify Proxy. Residential is preset and recommended. |
Output
| Field | What it contains |
|---|---|
type | Record kind, such as post |
id, url | Post ID and public link |
content, language, createdAt | Post text, language and publish time |
authorUsername, authorDisplayName, authorId | Author identity |
authorVerified, authorFollowers | Author verification and audience size |
repliesCount, retruthsCount, likesCount | Engagement counts |
isReply, isRetruth | Post type flags |
hasMedia, mediaCount, media | Attached images or video |
mentions, hashtags | Structured mentions and tags |
sourceUrl, scrapedAt | The input that produced the row, and collection time |
{"type": "post","id": "117340294147897033","url": "https://truthsocial.com/@realDonaldTrump/117340294147897033","content": "We have the BEST FINANCIAL NUMBERS EVER, and the FAKE NEWS MEDIA refuses to report them!!! President DJT","createdAt": "2026-09-27T00:59:56.934Z","language": "en","authorUsername": "realDonaldTrump","authorDisplayName": "Donald J. Trump","authorId": "107780257626128497","authorVerified": true,"authorFollowers": 13080832,"repliesCount": 1609,"retruthsCount": 2795,"likesCount": 10061,"isReply": false,"isRetruth": false,"hasMedia": false,"mediaCount": 0,"media": [],"mentions": [],"hashtags": [],"scrapedAt": "2026-09-27T06:48:13.844Z","sourceUrl": "realDonaldTrump"}
Comment rows follow the same post shape, and profile rows from includeProfileInfo or profileMetadata carry the account's bio and counts.
Public and signed-in modes
Public mode covers the profiles, posts and profile metadata of prominent accounts such as realDonaldTrump, with no credentials. Comment threads, keyword search, hashtag timelines, trending truths and smaller profiles run when you add an access token from your own Truth Social session, or a username and password that the Actor exchanges for a token at runtime. Credentials stay encrypted in the input and are kept out of logs and output.
Pricing
This Actor uses Pay per event plus Apify platform usage. Two events apply: Actor Start once per run, and Result once per row written to the dataset, whether that row is a post, comment, profile or hashtag. For example, one post with its first 100 comments creates 101 Result events and one Actor Start event, plus the platform usage for the run. maxResults sets the ceiling on Result events. The live Pricing tab on this page shows the current event prices.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~truth-social-all-in-one-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"query": "realDonaldTrump", "maxResults": 20}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/truth-social-all-in-one-scraper").call(run_input={"query": "realDonaldTrump","maxResults": 20,"sinceLastRun": True,})for post in client.dataset(run["defaultDatasetId"]).iterate_items():print(post["createdAt"], post["likesCount"], post["content"][:80])
Use with AI agents through Apify MCP
Connect this Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask:
Get the latest 20 truths from realDonaldTrump. Summarize the main topics, list the three posts with the most likes with their URLs and times, and tell me how many rows came back.
Agent checklist:
- Put the account, URL, hashtag or
trendinginquery, and setmaxResultsas the cost ceiling. - Use public mode for prominent accounts; add an access token for comments, search, hashtags or trending.
- Read rows with
get-dataset-itemsand cite each post'surlandcreatedAt. - Turn on
sinceLastRunfor scheduled monitoring so each run returns only fresh posts.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| Monitoring a public figure | Schedule with sinceLastRun on | Only new posts each run |
| Visual content research | Set onlyMedia to true | Posts with images or video |
| Text for NLP or an LLM | Keep cleanContent at true | Plain text in content |
| Full conversation context | Set includeReplies to true | The account's replies as well as top-level posts |
| Many accounts at once | List profile URLs in startUrls | One dataset across all targets |
| Discussion around one post | Use the post URL with includeComments | The post plus its comment rows |
Builder's note
I built this around one auto-detecting input, because people arrive with a name, a link or a hashtag and should not have to pick a mode first. I found that most demand is for monitoring prominent accounts, so public mode covers that job with no credentials, and the incremental flag keeps scheduled runs lean. My goal was one row shape for posts and comments, so the same downstream sheet or agent prompt works for every mode.
FAQ
Do I need a Truth Social account?
No for prominent accounts' posts and profiles. An access token unlocks comments, search, hashtags, trending and smaller profiles.
Can I get only new posts?
Yes. Set sinceLastRun to true and schedule the Actor; each target remembers its newest post.
How do I keep HTML formatting?
Set cleanContent to false, and the original markup appears in contentHtml.
Which proxy should I use?
Keep the preset Residential proxy for steady access.
Responsible use
This Actor collects publicly available Truth Social content for research, journalism, market analysis and monitoring. Use it in line with Truth Social's terms and applicable laws, including data-protection and copyright law, and use credentials only for accounts you are authorized to use. Truth Social is a trademark of its owner, and this independent Actor is not affiliated with or endorsed by Truth Social or Trump Media & Technology Group.