Truth Social Scraper avatar

Truth Social Scraper

Pricing

Pay per event

Go to Apify Store
Truth Social Scraper

Truth Social Scraper

Extract posts and profiles from Truth Social. Scrape Donald Trump and any public profile's posts, get engagement metrics, media, and author data. No API key needed. Export to JSON, CSV, or Excel.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

What does Truth Social Scraper do?

Truth Social Scraper is a fast, reliable tool for extracting posts and profile data from Truth Social β€” the social media platform used by Donald Trump, political figures, and millions of conservative users. Extract posts from any public profile, fetch specific posts by URL, or pull recent activity from top accounts.

The scraper uses the Mastodon-compatible Truth Social API combined with residential proxy rotation to bypass Cloudflare protection, delivering clean, structured JSON data with full post content, engagement metrics, author details, and media attachments.

No API key or Truth Social account required. The scraper handles authentication automatically.

Who is Truth Social Scraper for?

πŸ”¬ Political researchers and academics

  • Track statements and policy positions of political figures over time
  • Analyze communication patterns, posting frequency, and engagement trends
  • Build datasets for political science research and NLP analysis

πŸ“° Journalists and media organizations

  • Monitor Truth Social for breaking news from political figures
  • Verify claims and track evolving statements
  • Archive public statements with timestamps and engagement metrics

πŸ“Š Marketing analysts and strategists

  • Analyze audience engagement on political content
  • Track brand mentions and political sentiment
  • Benchmark posting strategies and content performance

πŸ›  Developers and data engineers

  • Build news monitoring dashboards and alert systems
  • Feed Truth Social data into analytics pipelines
  • Create sentiment analysis and NLP datasets from political discourse

Why use Truth Social Scraper?

  • βœ… Actually works β€” competitors often break when Cloudflare updates. Our residential proxy rotation handles CF challenges automatically.
  • βœ… No account needed β€” works without a Truth Social login or API credentials
  • βœ… Rich data extraction β€” captures all post fields including engagement counts, media attachments, author profiles, and hashtags
  • βœ… Flexible modes β€” scrape profiles, fetch specific posts, or get trending content
  • βœ… Scale on demand β€” handle any volume from a single post to thousands, with pagination built in
  • βœ… Clean, flat JSON β€” no nested objects, ready for spreadsheets, databases, and data pipelines
  • βœ… Export anywhere β€” download as JSON, CSV, Excel, XML, or RSS from Apify Console
  • βœ… Schedule runs β€” set up daily or hourly monitoring with Apify's built-in scheduler

What data can you extract?

πŸ“ Post data

FieldDescription
idUnique post ID
urlDirect URL to the post
contentPost text (HTML stripped, plain text)
contentHtmlRaw HTML content
createdAtPublication timestamp (ISO 8601)
repliesCountNumber of replies
reblogsCountNumber of ReTruths (reposts)
favouritesCountNumber of likes/favorites
isReblogWhether this is a ReTruth
rebloggedFromUrlOriginal post URL (if ReTruth)
inReplyToIdParent post ID (if reply)
mediaAttachmentsImages and video URLs
hashtagsList of hashtag names
mentionsList of mentioned usernames
visibilityPost visibility (public/unlisted)
languageDetected language code
scrapedAtWhen this post was scraped

πŸ‘€ Author profile data

FieldDescription
authorIdUser account ID
authorUsernameUsername (e.g., "realDonaldTrump")
authorDisplayNameDisplay name (e.g., "Donald J. Trump")
authorUrlProfile URL
authorAvatarUrlProfile picture URL
authorFollowersCountNumber of followers
authorFollowingCountNumber following
authorPostsCountTotal posts published
authorVerifiedVerified account status
authorCreatedAtAccount creation date

How much does it cost to scrape Truth Social?

This Actor uses pay-per-event (PPE) pricing β€” you pay only for what you scrape. No monthly subscription. All platform costs included.

FreeStarter ($29/mo)Scale ($199/mo)Business ($999/mo)
Per post$0.0023$0.002$0.00156$0.0012
1,000 posts$2.30$2.00$1.56$1.20
10,000 posts$23.00$20.00$15.60$12.00

Higher-tier plans get additional volume discounts (up to 72% off for enterprise).

Real-world cost examples:

TaskPostsDurationCost (Free tier)
Scrape Trump's last 50 posts50~15s~$0.12
Monitor 5 accounts, 20 posts each100~30s~$0.23
Daily digest: top 200 posts200~60s~$0.46
Weekly archive: 500 posts500~2min~$1.15

Free plan estimate: With Apify's $5 free monthly credits, you can scrape approximately 2,170 posts per month at no cost.

How to scrape Truth Social posts

  1. Open Truth Social Scraper on Apify Store
  2. Select a mode β€” Profile, Trending, or Specific Post
  3. Enter inputs β€” usernames (e.g., realDonaldTrump) or post URLs
  4. Set max posts β€” how many posts to scrape per account
  5. Click "Start" β€” results appear in the dataset within seconds
  6. Export data β€” download as JSON, CSV, Excel, XML, or RSS

Input examples:

Profile mode β€” scrape posts from specific accounts:

{
"mode": "profile",
"usernames": ["realDonaldTrump", "DonaldTrumpJr", "KariLake"],
"maxPosts": 50,
"includeReplies": false,
"includeReblogs": true
}

Post mode β€” fetch specific posts by URL:

{
"mode": "post",
"postUrls": [
"https://truthsocial.com/@realDonaldTrump/posts/116337483523761845",
"https://truthsocial.com/@realDonaldTrump/posts/116300000000000000"
]
}

Trending mode β€” get recent posts from top accounts:

{
"mode": "trending",
"maxPosts": 100
}

Input parameters

ParameterTypeDefaultDescription
modestringprofileScraping mode: profile, trending, or post
usernamesstring[][]Truth Social usernames to scrape (without @). Used in profile mode.
postUrlsstring[][]Post URLs to fetch. Used in post mode.
maxPostsinteger50Max posts to scrape per user or total. Minimum: 1.
includeRepliesbooleanfalseInclude reply posts (posts responding to others)
includeReblogsbooleantrueInclude ReTruths (reposted content)

Output examples

Typical post output:

{
"id": "116337483523761845",
"url": "https://truthsocial.com/@realDonaldTrump/116337483523761845",
"content": "I would like to thank the hardworking Commissioners and Staff...",
"contentHtml": "<p>I would like to thank the hardworking Commissioners...</p>",
"createdAt": "2026-04-02T22:32:01.152Z",
"visibility": "public",
"language": "en",
"repliesCount": 1199,
"reblogsCount": 2593,
"favouritesCount": 10562,
"isReblog": false,
"rebloggedFromUrl": null,
"inReplyToId": null,
"mediaAttachments": [
{
"id": "123456789",
"type": "image",
"url": "https://media.truthsocial.com/media_attachments/...",
"previewUrl": "https://media.truthsocial.com/preview/...",
"description": null
}
],
"hashtags": [],
"mentions": [],
"authorId": "107780257626128497",
"authorUsername": "realDonaldTrump",
"authorDisplayName": "Donald J. Trump",
"authorUrl": "https://truthsocial.com/@realDonaldTrump",
"authorAvatarUrl": "https://media.truthsocial.com/accounts/avatars/...",
"authorFollowersCount": 12078420,
"authorFollowingCount": 52,
"authorPostsCount": 1840,
"authorVerified": false,
"authorCreatedAt": "2022-02-11T16:16:57.705Z",
"scrapedAt": "2026-04-03T00:00:00.000Z"
}

Tips for best results

  • Start small: Use maxPosts: 10 for your first run to verify data format before scaling up
  • Multiple accounts: Add multiple usernames to a single run β€” the scraper processes them sequentially
  • No replies by default: Set includeReplies: false (default) to focus on original content; set to true if you need conversation threads
  • ReTruths: Keep includeReblogs: true (default) for complete posting history; disable to see only original posts
  • Schedule monitoring: Use Apify's scheduler to run daily and maintain an archive of posts over time
  • Cost control: For large archives, use maxPosts: 100 per run and paginate manually using post IDs

Integrations

Truth Social Scraper β†’ Google Sheets (political monitoring) Export Trump's daily posts to a Google Sheet automatically. Connect via Zapier or Make, filter posts by keyword, and share with your research team.

Truth Social Scraper β†’ Slack/Discord (news alerts) Set up hourly runs and send new posts to a team channel. Use Apify webhooks to trigger on run completion and filter for high-engagement posts.

Truth Social Scraper β†’ Elasticsearch (full-text search) Use Apify's API to push scraped posts into Elasticsearch for full-text search, keyword monitoring, and sentiment analysis across thousands of posts.

Truth Social Scraper β†’ Power BI / Tableau (analytics dashboard) Schedule daily runs and connect Apify datasets to your BI tool via CSV export or REST API for engagement trend visualizations.

Truth Social Scraper β†’ Custom NLP pipeline Use the Actor's API to feed raw post text into sentiment analysis, topic modeling, or entity extraction pipelines for political research.

Monitoring workflow: Schedule runs at 0 */6 * * * (every 6 hours) to capture new posts from monitored accounts and detect posting patterns.

Using the Apify API

Run this actor programmatically using the Apify API.

Node.js:

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/truth-social-scraper').call({
mode: 'profile',
usernames: ['realDonaldTrump', 'KariLake'],
maxPosts: 50,
includeReplies: false,
includeReblogs: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} posts`);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/truth-social-scraper').call(run_input={
'mode': 'profile',
'usernames': ['realDonaldTrump', 'KariLake'],
'maxPosts': 50,
'includeReplies': False,
'includeReblogs': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(f'Scraped {len(items)} posts')

cURL:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~truth-social-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "profile",
"usernames": ["realDonaldTrump"],
"maxPosts": 50
}'

Use with AI agents via MCP

Truth Social Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client β€” this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Use automation-lab/truth-social-scraper to fetch the last 50 posts from realDonaldTrump and summarize the main topics"
  • "Scrape Trump and Kari Lake's Truth Social posts from this week and compare their posting frequency"
  • "Get the 10 most-liked recent posts from realDonaldTrump on Truth Social"

Learn more in the Apify MCP documentation.

Truth Social's posts are publicly accessible without login for most profiles, which places them in the same category as other public social media content. Web scraping of publicly available data is generally permissible for research, journalism, and analysis purposes under US law.

Key guidelines:

  • βœ… Scrape public posts only β€” this tool only accesses content visible to non-logged-in users
  • βœ… Respect rate limits β€” the scraper includes built-in delays to avoid overloading servers
  • βœ… Academic and journalistic use β€” collecting public statements from public figures is well-established
  • ⚠️ No automated account creation β€” do not use this tool to create accounts or engage with the platform
  • ⚠️ GDPR compliance β€” if storing data about EU citizens, ensure proper data handling and retention policies
  • ⚠️ Check ToS regularly β€” Truth Social's terms of service may evolve

Apify recommends using scraped data responsibly and in compliance with all applicable laws. For detailed guidance, see Apify's web scraping legality guide.

FAQ

How many posts can I scrape? There's no hard limit β€” the scraper paginates through a user's post history. In practice, most accounts have hundreds to thousands of posts. Set maxPosts: 0 for unlimited (though very large archives may take several minutes).

How much does it cost to scrape 1,000 posts? On the free tier: $2.30 (at $0.0023/post). On the Starter plan: $2.00. On Scale: $1.56. Your first $5 in free credits covers ~2,170 posts.

Is this faster than the official Truth Social API? Truth Social doesn't offer a public API for third-party developers. This scraper uses the Mastodon-compatible internal API with residential proxies to reliably deliver data.

Why are some posts returning null for certain fields? Some fields like language may be null if Truth Social didn't detect or store the value. Media attachments are empty arrays for text-only posts. This is expected behavior.

Why am I getting 0 results? Common causes: (1) The username doesn't exist on Truth Social β€” double-check spelling. (2) The account may be private or deactivated. (3) Residential proxy connectivity issues β€” try re-running. Contact support if the issue persists.

How do I scrape posts from a specific date range? Filter results by createdAt field after scraping. Alternatively, use maxPosts to get recent posts, then check timestamps in the output.

Can I scrape posts by hashtag? Hashtag timeline search requires authentication which is not yet supported. Use profile mode to scrape accounts that commonly use specific hashtags.

How do I monitor new posts over time? Use Apify's scheduler to run the actor every hour or day. Combine with Apify's deduplication β€” compare id fields to identify new posts since the last run.

Other social media scrapers

Looking for scrapers for other platforms? Check out our full collection: