Truth Social Scraper — Posts, ReTruths & Profiles avatar

Truth Social Scraper — Posts, ReTruths & Profiles

Pricing

from $1.60 / 1,000 posts

Go to Apify Store
Truth Social Scraper — Posts, ReTruths & Profiles

Truth Social Scraper — Posts, ReTruths & Profiles

[from $3/1K posts] Scrape Truth Social posts (Truths and ReTruths) of Donald Trump or any public account, posts by URL and profiles: text, time, likes, ReTruths, replies count, media, links, quotes. Only-new mode for alerts. Export, schedule or call via API. No login, no run fee.

Pricing

from $1.60 / 1,000 posts

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 hours ago

Last modified

Share

Truth Social Scraper is a Truth Social API alternative for posts and profiles. Give it Truth Social accounts (username, @handle or profile URL) or post links, and it returns one clean row per Truth Social post — full text, publish time, likes, ReTruths (reposts), replies count, images and videos, link preview, quoted post, mentions, hashtags and the author — or, in Profiles mode, one row per account with followers, following, posts count, bio, website and verified badge.

It works without a Truth Social account, without login and without cookies. ReTruths are marked and carry the original post's text and author, quote posts carry the quoted post, and the Only new posts memory turns a schedule into a feed of posts you have not seen yet — the way people actually monitor Donald Trump's Truth Social posts. From $0.0016 per post on paid plans ($0.004 on the Apify Free plan), no start fee, failed inputs are free error rows.

Tested head-to-head — 15 October 2026

Same request for the six most-used Truth Social actors on the Apify Store: the 20 newest posts of @realDonaldTrump (the most-used one refuses runs capped below $0.20, so its price is taken from its pricing page).

This ActorOther Truth Social actors
Posts delivered (20 asked)200–20 (one returned an empty table with a green status, one 19, one has a 40-post minimum)
Run time5 s9–54 s
Start / finish feenone$0.005–$0.02 per run at four of the six
Free plan, 20 posts$0.08$0.045–$0.12

What is Truth Social Scraper?

Truth Social is the social network launched by Trump Media & Technology Group (TMTG, Nasdaq: DJT) in 2022. It is where President Donald J. Trump publishes first — policy announcements, tariff news, comments on companies and markets — together with the White House, the Trump family, campaign accounts, members of Congress and media figures. Posts there move news cycles and, more and more often, stock prices. Truth Social has no open public API for this data.

Truth Social Scraper reads the public data Truth Social shows to logged-out visitors on truthsocial.com and turns it into structured rows you can download as JSON, CSV or Excel, or pull from the Apify API. It is built for:

  • real-time monitoring of Trump's posts — a schedule every 15 minutes with Only new posts returns just what was posted since the last run;
  • newsrooms and journalists — an archive of an account's posts with exact timestamps, edit times and links to the originals;
  • traders and market analysts — posts that mention companies, tariffs or sectors, with engagement numbers, ready for alerts and backtests;
  • political and academic research — posting frequency, reposts versus original posts, what links and media accounts share;
  • AI and RAG pipelines — clean plain text with metadata, through the API or the Apify MCP server.

The site's own nouns are used everywhere: a post is a Truth, a repost is a ReTruth.

What data can Truth Social Scraper extract?

Every row has a type column first: post, profile, or error (free).

📝 Post rows

FieldExampleWhat it is
id117363810994521058Post id (for a ReTruth: the id of the repost on the account's timeline)
urlhttps://truthsocial.com/@realDonaldTrump/117363810994521058Link to the post
createdAt2026-10-01T04:40:35.537ZPublish time, ISO 8601 UTC, to the millisecond
editedAtnullLast edit time, if the post was edited
username / displayNamerealDonaldTrump / Donald J. TrumpAuthor
accountId, authorVerified, authorFollowers, authorAvatarUrl107780257626128497, true, 13088497, …Author id, badge, follower count at scrape time and profile picture
textCongratulations to the GREAT Boeing Company…Full post text as plain text (no HTML)
contentHtml<p>Congratulations…</p>The same post as Truth Social stores it (HTML)
languageenLanguage code Truth Social assigned
isRepostfalseThe row is a ReTruth
repostedPostId, repostedPostUrl, repostedUsername117363131054368093, …, realDonaldTrumpFor a ReTruth: the original post and its author
isReply, inReplyToId, inReplyToUsernamefalse, null, nullFor a reply: what it answers
isQuote, quotedPostId, quotedPostUrl, quotedUsername, quotedText, quotedCreatedAt, quotedMediaUrlstrue, 117363088922196903, …For a quote post: the quoted post, its time and media (many quotes are of a video or picture with no text, so quotedText is then empty)
repliesCount260Replies
repostsCount795ReTruths
likesCount3068Likes
engagementTotal4123Replies + ReTruths + likes, computed
mediaCount, mediaTypes, mediaUrls, mediaPreviewUrls1, ["video"], [".../3005e93896134d91.mp4"]Attached images and videos, direct file links
videoDurationSec103Length of the first video
linkUrl, linkTitle, linkDomainhttps://justthenews.com/…, Media coverage of…, justthenews.comLink preview card
links["https://www.whitehouse.gov/…"]External links in the text
mentions, hashtags["WhiteHouse"], ["MAGA"]Handles and tags in the post
sensitive, sponsored, visibilityfalse, false, publicFlags
sourceInput, scrapedAtrealDonaldTrump, 2026-10-01T08:12:14ZWhich input produced the row, and when

👤 Profile rows

FieldExample
id, username, displayName, url107780257626128497, realDonaldTrump, Donald J. Trump, https://truthsocial.com/@realDonaldTrump
followersCount, followingCount, postsCount13088511, 69, 36908
verified, premium, bot, lockedtrue, true, false, false
bio, website, locationnull, www.DonaldJTrump.com, null
createdAt, lastPostAt2022-02-11T16:16:57.705Z, 2026-10-01
avatarUrl, headerUrlprofile picture and header image links

💰 How much does it cost to scrape Truth Social?

Truth Social Scraper uses pay-per-event pricing: you pay for the rows you get, nothing else. There is no start fee, no fee per page and no proxy surcharge — the residential proxy Truth Social requires is included.

EventFree planStarter (Bronze)Scale (Silver)Business (Gold)
📝 Post (from an account timeline or a post link)$0.004 ($4 / 1K)$0.0032 ($3.20 / 1K)$0.0024 ($2.40 / 1K)$0.0016 ($1.60 / 1K)
👤 Profile$0.002 ($2 / 1K)$0.0018 ($1.80 / 1K)$0.0016 ($1.60 / 1K)$0.0014 ($1.40 / 1K)

Platinum and Diamond plans pay the Business price.

What is free: error rows (unknown account, deleted post, bad link), posts skipped by your date, ReTruth or reply filters, duplicate posts, and posts already delivered under your Only new posts memory.

What the demo run costs: the prefilled input returns the 20 newest posts of @realDonaldTrump for $0.064 on the Starter plan ($0.08 on the Free plan), in about 5–12 seconds. Apify's free plan includes $5 of monthly credit — roughly 1,200 Truth Social posts a month at no cost to you.

Truth Social Scraper vs. other Truth Social actors

JobTruth Social Scraper, Free planTruth Social Scraper, StarterMost-used Truth Social actor, Free / StarterHighest-rated Truth Social actor
20 newest posts of one account$0.08$0.064$0.12 / $0.09 (start + 20 posts + finish)$0.10 / $0.04
1,000 posts$4.00$3.20$5.02 / $4.01$5.00 / $2.00
Only new posts on a schedulebuilt in, repeats are freebuilt in, repeats are free——

20% below the leader's per-post price on every plan, and without its start and finish fees. Prices checked on the Apify Store on 15 October 2026: the actor with the most monthly users charges $0.005 per post on the Free plan, $0.004 on Starter, $0.003 on Scale and $0.002 on Business, plus a run start fee and a run finish fee ($0.01 each on the Free plan, $0.005 each on Starter). The highest-rated one charges $0.005 per result on the Free plan and $0.002 on Starter.

How to scrape Truth Social with Truth Social Scraper

  1. Open Truth Social Scraper and press Try for free (an Apify account is free).
  2. Choose 🧭 What to get: Posts or Profiles.
  3. Enter 👤 Usernames — realDonaldTrump, @WhiteHouse or https://truthsocial.com/@DonaldJTrumpJr, one per line — and/or 🔗 Post URLs.
  4. Set 💯 Posts per account and, if you want, 📅 Posted after / Posted before, 🔁 Include ReTruths and 💬 Include the account's replies.
  5. Press Start. The prefilled run finishes in about 10 seconds.
  6. Download the results as JSON, CSV, Excel or HTML, open them in Google Sheets, or fetch them through the Apify API.

⬇️ Input

Posts of one or more accounts

{
"mode": "posts",
"usernames": ["realDonaldTrump", "WhiteHouse", "DonaldJTrumpJr"],
"maxPostsPerUser": 50
}

The Actor reads each timeline newest-first and pages back as far as you ask: 20 posts take one request, 100 posts five.

Everything since a date

{
"usernames": ["realDonaldTrump"],
"postedAfter": "2 days",
"maxPostsPerUser": 500
}

postedAfter and postedBefore accept 2026-09-01, an ISO timestamp, or a relative value such as 7 days or 12 hours. Paging stops as soon as the timeline passes postedAfter, and postedBefore jumps straight to that point of the timeline (Truth Social post ids encode their time), so a window in the past costs no extra requests.

Only the account's own posts

{
"usernames": ["realDonaldTrump"],
"includeReposts": false,
"includeReplies": false
}

ReTruths are included by default (as on the profile page) and marked isRepost: true; replies to other people are left out by default, as on the profile's "Truths" tab.

{
"usernames": [],
"postUrls": [
"https://truthsocial.com/@realDonaldTrump/117363810994521058",
"117363131054368093"
]
}

A full link or a bare post id both work. The same post asked for twice is returned and billed once.

Profiles

{
"mode": "profiles",
"usernames": ["realDonaldTrump", "WhiteHouse", "DonaldJTrumpJr", "TeamTrump"]
}

Input fields

FieldDefaultWhat it does
🧭 modepostsposts or profiles
👤 usernames["realDonaldTrump"]Accounts: bare name, @handle or profile URL
🔗 postUrls—Post links or ids (Posts mode)
💯 maxPostsPerUser20Newest posts per account, up to 10,000
📅 postedAfter / postedBefore—Date window
🔁 includeRepoststrueKeep ReTruths
💬 includeRepliesfalseKeep the account's replies to others
🔁 onlyNewRowsStore—Memory name for Only new posts
concurrency3Accounts fetched in parallel
proxyConfigurationResidentialKeep it on Residential — see the FAQ

⬆️ Output

📝 Post

{
"type": "post",
"id": "117363810994521058",
"url": "https://truthsocial.com/@realDonaldTrump/117363810994521058",
"createdAt": "2026-10-01T04:40:35.537Z",
"editedAt": null,
"username": "realDonaldTrump",
"displayName": "Donald J. Trump",
"accountId": "107780257626128497",
"authorVerified": true,
"authorFollowers": 13088503,
"text": "Congratulations to the GREAT Boeing Company for producing a plane, the 737 Max, that was able to withstand G Forces and Strain far beyond what it was designed and expected to do. … President DONALD J. TRUMP",
"language": "en",
"isRepost": false,
"isReply": false,
"isQuote": false,
"repostedPostId": null,
"repostedPostUrl": null,
"repostedUsername": null,
"inReplyToId": null,
"quotedPostId": null,
"repliesCount": 260,
"repostsCount": 795,
"likesCount": 3068,
"engagementTotal": 4123,
"mediaCount": 0,
"mediaTypes": [],
"mediaUrls": [],
"videoDurationSec": null,
"linkUrl": null,
"linkDomain": null,
"links": [],
"mentions": [],
"hashtags": [],
"sensitive": false,
"sponsored": false,
"visibility": "public",
"sourceInput": "realDonaldTrump",
"scrapedAt": "2026-10-01T08:12:14.512Z"
}

🔁 ReTruth

A ReTruth keeps the id and url of the repost itself — that is what appeared on the account's timeline — and carries the original post's text, media and counts, with repostedUsername and repostedPostUrl pointing to the original.

👤 Profile

{
"type": "profile",
"id": "107780257626128497",
"username": "realDonaldTrump",
"displayName": "Donald J. Trump",
"url": "https://truthsocial.com/@realDonaldTrump",
"followersCount": 13088511,
"followingCount": 69,
"postsCount": 36908,
"verified": true,
"premium": true,
"website": "www.DonaldJTrump.com",
"createdAt": "2022-02-11T16:16:57.705Z",
"lastPostAt": "2026-10-01"
}

⚠️ Error row (free)

{
"type": "error",
"input": "thisaccountdoesnotexist98765",
"error": "Account @thisaccountdoesnotexist98765 was not found on Truth Social — check the spelling.",
"scrapedAt": "2026-10-01T08:31:02.118Z"
}

The dataset has four views: Posts, Posts — media, links and tags, Profiles and Errors (free).

🔁 Get only new posts — schedule it

A one-off export is useful once; a feed is useful every day. Fill Only new posts — memory name (for example my-truth-watch) and the Actor remembers every post it has delivered under that name. Every later run with the same name writes — and charges — only posts you have not received before; posts delivered earlier are skipped for free.

  1. Run once with the memory name to load the latest posts.
  2. Open the run → Actions → Schedule (or Schedules) and set every 15 minutes, hourly or daily.
  3. Read the new posts from the run's dataset, or connect a webhook, Slack, n8n, Make or Zapier to the run.

When nothing new was posted, the run finishes green with an empty dataset and costs nothing in posts. Each memory name is separate, so one schedule per watch list never mixes with another. To start over, use a new name.

Use cases for Truth Social data

Monitoring Trump's Truth Social posts

Schedule realDonaldTrump every 15 minutes with Only new posts and send each new row to Slack, Telegram or e-mail through a webhook or Make. The exact createdAt and editedAt timestamps tell you when a post appeared and whether it was changed later.

Market-moving posts for traders

Posts about tariffs, companies and sectors move prices. Pipe new posts into a keyword or LLM classifier, and keep engagementTotal to see which announcements spread. linkDomain shows which outlets a post amplifies.

Newsrooms and fact-checking

Archive every post of the accounts you cover with links to the originals, quoted posts and ReTruth sources, so a deleted or edited post is still in your records with its original time.

Political and academic research

Pull hundreds of posts per account with a date window and compare original posts against ReTruths, posting hours, media use and engagement across the Trump family, the White House and campaign accounts.

AI agents and RAG

Plain text, ISO dates and flat fields go straight into a vector store or an agent's context — no HTML cleanup.

Integrations

Truth Social Scraper works with everything on the Apify platform: schedules, webhooks, Google Sheets, n8n, Make, Zapier, Slack, LangChain, Airbyte and the Apify MCP server.

Use the Truth Social Scraper API from Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lergassy/truth-social-scraper").call(run_input={
"usernames": ["realDonaldTrump"],
"postedAfter": "1 day",
"maxPostsPerUser": 200,
})
for post in client.dataset(run["defaultDatasetId"]).iterate_items():
print(post["createdAt"], post["likesCount"], post["text"][:100])

Use the Truth Social Scraper API from JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lergassy/truth-social-scraper').call({
usernames: ['realDonaldTrump'],
onlyNewRowsStore: 'my-truth-watch',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const p of items) console.log(p.createdAt, p.url, p.text);

Run it with one HTTP request

curl -X POST "https://api.apify.com/v2/acts/lergassy~truth-social-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"usernames": ["realDonaldTrump"], "maxPostsPerUser": 20}'

🤖 For AI agents and LLM apps

Compact reference for agents calling lergassy/truth-social-scraper through the Apify MCP server or the Apify API.

Purpose: Truth Social posts and profiles without login. One row = one post or one profile; type tells which (post, profile, error).

Minimal input: {"usernames": ["realDonaldTrump"]} or {"usernames": [], "postUrls": ["https://truthsocial.com/@realDonaldTrump/117363810994521058"]} or {"mode": "profiles", "usernames": ["WhiteHouse"]}.

Output fields (posts): type, id, url, createdAt, editedAt, username, displayName, accountId, authorVerified, authorFollowers, authorAvatarUrl, text, contentHtml, language, isRepost, isReply, isQuote, repostedPostId, repostedPostUrl, repostedUsername, inReplyToId, inReplyToAccountId, inReplyToUsername, quotedPostId, quotedPostUrl, quotedUsername, quotedText, quotedCreatedAt, quotedMediaUrls, repliesCount, repostsCount, likesCount, engagementTotal, mediaCount, mediaTypes, mediaUrls, mediaPreviewUrls, videoDurationSec, linkUrl, linkTitle, linkDomain, links, mentions, hashtags, sensitive, sponsored, visibility, sourceInput, scrapedAt. Profiles: id, username, displayName, url, bio, website, location, followersCount, followingCount, postsCount, verified, premium, bot, locked, createdAt, lastPostAt, avatarUrl, headerUrl.

Behaviours an agent should know:

  • Posts come newest-first; maxPostsPerUser (default 20) caps each account.
  • Use postedAfter ("1 day", "2026-09-01") instead of fetching more and filtering; skipped posts are free.
  • ReTruths are included by default; set includeReposts: false for original posts only. The account's replies are excluded by default.
  • text of a media-only post is an empty string; check mediaUrls.
  • Replies to a post (comments), search, hashtag feeds and trends need a logged-in account on Truth Social and are not returned.
  • Billed per post and per profile; error rows are free.

❓ FAQ

Truth Social Scraper reads only public posts and profiles that Truth Social shows to anyone without logging in. It does not log in, does not use anyone's account and does not access private accounts, direct messages or anything behind a login. Scraping public data is generally lawful, but posts can contain personal data protected by laws such as GDPR and CCPA, and post text is the author's content. Use the data for legitimate purposes, respect copyright when republishing, and consult a lawyer if you are unsure.

Do I need a Truth Social account or an API key?

No. Nothing is logged in and no API key is needed — only an Apify account.

Is there an official Truth Social API?

Truth Social does not offer a public developer API or developer program. Truth Social Scraper is a ready Truth Social API alternative: send JSON, get rows.

Can I use Truth Social Scraper with the Apify API?

Yes. Every run can be started and read through the Apify API — see the Python, JavaScript and curl examples above. The run-sync-get-dataset-items endpoint returns the rows in the same HTTP response.

Can I use it through an MCP server?

Yes. Truth Social Scraper is available to Claude, ChatGPT, Cursor and other AI agents through the Apify MCP server (https://mcp.apify.com). Ask your agent for "Trump's Truth Social posts from today" and it can call the Actor directly.

Can I integrate it with other apps?

Yes — Google Sheets, Slack, n8n, Make, Zapier, Airbyte, webhooks and schedules all work out of the box on Apify.

How much does it cost to scrape 1,000 Truth Social posts?

$3.20 on the Starter plan, $2.40 on Scale and $1.60 on Business and above; $4.00 on the Free plan. Profiles are $1.80 per 1,000 on Starter ($2 on the Free plan). No start fee, and posts you filtered out or already received are free.

How do I get only new posts from Trump?

Set Only new posts — memory name to any name, for example trump-watch, and schedule the Actor. Each run returns only posts that were not delivered under that name before. See the section above.

How fast is it?

The prefilled run (20 posts) finishes in about 5–12 seconds; 100 posts of one account take about 12 seconds and 300 posts about 30 seconds.

Why does the Actor use a residential proxy?

Truth Social sits behind Cloudflare, which blocks datacenter addresses on every request and challenges some residential ones. The Actor uses a residential proxy by default, keeps an address that works, and moves to a fresh address and browser fingerprint when one is challenged. If cheap residential addresses keep getting challenged, it steps up to Apify Residential and, as a last resort, to a web-unblocker service, so a post is still delivered. The proxy cost is already in the price per post. If you switch the proxy to a datacenter group, expect error rows.

Can I get the replies (comments) under a post, search results or hashtag feeds?

Not in this version. Truth Social returns replies to a post, search, hashtag timelines and trends only to logged-in users, and this Actor never logs in. Each post row carries repliesCount, so you can see which posts drew a discussion. The account's own replies to others are available with includeReplies: true.

Does it return one row per post?

Yes. A post found twice in one run — for example by an account and by its link — is returned and billed once.

What happens with deleted or unknown accounts and posts?

You get a free error row that says what went wrong, and the run still finishes successfully with everything else you asked for.

Why does one account return an error row although it exists?

A few Truth Social accounts hide themselves from logged-out visitors — Truth Social then answers only to signed-in users. Such an account comes back as a free error row that says so, and the other accounts in the run are scraped as usual.

Images and videos are hosted on Truth Social's own servers (static-assets-1.truthsocial.com). Download files soon after the run if you need a permanent copy.

Your feedback

Found a bug, need a field or a new mode? Open an issue on the Issues tab — we answer quickly and ship fixes fast. If Truth Social Scraper saves you time, a short review on the Store helps other people find it.

You might also like

ActorWhat it does
Threads ScraperThreads posts, replies, profiles and search — the same no-login approach for Meta's network
Google News ScraperHeadlines for any query, topic or publisher — see how the press picks up a post
Election Odds APILive election odds from Kalshi and Polymarket in one table
Prediction Markets APIKalshi and Polymarket probabilities, prices and volume
Polymarket ScraperEvery Polymarket market with odds, volume and liquidity