Truth Social Scraper - Posts, Replies, Profiles & Media
Pricing
from $1.40 / 1,000 posts
Truth Social Scraper - Posts, Replies, Profiles & Media
Scrape Truth Social posts, replies, media and profiles by handle or post URL: text, likes, ReTruths, replies, video links, quotes, polls and author stats. Date filters, pinned posts and a monitor that also flags edited and deleted posts. No login. $1.40 per 1,000 posts.
Pricing
from $1.40 / 1,000 posts
Rating
0.0
(0)
Developer
Top Api
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Truth Social Scraper do?
Truth Social Scraper extracts Truth Social posts and profiles from truthsocial.com and turns handles, profile URLs or post URLs into structured rows: one row per post (Truth, reply, ReTruth, quote) with its text, date, likes, ReTruths, replies, media and link, plus one profile row per account with followers, posts count, bio and website. Built for journalists, political analysts, researchers and market watchers who track what public figures post on Truth Social.
Truth Social scraper ยท Truth Social API ยท Trump Truth Social tracker ยท Truth Social posts scraper
- Posts, replies, media posts and pinned posts of any public profile, newest first, with likes (
favouritesCount), ReTruths, replies, upvotes and downvotes - Posts by URL or id, and the posts Truth Social shows signed-out visitors on its home page (the landing feed)
- Full post context: the post a reply answers (
inReplyTo), the reposted post (reblog), the quoted post (quote), video MP4 links with duration, link previews, polls and groups - Monitor mode for schedules: only posts not delivered before, plus a free notice when a watched post is edited or deleted
- Date windows that seek:
postedBeforejumps straight to a date, so a past week costs only that week's pages - No login, cookies or Truth Social account: you paste handles or URLs, nothing else
- Export anywhere: JSON, CSV, Excel, XML; schedules, webhooks, Make, Zapier, n8n, Google Sheets, Slack, the Apify API and MCP
What data can you get from Truth Social?
๐ Post id and URL (id, url) | ๐ Text, plain (text) and HTML (content) | ๐
Posted and edited (createdAt, editedAt) |
โค๏ธ Likes (favouritesCount) | ๐ ReTruths (reblogsCount) | ๐ฌ Replies (repliesCount) |
| ๐ Upvotes and downvotes | ๐ผ๏ธ Photos and videos (mediaAttachments, videoUrls) | ๐ Link preview (linkUrl, linkTitle, linkImage) |
โฉ๏ธ Parent post of a reply (inReplyTo) | ๐ Reposted post (reblog, rebloggedFromUrl) | ๐ญ Quoted post (quote) |
| ๐ท๏ธ Hashtags and mentions | ๐ Polls with vote counts | ๐ฅ Truth Social group |
| ๐ค Author handle, name, avatar | ๐ Author followers, following, posts | โ Verified, join date, bio, website |
๐ Pinned flag (isPinned) | ๐งพ Truth Social's own object (raw, optional) | ๐๏ธ Profile row: followers, posts count, recent averages |
On a 1,000-post run of @realDonaldTrump (2026-10-08), every row had its id, URL, date, likes, ReTruths, replies and author counts; 61% had text (the rest are photo- or video-only posts, whose content is an empty <p></p>), 56% media, 22% a video file, 18% a link preview. On a 100-post run across five official accounts, 90% had text and 27% a link preview.
How to scrape Truth Social with Truth Social Scraper
- Create a free Apify account โ $5 of monthly credit, no card needed.
- Open Truth Social Scraper and click Try for free.
- Paste handles or profile URLs into Profiles (or post URLs into Post URLs or ids) and set Max posts per profile.
- Click Start. Rows stream into the dataset as each page is read.
- Open the Storage tab and Export as JSON, CSV or Excel, or schedule the run with Monitor mode on.
โฌ๏ธ Input
| Parameter | Type | Description |
|---|---|---|
| ๐ What to scrape | ||
profiles | List | Handles or profile URLs: realDonaldTrump, @WhiteHouse, https://truthsocial.com/@DonaldJTrumpJr. |
postUrls | List | Post URLs or ids: https://truthsocial.com/@realDonaldTrump/posts/117394656543560911, 117394656543560911. Delivered as asked: the filters below do not apply to them (in monitor mode each post comes once per memory; maxItems and the run's maximum charge still count them). |
includeLandingFeed | Boolean | Also read the guest landing feed (about 11 recent posts). Default false |
contentType | Select | posts (default), replies, posts-and-replies, profile-details (profile rows only) |
| ๐ฏ Filters (applied while fetching: by Truth Social where its API supports it, otherwise by the actor, before anything is written or charged) | ||
onlyMedia | Boolean | Only posts with a photo or video. Default false |
includePinned | Boolean | Also read pinned posts (delivered first, isPinned: true); the date and id filters apply to them too. Default false |
includeMuted | Boolean | Include muted posts, as the site does. Default true |
postedAfter | Text | Date or relative (2026-09-01, 7 days, 12 hours); the timeline stops at the first older post, and older pinned or landing-feed posts are skipped |
postedBefore | Text | Date or relative; only older posts are kept (a bare date means 00:00 UTC, so that day itself is left out). The walk starts at that date, and newer pinned or landing-feed posts are skipped. Ignored in monitor mode |
| โ๏ธ Refine results | ||
includeReblogs | Boolean | Keep ReTruths. Default true |
keywords | List | Keep posts containing any of these words |
minFavourites | Integer | Minimum likes. Default 0 |
| โ Extra data | ||
includeProfile | Boolean | One profile row per handle, charged as profile ($0.004). In monitor mode only on a handle's first run (a contentType: "profile-details" monitor: the first run, then only when followers, bio or another tracked field changed). Default true |
| ๐ Monitoring | ||
monitorMode | Boolean | Only posts not delivered by earlier runs with the same memory name. The memory is kept per profile and content type, for the post URLs and for the landing feed |
monitorStoreName | Text | Memory name. Default truth-social-monitor |
emitEdited / emitDeleted | Boolean | Free notice rows for watched posts that were edited or deleted |
peek | Boolean | Return new posts without updating the memory |
sinceId / maxId | Text | Only posts above an id / start the walk below an id (resume a backfill); pinned and landing-feed posts outside the ids are skipped |
| ๐ฆ Output | ||
maxPostsPerProfile | Integer | Default 100; 0 = everything Truth Social serves, up to 20,000 posts per profile per run (continue with maxId = the nextMaxId in RUN_SUMMARY) |
maxItems | Integer | Cap on post rows for the whole run. Default 0 (no cap) |
compact | Boolean | Core fields only, for AI agents and MCP |
includeRaw | Boolean | Add Truth Social's own JSON object |
| โ๏ธ Advanced | ||
proxyConfiguration | Proxy | Default: Apify residential, US |
maxConcurrency | Integer | Profiles read in parallel. Default 3 |
The rivals' input names are accepted too (usernames, username, identifiers, startUrls, resultsType, maxPosts, onlyReplies, useLastPostId, singlePostId, postsNewerThan), so you can switch by changing only the actor id.
Input JSON
{"profiles": ["realDonaldTrump", "WhiteHouse"],"contentType": "posts","postedAfter": "7 days","maxPostsPerProfile": 100,"includeProfile": true}
Paste handles, not search terms
profiles takes a handle (realDonaldTrump) or a profile URL. Do: @SecRubio ยท Don't: Marco Rubio (that is a search, which Truth Social shows only to signed-in users; the run lists it as an invalid input and charges nothing).
Use postedBefore for a past window
To read 15-17 September (UTC), set postedAfter: "2026-09-15" and postedBefore: "2026-09-18". A bare date means 00:00 UTC that day, and postedBefore keeps only older posts, so set it to the day after the last day you want. The walk starts at 18 September instead of paging back from today: measured on @realDonaldTrump, 3 pages for 41 posts.
Use monitor mode, not a date window, on a schedule
A schedule with monitorMode: true returns each post once. The first run of a profile returns its newest posts up to maxPostsPerProfile; later runs return what was posted since. If maxItems or the run's maximum charge stops a run early, or a later run reaches maxPostsPerProfile before it gets back to the previous run's posts, the rest is left for the next run. With edit/delete notices off, a quiet account costs one profile lookup and no timeline page. Turn on emitEdited / emitDeleted to also get a free notice row when a post you already have is edited or removed.
In monitor mode the profile row comes only on a handle's first run, not on every poll. To track follower counts or bio changes, run a separate monitor with contentType: "profile-details": it returns the profile row on its first run and after that only when followers, following, posts count, name, bio, website, location, verified, avatar or header changed, with changedFields and the previous values.
โฌ๏ธ Output
Every post becomes one dataset item with recordType: "post"; profile rows have recordType: "profile". Here is the table view of a run on five official accounts (20 posts each):
And one post as JSON (trimmed):
{"recordType": "post","id": "117400063988677911","url": "https://truthsocial.com/@WhiteHouse/117400063988677911","text": "The largest new shipyard in the United States since WWII.\n\nAMERICAN MARITIME DOMINANCE ๐บ๐ธ","createdAt": "2026-10-07T14:20:12.328Z","editedAt": null,"favouritesCount": 1737,"reblogsCount": 510,"repliesCount": 55,"upvotesCount": 1737,"isReply": false,"isReblog": false,"isQuote": false,"mediaUrls": ["https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/117/400/063/601/828/653/original/993f560d311c7670.jpg"],"authorUsername": "WhiteHouse","authorFollowersCount": 4088052,"authorVerified": true,"source": "posts"}
Truth Social post fields
| Field | Type | What it is | Fill (1,000 Trump posts) |
|---|---|---|---|
id, url, uri | string | Post id (it grows with time) and links | 100% |
text / content | string | Plain text / HTML as served | text 61% (null on photo- or video-only posts); content 100% (an empty <p></p> on those) |
createdAt, editedAt, version | string, number | Posted, last edited, edit version | 100% / when edited |
favouritesCount, reblogsCount, repliesCount | number | Likes, ReTruths, replies | 100% |
upvotesCount, downvotesCount | number | Truth Social votes | 100% |
mediaAttachments, mediaUrls, videoUrls | array | Photos and videos (type, URL, size, duration, Rumble id) | 56% / 22% video |
linkUrl, linkTitle, linkImage, card | string, object | Link preview | 18% |
reblog, rebloggedFromUrl, isReblog | object | The reposted post | 3% |
quote, quoteId, isQuote | object | The quoted post | 6% |
inReplyTo, inReplyToId, isReply | object | The post a reply answers | 100% of replies |
mentions, hashtags, poll, group | array, object | As posted | when present |
author* | mixed | Handle, name, avatar, followers, following, posts, verified, join date, bio, website | 100% (bio when set) |
source, inputSource, scrapedAt | string | Where the row came from | 100% |
Profile rows carry username, displayName, followersCount, followingCount, postsAndRepliesCount, lastStatusAt, verified, website, location, descriptionText, avatar, header, createdAt, pinnedPostIds (with includePinned) and recentPostCount, lastPostAt, recentAvgFavourites, recentAvgReblogs, recentAvgReplies for the posts read in the run.
How can I use Truth Social data?
- ๐ฐ Newsrooms โ alert on every new post of the accounts you cover, with edits and deletions flagged
- ๐๏ธ Political analysts โ build a dated archive of a candidate's or an agency's posts with engagement
- ๐ Traders and market researchers โ watch posts that move markets (tariffs, companies, commodities) on a short schedule
- ๐ฌ Researchers โ collect posts, replies and reposts with their parent posts for discourse studies
- ๐ค AI and data teams โ feed
text,createdAtand the counts to an LLM or a dashboard (compactkeeps rows small) - ๐ Social media teams โ compare engagement across official accounts week over week
How much does it cost to scrape Truth Social?
Truth Social Scraper is pay-per-result: $1.40 per 1,000 posts ($0.0014 per post) and $4 per 1,000 profile rows ($0.004 per profile), no start fee. Monitor notices (edited, deleted) and error rows are free rows.
| What you scrape | Cost |
|---|---|
| 20 posts + 1 profile (the example input) | $0.032 |
| 100 posts + 5 profiles | $0.16 |
| 1,000 posts + 1 profile | $1.404 |
| 10,000 posts | $14.00 |
There is nothing else to pay: Apify platform usage is included in these prices. Measured on 256 MB: 100 posts from 5 profiles in 4-7 seconds, 1,000 posts of one profile in 3.7 minutes.
Truth Social posts in your tools: integrations, API, scheduling & MCP
- Schedules: run Truth Social Scraper every few minutes, hourly or daily from the Schedules tab; with
monitorModeeach run returns only new posts. - Webhooks: fire a URL when a run finishes and push new posts to Slack, a CRM or a sheet.
- No-code: Make, Zapier, n8n, Google Sheets, Airtable, Slack via Apify integrations.
- API: call it from Node.js or Python with
apify-client; code on the API tab and the Apify API reference. - MCP / AI agents: connect Claude, Cursor or any MCP client through the MCP tab and ask for Truth Social posts in plain language.
More social media scrapers by TopApi
| ๐ Facebook Search Posts Scraper | ๐ฌ Facebook Comments Scraper | ๐ต TikTok Scraper |
| ๐ฌ TikTok Video Scraper | โถ๏ธ YouTube Shorts Scraper | ๐งญ All TopApi actors |
Limits & empty runs
- How far back: Truth Social serves a profile's timeline 20 posts per page, newest first. Measured: 1,000 posts of @realDonaldTrump reached back to 25 August 2026 (about 6 weeks) in 3.7 minutes.
- Speed: Truth Social allows about 6 timeline pages per minute per IP, so each proxy exit is paced;
maxConcurrencyexits work in parallel (3 by default). 100 posts from 5 profiles took 4-7 seconds. - Sign-in only, not collected: comments under a post, search, hashtag feeds, trends and follower lists. Truth Social shows these only to signed-in users, and this actor reads only what a signed-out visitor sees.
repliesCountis on every post. - Always empty on Truth Social, not shipped as columns: content warnings (
spoiler_text), custom emojis and profile fields; they stay inrawif they ever appear. - Edits and deletions are seen for posts among the newest 20 at the previous monitor run.
- Empty dataset: the handle does not exist (a free error row says so), the filters removed everything, the account had nothing new (monitor mode), or Truth Social's Cloudflare did not serve the run (the status message says "Blocked"; keep the default residential proxy and retry).
FAQ
How many posts can Truth Social Scraper collect from one profile?
As many as Truth Social serves to signed-out visitors, up to 20,000 posts per profile per run: set maxPostsPerProfile to 0. A 1,000-post run on @realDonaldTrump went back about 6 weeks. For a longer backfill, start the next run with maxId set to the nextMaxId printed in the run summary to continue where a run stopped.
Can I run Truth Social Scraper on a schedule to get new posts automatically?
Yes. Save your input as a task with monitorMode: true, open Schedules and pick the cadence. Each run returns only posts not delivered before; with edit/delete notices off, a quiet account costs one lookup. The profile row comes only on the first run; a profile-details monitor returns one on its first run and then whenever followers, bio or another profile field changed.
Does Truth Social Scraper get replies and reposts?
Yes. contentType: "replies" returns a profile's replies, each with the post it answers in inReplyTo; posts-and-replies returns both. ReTruths come with the original post in reblog; switch includeReblogs off to skip them.
Can I scrape Donald Trump's Truth Social posts with Truth Social Scraper?
Yes. Put realDonaldTrump in profiles; that is also the example input. Add includePinned for pinned posts and onlyMedia for his video and photo posts.
Can I integrate Truth Social Scraper with other apps?
Yes โ Make, Zapier, n8n, Google Sheets, Slack and more via Apify integrations, or webhooks to act when a run finishes.
Can I use Truth Social Scraper as a Truth Social API?
Yes. Start runs and read datasets through the Apify API with apify-client for Node.js or Python; the rows come back as JSON.
Can I use Truth Social Scraper through an MCP server?
Yes. Open the MCP tab, connect your MCP client and ask for posts in plain language. Turn on compact to keep rows small for the model.
Do I need a Truth Social account, cookies or an API key?
No. Truth Social Scraper reads what Truth Social shows signed-out visitors; you pass handles or URLs and nothing else.
Can Truth Social Scraper get comments, search results or hashtags?
No. Truth Social shows comments under a post, search, hashtag feeds and follower lists only to signed-in users, so they are not collected.
Why did my Truth Social Scraper run return no posts?
Usually one of: the handle is misspelled (a free error row names it), monitor mode found nothing new since the last run, postedAfter or keywords filtered everything, or the run's proxy was not served (status "Blocked"). Keep the default residential proxy.
Is it legal to scrape Truth Social?
Truth Social Scraper extracts only publicly available posts and profiles that any signed-out visitor can see; it does not log in or collect private data. Results can still contain personal data (for example, replies by ordinary users), which is regulated in many places. Make sure you have a legitimate purpose before you use it.
Your feedback
We keep improving Truth Social Scraper. Found a bug or missing a field? Open an issue on the Issues tab.

