Truth Social Scraper - Posts, Replies, Profiles & Media avatar

Truth Social Scraper - Posts, Replies, Profiles & Media

Pricing

from $1.40 / 1,000 posts

Go to Apify Store
Truth Social Scraper - Posts, Replies, Profiles & Media

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

Top Api

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

Truth Social profile page with the posts that Truth Social Scraper turns into rows

  • 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: postedBefore jumps 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

  1. Create a free Apify account โ€” $5 of monthly credit, no card needed.
  2. Open Truth Social Scraper and click Try for free.
  3. Paste handles or profile URLs into Profiles (or post URLs into Post URLs or ids) and set Max posts per profile.
  4. Click Start. Rows stream into the dataset as each page is read.
  5. Open the Storage tab and Export as JSON, CSV or Excel, or schedule the run with Monitor mode on.

โฌ‡๏ธ Input

ParameterTypeDescription
๐Ÿ” What to scrape
profilesListHandles or profile URLs: realDonaldTrump, @WhiteHouse, https://truthsocial.com/@DonaldJTrumpJr.
postUrlsListPost 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).
includeLandingFeedBooleanAlso read the guest landing feed (about 11 recent posts). Default false
contentTypeSelectposts (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)
onlyMediaBooleanOnly posts with a photo or video. Default false
includePinnedBooleanAlso read pinned posts (delivered first, isPinned: true); the date and id filters apply to them too. Default false
includeMutedBooleanInclude muted posts, as the site does. Default true
postedAfterTextDate 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
postedBeforeTextDate 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
includeReblogsBooleanKeep ReTruths. Default true
keywordsListKeep posts containing any of these words
minFavouritesIntegerMinimum likes. Default 0
โž• Extra data
includeProfileBooleanOne 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
monitorModeBooleanOnly 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
monitorStoreNameTextMemory name. Default truth-social-monitor
emitEdited / emitDeletedBooleanFree notice rows for watched posts that were edited or deleted
peekBooleanReturn new posts without updating the memory
sinceId / maxIdTextOnly posts above an id / start the walk below an id (resume a backfill); pinned and landing-feed posts outside the ids are skipped
๐Ÿ“ฆ Output
maxPostsPerProfileIntegerDefault 100; 0 = everything Truth Social serves, up to 20,000 posts per profile per run (continue with maxId = the nextMaxId in RUN_SUMMARY)
maxItemsIntegerCap on post rows for the whole run. Default 0 (no cap)
compactBooleanCore fields only, for AI agents and MCP
includeRawBooleanAdd Truth Social's own JSON object
โš™๏ธ Advanced
proxyConfigurationProxyDefault: Apify residential, US
maxConcurrencyIntegerProfiles 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):

Truth Social Scraper output: Truth Social posts with likes, ReTruths, replies and media

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

FieldTypeWhat it isFill (1,000 Trump posts)
id, url, uristringPost id (it grows with time) and links100%
text / contentstringPlain text / HTML as servedtext 61% (null on photo- or video-only posts); content 100% (an empty <p></p> on those)
createdAt, editedAt, versionstring, numberPosted, last edited, edit version100% / when edited
favouritesCount, reblogsCount, repliesCountnumberLikes, ReTruths, replies100%
upvotesCount, downvotesCountnumberTruth Social votes100%
mediaAttachments, mediaUrls, videoUrlsarrayPhotos and videos (type, URL, size, duration, Rumble id)56% / 22% video
linkUrl, linkTitle, linkImage, cardstring, objectLink preview18%
reblog, rebloggedFromUrl, isReblogobjectThe reposted post3%
quote, quoteId, isQuoteobjectThe quoted post6%
inReplyTo, inReplyToId, isReplyobjectThe post a reply answers100% of replies
mentions, hashtags, poll, grouparray, objectAs postedwhen present
author*mixedHandle, name, avatar, followers, following, posts, verified, join date, bio, website100% (bio when set)
source, inputSource, scrapedAtstringWhere the row came from100%

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, createdAt and the counts to an LLM or a dashboard (compact keeps 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 scrapeCost
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 monitorMode each 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; maxConcurrency exits 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. repliesCount is on every post.
  • Always empty on Truth Social, not shipped as columns: content warnings (spoiler_text), custom emojis and profile fields; they stay in raw if 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.

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.