Truth Social Scraper
Pricing
from $1.15 / 1,000 results
Truth Social Scraper
Scrape Truth Social profiles and what they post. Each post comes with its text, date, engagement, and media, and you can collect only what is new since your last run, so following an account never means paying twice.
Pricing
from $1.15 / 1,000 results
Rating
5.0
(8)
Developer
Tri⟁angle
Maintained by ApifyActor stats
7
Bookmarked
503
Total users
50
Monthly active users
10 days ago
Last modified
Categories
Share
Scrape Truth Social posts, replies, and profiles
Truth Social Scraper takes Truth Social usernames or profile URLs, like @realDonaldTrump, and returns either the profile itself or its posts and replies: the text, the date, likes, reposts, replies, media, mentions, and hashtags. It can collect only what is new since your last run, or everything after a date, so following an account costs only the new posts.
What you get
What a row holds depends on resultsType.
Profile details, one row per profile:
| Field | What it holds |
|---|---|
username, displayName, url | The account and its page |
description, website | The bio and linked site |
followersCount, followingCount, postsAndRepliesCount | Audience and activity |
verified, createdAt | Verification and when the account was created |
avatar, header | Profile and header images |
Posts and replies, one row per post:
| Field | What it holds |
|---|---|
content | The post text, as HTML, or plain text with cleanContent on |
createdAt, url, id | When it was posted and where |
favouritesCount, reblogsCount, repliesCount | Likes, reposts, and replies |
mediaAttachments | Images, videos, and GIFs, with their URLs and preview images |
mentions, tags | Accounts mentioned and hashtags used |
pinned, muted, sensitive | Flags on the post |
quote, reblog, card, poll | A quoted or reposted post, a link preview, or a poll, when there is one |
language, visibility | Detected language and who can see it |
How to scrape Truth Social in Apify Console
- Open Truth Social Scraper and add usernames, with or without
@, or profile URLs toprofiles. - Pick what to collect in
resultsType: profile details, posts, replies, or posts and replies. - Set
maxPostsAndRepliesper profile. - Start the run and export the dataset as JSON, CSV, or Excel.
Input
| Field | Type | What it does |
|---|---|---|
profiles | array | Usernames, with or without @, or profile URLs such as https://truthsocial.com/@realDonaldTrump |
resultsType | string | profile-details, posts, replies, or posts-and-replies |
maxPostsAndReplies | integer | The most posts or replies per profile. Default 100 |
postsNewerThan | string | Only posts newer than this ISO date, for example 2026-04-01 |
continueFromLastPostId | boolean | Each run returns only what is newer than the last post the previous run saw. Default false |
peek | boolean | With continueFromLastPostId, filter by the saved position without moving it. Default false |
onlyPostsWithMedia | boolean | Only posts with an image, video, or GIF. Default false |
includeMuted | boolean | Include muted posts. Default true |
cleanContent | boolean | Strip HTML from content and return plain text. Default false |
The smallest input that works:
{"profiles": ["@realDonaldTrump"],"resultsType": "posts"}
Plain-text posts since a date:
{"profiles": ["realDonaldTrump"],"resultsType": "posts-and-replies","postsNewerThan": "2026-09-01","cleanContent": true,"maxPostsAndReplies": 500}
Only what is new
Two ways to avoid paying for the same posts twice.
By date. postsNewerThan returns only posts newer than a date. Truth Social lists posts newest first, so the Actor stops reading as soon as it reaches an older post that is not pinned, which keeps backfills cheap.
By position. continueFromLastPostId remembers the newest post it saw for each profile and content type, in the named key-value store store-truth-cursor, and the next run returns only what came after it. No date to keep track of.
For a cheap "anything new?" check from n8n, Zapier, or Make, combine it with peek:
- Detect.
continueFromLastPostId: true,peek: true,maxPostsAndReplies: 1. It returns one post if there is something new and nothing if there is not, and leaves the saved position alone. - Fetch. When the detect run returned a post, run again with
peek: falseand a highermaxPostsAndReplies. It collects everything new and moves the position forward.
Call it from code, or from an AI agent
Start a run with the Apify API and get the posts back in the same request:
curl -X POST "https://api.apify.com/v2/acts/tri_angle~truth-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"profiles": ["realDonaldTrump"], "resultsType": "posts", "maxPostsAndReplies": 20, "cleanContent": true}'
To let an agent use it, connect Apify's MCP server at https://mcp.apify.com in Claude, Cursor, or any MCP client and add Truth Social Scraper as a tool. An agent can then read an account's latest posts and summarize them.
What it costs
You pay per event, at the price of your Apify plan:
| Event | Free plan | Diamond plan |
|---|---|---|
| Actor start | $0.0001 | $0.00005 |
| Result (one post, reply, or profile) | $0.005 | $0.0005 |
On the Free plan, 1,000 posts cost about $5. A detect run that finds nothing costs only the start fee.
Limitations
- Public profiles, posts, and replies only.
- Comments on other people's posts need a logged-in account on Truth Social, so they are not collected.
- Counts are what Truth Social shows at run time.
Troubleshooting
These cover what usually goes wrong.
contenthas HTML tags. Turn oncleanContent.- A run returned nothing with
continueFromLastPostIdon. Nothing new was posted since the last run. That is the cursor working. - A profile returns nothing. Check the username on truthsocial.com.
For anything else, open an issue on the Actor's Issues tab with your run ID.
Frequently asked questions
These are the questions people ask before their first run.
Is the Truth Social data live?
Yes. Every run reads Truth Social at the time it runs.
What is the smallest input that works?
One username in profiles and a resultsType, for example posts.
What happens when there are no new posts?
With continueFromLastPostId or postsNewerThan, the run returns nothing and you pay only the start fee.
Can I use it as a Truth Social API?
Yes. Call it through the Apify API with a JSON input and read the posts back as JSON. It needs no Truth Social account or login.
Does it work with MCP and AI agents?
Yes. Add it to Apify's MCP server and any MCP client can run it as a tool.
How much does it cost to scrape 1,000 Truth Social posts?
About $5 on the Free plan, down to about $0.50 on the Diamond plan.
How do I get notified of every new post?
Schedule a detect run with continueFromLastPostId and peek, and trigger a fetch run from your workflow tool when it returns a post.
Can I scrape the comments under a post?
No. Truth Social requires a login to see them, and this Actor only reads public data.
Is it legal to scrape Truth Social?
Scraping publicly available data is generally legal, but posts and profiles can contain personal data, which laws such as GDPR protect. Follow Truth Social's terms and ask a lawyer if you are unsure about your use case.