Truth Social Scraper avatar

Truth Social Scraper

Pricing

from $1.15 / 1,000 results

Go to Apify Store
Truth Social Scraper

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

Tri⟁angle

Maintained by Apify

Actor 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:

FieldWhat it holds
username, displayName, urlThe account and its page
description, websiteThe bio and linked site
followersCount, followingCount, postsAndRepliesCountAudience and activity
verified, createdAtVerification and when the account was created
avatar, headerProfile and header images

Posts and replies, one row per post:

FieldWhat it holds
contentThe post text, as HTML, or plain text with cleanContent on
createdAt, url, idWhen it was posted and where
favouritesCount, reblogsCount, repliesCountLikes, reposts, and replies
mediaAttachmentsImages, videos, and GIFs, with their URLs and preview images
mentions, tagsAccounts mentioned and hashtags used
pinned, muted, sensitiveFlags on the post
quote, reblog, card, pollA quoted or reposted post, a link preview, or a poll, when there is one
language, visibilityDetected language and who can see it

How to scrape Truth Social in Apify Console

  1. Open Truth Social Scraper and add usernames, with or without @, or profile URLs to profiles.
  2. Pick what to collect in resultsType: profile details, posts, replies, or posts and replies.
  3. Set maxPostsAndReplies per profile.
  4. Start the run and export the dataset as JSON, CSV, or Excel.

Input

FieldTypeWhat it does
profilesarrayUsernames, with or without @, or profile URLs such as https://truthsocial.com/@realDonaldTrump
resultsTypestringprofile-details, posts, replies, or posts-and-replies
maxPostsAndRepliesintegerThe most posts or replies per profile. Default 100
postsNewerThanstringOnly posts newer than this ISO date, for example 2026-04-01
continueFromLastPostIdbooleanEach run returns only what is newer than the last post the previous run saw. Default false
peekbooleanWith continueFromLastPostId, filter by the saved position without moving it. Default false
onlyPostsWithMediabooleanOnly posts with an image, video, or GIF. Default false
includeMutedbooleanInclude muted posts. Default true
cleanContentbooleanStrip 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:

  1. 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.
  2. Fetch. When the detect run returned a post, run again with peek: false and a higher maxPostsAndReplies. 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:

EventFree planDiamond 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.

  • content has HTML tags. Turn on cleanContent.
  • A run returned nothing with continueFromLastPostId on. 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.

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.