Truth Social Scraper avatar

Truth Social Scraper

Pricing

from $1.60 / 1,000 post or profile rows

Go to Apify Store
Truth Social Scraper

Truth Social Scraper

Scrape public Truth Social profiles and posts (truths) with exact like, repost and reply counts, media, link cards, reposts, quotes and author data. No login. Export to CSV, JSON, Excel or XML.

Pricing

from $1.60 / 1,000 post or profile rows

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

πŸ“£ Truth Social Scraper

πŸš€ Export any public Truth Social profile and its posts in seconds. Paste a username, get 47 fields per post back: full text, exact like, repost and reply counts, every image and video with a direct URL, link preview cards, who reposted what and when, quotes, mentions, hashtags and the author's follower count. No login, no cookie.

Truth Social's web pages show a scrolling feed and rounded-off numbers you cannot copy. This Actor reads the JSON that Truth Social itself serves to every visitor of a public profile and returns it as flat rows, ready for a spreadsheet, a database or a data pipeline. Point it at @realDonaldTrump, at any other public account, or at a single post URL.

Every run returns 47 fields per post or 23 fields per profile, depending on the Result Type you pick. A five-post run in the cloud finishes in about 9 seconds, and each timeline page brings 20 posts in one request, so a thousand posts is fifty requests. Engagement counts come back as exact integers (29,005 likes, not "29K"), reposts carry the original author and the original counts, and two date filters let you cut a timeline to an exact window without paying for the posts outside it.

🎯 Target AudienceπŸ’‘ Primary Use Cases
Newsrooms and political reportersArchive every post from an official account with exact timestamps and engagement, minutes after it goes up.
Researchers and data scientistsBuild post-level datasets with text, media, links, reposts and counts for content or network analysis.
Communications and PR teamsMonitor what an account, a rival or a coalition of accounts is saying and which posts travel.
Finance and market analystsTrack statements from market-moving accounts on a schedule and feed them into alerts.

πŸ“‹ What the Truth Social Scraper does

πŸ’‘ Why it matters: a Truth Social post on screen is a paragraph and three abbreviated numbers. What you need to act is structured data: the exact text, the precise second it was posted, how many people liked, reposted and replied, the images and videos behind it, the article it links to, and whether it was the account's own words or a repost of someone else. This Actor puts all of that on one row per post, or one row per profile.

  • πŸ“ Post rows. Full plain text with paragraph breaks preserved, canonical URL, post ID, type (Post, Repost, Reply or Quote), exact timestamp, language, visibility, sensitivity flag, content warning, pinned flag and edit time.
  • ❀️ Exact engagement. Like, repost and reply counts as integers on every post, including reposted originals.
  • 🎞 Media with direct URLs. Every image and video with its full-size URL, preview URL, dimensions, video duration and alt text, plus a mediaCount column to filter on.
  • πŸ”— Link preview cards. The URL, title, description, image and provider of any article the post links to.
  • πŸ” Reposts done properly. A repost row carries the original author, the original text, media and counts, and separately who reposted it, when, and the repost's own URL and ID. Switch reposts off to keep only the account's own words.
  • πŸ’¬ Quotes, replies, mentions, hashtags and polls. Quoted post ID, URL, text and author; the post and account a reply answers; every mentioned account with its profile URL; hashtags as a list; poll options and vote counts when a post has one.
  • πŸ‘€ The author on every row. Username, display name, ID, profile URL, avatar, verification badge and exact follower, following and post counts, so a multi-account run needs no second lookup.
  • πŸͺͺ Profile rows. Display name, username, ID, bio as plain text, verification, premium, locked, bot and group flags, follower, following and post counts, last post date, creation date, website, location, header image, custom profile fields and whether the account is visible to logged-out visitors.
  • πŸ“… Date filters that save money. postedAfter stops the crawl once older posts are reached. postedBefore starts the crawl at that date directly, using Truth Social's own ID ordering, so you never pay for the posts in between.
  • πŸ–Ό Media-only mode. onlyMedia asks Truth Social for posts with attachments only, applied on the server side at no extra cost.
  • πŸ”— Profile URLs, usernames or post links. Mix https://truthsocial.com/@realDonaldTrump, bare DevinNunes and single post URLs such as truthsocial.com/@realDonaldTrump/posts/117198856483138040 in one run.
  • πŸ“¦ One fixed schema per Result Type. Columns never move, so your spreadsheet or database mapping never breaks.

🎬 Full Demo (🚧 Coming soon)

A short walkthrough video is in production and will land here.

πŸ“Š Output

Pick a Result Type and each row takes one of two shapes.

Post rows (resultType: "post")

FieldTypeDescription
πŸ–Ό imageUrlstringFirst media preview, else the link card image, else the author's avatar.
πŸ“ textstringPost text as plain text with paragraph breaks.
πŸ”— urlstringCanonical post URL.
πŸ†” idstringTruth Social post ID.
πŸ“‚ postTypestringPost, Repost, Reply or Quote.
πŸ“… createdAtstringExact posting time, ISO 8601.
✏️ editedAtstringWhen the post was last edited, or N/A.
🌍 languagestringLanguage code Truth Social detected.
πŸ‘ visibilitystringpublic, or group for posts made inside a Truth Social group.
⚠️ isSensitivestringYes when the post is marked sensitive.
⚠️ contentWarningstringContent warning text, or N/A.
πŸ“Œ isPinnedstringYes when pinned to the profile.
❀️ likesCountnumberExact like count.
πŸ” repostsCountnumberExact repost (ReTruth) count.
πŸ’¬ repliesCountnumberExact reply count.
🎞 mediaCountnumberNumber of images and videos attached.
πŸ‘€ authorUsernamestringWho wrote the post. On a repost, the original author.
πŸ“Œ authorDisplayNamestringAuthor's display name.
πŸ†” authorIdstringAuthor's account ID.
πŸ”— authorUrlstringAuthor's profile URL.
πŸ–Ό authorAvatarUrlstringAuthor's avatar.
⭐ authorIsVerifiedstringYes when the author carries the verification badge.
πŸ‘₯ authorFollowersCountnumberAuthor's exact follower count.
πŸ‘₯ authorFollowingCountnumberAuthor's exact following count.
πŸ”’ authorPostsCountnumberAuthor's total post count.
πŸ” repostedByUsernamestringOn a repost, the account that reposted it.
πŸ” repostedByDisplayNamestringOn a repost, that account's display name.
πŸ” repostUrlstringOn a repost, the URL of the repost itself.
πŸ” repostIdstringOn a repost, the repost's own ID.
πŸ” repostedAtstringOn a repost, when it was reposted.
↩️ inReplyToPostIdstringOn a reply, the post it answers.
↩️ inReplyToAccountIdstringOn a reply, the account it answers.
πŸ’¬ quotedPostIdstringOn a quote, the quoted post's ID.
πŸ’¬ quotedPostUrlstringOn a quote, the quoted post's URL.
πŸ’¬ quotedPostTextstringOn a quote, the quoted post's text.
πŸ’¬ quotedPostAuthorUsernamestringOn a quote, who wrote the quoted post.
πŸ”— linkUrlstringURL of the linked article, when the post carries a link card.
πŸ”— linkTitlestringTitle of the linked article.
πŸ”— linkDescriptionstringDescription of the linked article.
πŸ”— linkImageUrlstringPreview image of the linked article.
πŸ”— linkProviderstringDomain of the linked article.
🎞 mediaAttachmentsarrayEach attachment: type, URL, preview URL, width, height, duration, alt text.
πŸ‘₯ mentionsarrayEach mentioned account: username and profile URL.
#️⃣ hashtagsarrayHashtags on the post.
πŸ“Š pollobjectPoll options with vote counts, expiry and totals, or N/A.
πŸ•’ scrapedAtstringISO timestamp of collection.
❌ errorstringPopulated only on rows that record a failure.

Profile rows (resultType: "profile")

imageUrl (avatar), displayName, username, url, id, bio, isVerified, isPremium, isLocked, isBot, isGroup, followersCount, followingCount, postsCount, lastPostAt, createdAt, website, location, headerImageUrl, isVisibleLoggedOut, profileFields, scrapedAt, error.

Sample records

{
"imageUrl": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/cache/preview_cards/images/076/091/037/original/c53776a91f468f91.jpg",
"text": "Christian leaders urge Trump to create legal pathway for Jewish Canadians facing antisemitism: https://justthenews.com/government/white-house/christian-leaders-urge-trump-create-legal-pathway-jewish-canadians-facing",
"url": "https://truthsocial.com/@realDonaldTrump/117201328928275230",
"id": "117201328928275230",
"postType": "Post",
"createdAt": "2026-09-02T11:59:15.961Z",
"language": "en",
"visibility": "public",
"likesCount": 9366,
"repostsCount": 2340,
"repliesCount": 1379,
"mediaCount": 0,
"authorUsername": "realDonaldTrump",
"authorDisplayName": "Donald J. Trump",
"authorIsVerified": "Yes",
"authorFollowersCount": 13020656,
"authorPostsCount": 36358,
"linkUrl": "https://justthenews.com/government/white-house/christian-leaders-urge-trump-create-legal-pathway-jewish-canadians-facing",
"linkTitle": "Christian leaders urge Trump to create legal pathway for Jewish Canadians facing antisemitism",
"linkProvider": "justthenews.com"
}
{
"imageUrl": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/117/171/658/896/752/423/small/3fee3df8324fbf3f.jpg",
"text": "Alcatra Octopus",
"url": "https://truthsocial.com/@DevinNunes/117171659993730770",
"id": "117171659993730770",
"postType": "Post",
"createdAt": "2026-08-28T06:14:03.950Z",
"visibility": "group",
"likesCount": 81,
"repostsCount": 13,
"repliesCount": 8,
"mediaCount": 2,
"authorUsername": "DevinNunes",
"authorDisplayName": "Devin Nunes",
"authorFollowersCount": 4464456,
"mediaAttachments": [
{
"type": "image",
"url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/117/171/658/896/752/423/original/3fee3df8324fbf3f.jpg",
"width": 878,
"height": 1170
},
{
"type": "image",
"url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/117/171/658/896/884/096/original/afc9726773996a24.jpg",
"width": 878,
"height": 1170
}
]
}
{
"text": "Compassion Over Strength\n\nThe world often defines strength as power, control, and the ability to fight back. But Jesus Christ showed us a completely different kind of strength.",
"url": "https://truthsocial.com/@JFloodMD/117122170160298176",
"id": "117122170160298176",
"postType": "Repost",
"createdAt": "2026-08-19T12:28:09.018Z",
"likesCount": 774,
"repostsCount": 242,
"repliesCount": 40,
"authorUsername": "JFloodMD",
"authorDisplayName": "Jarrett Flood, MD",
"authorFollowersCount": 488,
"repostedByUsername": "DevinNunes",
"repostedByDisplayName": "Devin Nunes",
"repostUrl": "https://truthsocial.com/@DevinNunes/117123189153522136",
"repostId": "117123189153522136",
"repostedAt": "2026-08-19T16:47:17.620Z"
}

✨ Why choose this Actor

  • Date filters that actually cut cost. postedBefore jumps straight to the right point in the timeline using Truth Social's ID ordering, and postedAfter stops the crawl at the floor. You pay only for the window you asked for.
  • Reposts with both sides. The original author, text, media and counts on one side; who reposted it, when, and the repost's own URL on the other. Most tools give you one or the other.
  • Exact numbers and real dates. 13,020,656 followers, not "13M". Posting, editing and reposting times to the millisecond in ISO 8601.
  • Media and link cards included. Direct image and video URLs with dimensions, plus the title, description and image of any linked article, at no extra request.
  • Author on every row. Follower, following and post counts of the author ride along with each post, so cross-account datasets need no second pass.
  • Single posts too. Paste a post URL and get that one row, with the same 47 fields.
  • Honest about its limits. The comparison below states what Truth Social hides from logged-out visitors before you spend anything.
  • No nulls. Identical columns on every row, with Not Disclosed and N/A sentinels instead of blanks so CSV and Excel imports stay predictable.
  • No credentials and no start fee. No Truth Social login, no cookie, no token to refresh, and you pay per row only.
  • Fast and cheap to run. Plain HTTP requests, no browser. One request returns 20 posts.

πŸ“ˆ How it compares to alternatives

This ActorTypical Truth Social scrapers
Post fields47, with media, link card, repost, quote, poll and author15 to 30
Profile fields23, with custom fields and visibility flag10 to 15
Repost handlingOriginal author and counts plus reposter, time and repost URLReposter only, or reposts dropped
Date rangepostedAfter and postedBefore, applied at the sourceCrawl everything, filter afterwards
Media-only modeYes, applied by Truth SocialRarely
Engagement countsExact integersExact, sometimes rounded
Login or cookie requiredNoSome require an account
Start fee per runNoneOften
Search, hashtags, replies, followersNot available to logged-out visitors. See the ceiling belowOnly with an account

The ceilings, stated plainly. Truth Social shows the profile itself, the profile's timeline and single posts to logged-out visitors, and that is what this Actor collects. Keyword search, hashtag timelines, trending posts, the replies under a post, and follower or liker lists are only served to logged-in users, so they are out of scope. A handful of accounts hide their timeline from visitors; those come back as a profile row with isVisibleLoggedOut: No and an explanatory error row in Post mode. Truth Social serves 20 posts per request and rate-limits each IP address to 6 requests per minute, which is why the Actor uses a fresh residential IP per request by default and paces itself to 120 posts per minute when the proxy is switched off.

πŸš€ How to use

  1. Create a free Apify account. New accounts get $5 in free credit. Sign up here.
  2. Open the Actor and go to the Input tab.
  3. Add your targets. Profile URLs, bare usernames or single post URLs, in any mix.
  4. Pick a Result Type. Post for one row per truth, Profile for one row per account.
  5. Set Max Items to the number of rows you want back across all targets.
  6. Optionally narrow the crawl. Switch reposts off, keep only posts with media, or set a postedAfter and postedBefore window.
  7. Click Start and watch the log. It names each account as it opens it and reports every page it fetches.
  8. Download your data from the Storage tab as CSV, JSON, Excel or XML, or pull it from the API.

Example input:

{
"startUrls": [
{ "url": "https://truthsocial.com/@realDonaldTrump" },
{ "url": "https://truthsocial.com/@realDonaldTrump/posts/117198856483138040" }
],
"usernames": ["DevinNunes", "truthsocial"],
"maxItems": 500,
"resultType": "post",
"includeReposts": false,
"onlyMedia": false,
"postedAfter": "2026-08-01",
"postedBefore": "2026-09-01"
}

πŸ’Ό Business use cases

πŸ“° Newsroom monitoring of official accounts.

A political desk schedules the Actor every ten minutes over the accounts it covers, with postedAfter set to the last run. New posts land in a shared sheet with exact timestamps, full text, linked articles and media URLs, so a reporter sees a statement and its source material before the screenshot reaches social media.

πŸ“ˆ Market and policy signal tracking.

An analytics team pulls every post from a set of market-moving accounts into a warehouse. Text, timestamp and engagement counts feed a keyword and sentiment model, and posts that mention a company, a tariff or a rate decision trigger an alert with the canonical URL attached.

πŸ“£ Communications and message tracking.

A PR team tracks its own accounts and a list of rivals. Reposts show which messages travel and through whom, repostsCount and likesCount rank the week's posts, and link cards reveal which outlets each account amplifies.

πŸ”¬ Academic and think-tank research.

A research group builds a corpus of posts from a hundred public accounts over a year. postedAfter and postedBefore split the crawl into monthly windows, repost rows keep the original author for network analysis, and media URLs let the team archive images and video alongside the text.

πŸ”Œ Automating Truth Social Scraper

Schedule the Actor and route the results wherever your team already works.

  • Make and Zapier. Trigger on a finished run and push new posts into a CRM, a Notion database or an Airtable base.
  • Slack. Post every new truth from a watched account into a channel within minutes.
  • Airbyte. Load the dataset into a warehouse and track engagement counts over time.
  • GitHub. Commit a nightly snapshot to a repository to keep an auditable archive of an account.
  • Google Drive. Drop each run's CSV into a shared folder for the rest of the team.
  • Apify Schedules. Run the same account list every ten minutes, hourly or daily without touching the console.

🌟 Beyond business use cases

πŸ”¬ Research. Political scientists and media researchers can study posting behaviour, repost networks, link sharing and engagement patterns on Truth Social with structured rows and exact timestamps.

πŸ™‹ Personal. Keep an archive of an account you follow, or export your own public posts with their media URLs before they scroll away.

🀝 Non-profit. Fact-checking organisations and watchdogs can archive statements from public officials as they are made, with the canonical URL and posting time for citation.

πŸ§ͺ Experimentation. Post text, link cards, media and engagement counts make a tidy corpus for classification, topic modelling and engagement-prediction experiments.

πŸ€– Ask an AI assistant about this scraper

The Actor exposes its input schema through Apify's MCP server, so an AI assistant connected to your Apify account can configure and run it for you. Ask it "get me every post from @realDonaldTrump since August 1st without reposts" and it will fill in the username, the date filter, the repost switch and the item count itself.

❓ Frequently Asked Questions

πŸ”‘ Do I need a Truth Social account, cookie or API key? No. The Actor reads the data Truth Social publishes to any visitor of a public profile. There is no login and no token to manage.

πŸ”— Which inputs does it accept? Public profile URLs (truthsocial.com/@username), bare usernames with or without the @, and single post URLs (truthsocial.com/@username/posts/{id} or truthsocial.com/@username/{id}).

πŸ” Can it search by keyword or hashtag? No. Truth Social only serves search, hashtag timelines and trending posts to logged-in users. The Actor collects what a logged-out visitor can see: profiles, their timelines and single posts.

πŸ’¬ Can it collect the replies under a post? No. The reply thread is also reserved for logged-in users. Every post row carries the exact repliesCount, so you always know how much conversation sits beneath it.

πŸ” How are reposts handled? A repost row has postType: "Repost". The author* fields, the text, the media and the counts belong to the original post, and repostedByUsername, repostedAt, repostUrl and repostId describe the repost. Set includeReposts to false to keep only the account's own posts.

πŸ“… How do the date filters work? postedAfter stops the crawl as soon as an older post appears. postedBefore starts the crawl at that date directly, because Truth Social's post IDs encode the posting time, so the posts after that date are never requested or billed.

πŸ“ How far back can it go? As far as the account's timeline goes. Truth Social serves 20 posts per request, newest first, with no depth limit.

πŸ‘€ What happens with an account that hides its posts from visitors? A few accounts switch off visibility for logged-out users. In Profile mode you get the profile row with isVisibleLoggedOut: No; in Post mode you get one error row explaining it, and nothing is charged for it.

πŸ“Š Are the counts exact? Yes. Likes, reposts, replies, followers, following and post totals are the integers Truth Social serves, not the rounded figures shown on screen.

🈳 Why do I see Not Disclosed or N/A instead of empty cells? Because a blank cell is ambiguous. Not Disclosed means Truth Social did not publish that value for that post, and N/A means the field does not apply, such as repost fields on an original post.

πŸ›‘ Do I need a proxy? Truth Social limits every IP address to 6 API requests per minute, so residential proxies with a fresh IP per request are on by default and runs are fast. Switch the proxy off and the Actor paces itself to 120 posts per minute instead.

⚑ How fast is it? A five-post run finishes in about 9 seconds including startup. Each request returns 20 posts, and up to three accounts are crawled in parallel.

πŸ”Œ Integrate with any app

Every run's dataset is available through the Apify API, so you can pull results into any language or platform that speaks HTTP. Apify also ships official clients for JavaScript and Python, plus native integrations for Make, Zapier, Airbyte, Slack, GitHub and Google Drive.

πŸ’‘ Pro Tip: browse the complete ParseForge collection.

πŸ†˜ Need Help? Open our contact form

⚠️ Disclaimer: This is an independent tool, not affiliated with or endorsed by Truth Social or Trump Media & Technology Group. It collects only publicly available data.