Truth Social Scraper - No Login, Profile + Post Data
Pricing
$2.50 / 1,000 profile or post scrapeds
Truth Social Scraper - No Login, Profile + Post Data
Scrape Truth Social profiles and posts via the official public API. No login, no cookies. Returns followers, bio, likes, reblogs, replies and media URLs. $0.0025 per profile or post scraped.
Pricing
$2.50 / 1,000 profile or post scrapeds
Rating
0.0
(0)
Developer
Gio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Why use this scraper
Truth Social does not expose a public developer API, and most "social listening" tools skip it entirely because the platform sits behind Cloudflare and has no documented data feed. If you track political figures, brand mentions, campaign messaging or public sentiment, Truth Social is now a primary source you cannot ignore, but there is no clean way to pull profile stats or post history without building a scraper from scratch.
This Actor solves that problem directly. Give it one or more usernames and it returns full profile metadata (followers, following, bio, verification status, total post count) plus the account's recent posts, each with engagement numbers (likes, reblogs, replies) and any attached media. Or give it direct post URLs and get just those records. No login, no cookies, no browser automation, just clean structured JSON ready for a spreadsheet, a dashboard or a downstream analysis pipeline.
Overview
The Actor talks to Truth Social's own public JSON API (the same Mastodon-derived backend the truthsocial.com website itself calls), so there is no HTML parsing to break when the site redesigns its front end. It supports two independent modes: profile mode resolves a list of handles to account IDs, pulls their profile card, then paginates their public timeline up to the limit you set; post mode takes specific post URLs and returns each one's full record without touching the rest of the account's timeline.
Typical run for a handful of profiles with 40 posts each finishes in well under a minute. Cost is per record returned (one profile card counts as one record, one post counts as one record), so a run that asks for 5 profiles with 40 posts each costs for up to 205 scraped records, never more than what actually comes back.
Supported inputs
- Profile mode (
mode: "profile") — pass an array ofhandles(usernames without the@, e.g.realDonaldTrump). For each handle the Actor returns one profile record and up tomaxPostsPerProfilerecent post records (default 40, maximum 200 per profile per run). - Post mode (
mode: "post") — pass an array ofpostUrls, fullhttps://truthsocial.com/@user/<id>links. Each URL resolves to exactly one post record, regardless ofmaxPostsPerProfile. - Debug logging — optional
debugboolean for verbose request/response logging when troubleshooting an input.
Only one mode runs per execution; mixing handles and postUrls in the same run is not supported, start two runs if you need both.
Use cases
- Political and campaign monitoring — track a candidate's or official's posting cadence, engagement trend and messaging in near real time, without manually refreshing the timeline.
- Brand and crisis monitoring — pull every post mentioning a brand, product or executive by monitoring the accounts most likely to post about you, and feed likes/reblogs/replies into an alerting threshold.
- Media and newsroom research — journalists pulling a public figure's statement history for a story, with exact timestamps and direct post URLs for citation.
- Academic and market research — researchers studying platform dynamics, follower growth or engagement patterns on Truth Social at scale across many accounts.
- Competitive intelligence for alt-platform marketers — track how other brands or influencers who are active on Truth Social are performing, follower growth and post frequency included.
How it works
The Actor calls Truth Social's own public account and status endpoints directly, the same ones the website's browser code calls when you open a profile. For profile mode it first resolves the handle to an internal account ID, retrieves the account object, and then paginates the account's public post timeline until it hits maxPostsPerProfile or runs out of posts. For post mode it resolves each URL straight to its post ID and fetches that single record. Because this reads the platform's own JSON responses rather than parsing rendered HTML, the Actor keeps working through front-end redesigns and only needs an update if Truth Social itself changes its API response shape.
Input configuration
Profile mode, single account:
{"mode": "profile","handles": ["realDonaldTrump"],"maxPostsPerProfile": 40}
Profile mode, multiple accounts, smaller batch:
{"mode": "profile","handles": ["realDonaldTrump", "DevinNunes", "TeamTrump"],"maxPostsPerProfile": 20}
Post mode, specific posts:
{"mode": "post","postUrls": ["https://truthsocial.com/@realDonaldTrump/117408281179466427","https://truthsocial.com/@realDonaldTrump/117408959105269388"]}
Output sample
Real output from a live run (profile card, then two posts):
{"kind": "profile","id": "107780257626128497","username": "realDonaldTrump","displayName": "Donald J. Trump","bio": "","avatar": "https://static-assets-1.truthsocial.com/.../454286ac07a6f6e6.jpeg","followers": 13101003,"following": 69,"postsCount": 37059,"createdAt": "2022-02-11T16:16:57.705Z","verified": true,"url": "https://truthsocial.com/@realDonaldTrump"}
{"kind": "post","id": "117408281179466427","url": "https://truthsocial.com/@realDonaldTrump/117408281179466427","username": "realDonaldTrump","displayName": "Donald J. Trump","content": "The Dumocrats are Scammers. These are the real FACTS!!! President DJT","createdAt": "2026-10-09T01:09:56.709Z","likes": 9337,"reblogs": 3264,"replies": 1138,"mediaCount": 1,"media": [{ "type": "image", "url": "https://static-assets-1.truthsocial.com/.../ec2f9c154a11c21e.jpg" }],"language": "en","sensitive": false}
Key output fields
| Field | Type | Description |
|---|---|---|
kind | string | profile or post, tells you which record type the row is. |
id | string | Account ID (profile rows) or post ID (post rows). |
username | string | Account handle without @. |
displayName | string | Public display name. |
bio | string | Account bio text (profile rows). |
followers / following | integer | Follower and following counts (profile rows). |
postsCount | integer | Total posts by the account (profile rows). |
verified | boolean | Whether the account carries a verified badge (profile rows). |
content | string | Post text, HTML stripped (post rows). |
likes / reblogs / replies | integer | Engagement counts at scrape time (post rows). |
mediaCount / media | integer / array | Number of attachments and their type + URL (post rows). |
createdAt | string (ISO date) | Account creation date or post publish date. |
url | string | Direct link to the profile or post. |
Pricing
Pay-per-event pricing, no subscription:
| Event | Price |
|---|---|
| Profile or post scraped | $0.0025 per record |
A run pulling 5 profiles with 40 posts each costs for at most 205 records ($0.51 total), and you only pay for records actually returned, never for empty attempts.
What makes this richer than the competition
Most Truth Social scrapers on the Apify Store only cover one mode. muhammetakkurtt/truth-social-scraper (143 users in the last 30 days) focuses on profile and post retrieval but requires separate actors for hashtag or comment data, splitting the workflow across multiple paid runs. automation-lab/truth-social-scraper (31 users in the last 30 days) covers similar ground but does not expose media attachment details (type and direct URL) in its output, which matters for anyone archiving or re-posting attached images and videos.
This Actor keeps both profile and post retrieval in a single, focused tool with full media detail (type, URL, count) included on every post row, plus the verified badge and exact creation date on every profile row, so you do not need a second call just to confirm an account's authenticity or media content.
Notes & limitations
- Truth Social's API can rate-limit aggressive polling; keep batch sizes reasonable (a handful of handles per run) rather than hundreds at once.
maxPostsPerProfileonly returns the account's most recent posts, it does not search historical posts beyond what the account's timeline currently exposes.- Private or suspended accounts return no data, this is a platform restriction, not a scraper limitation.
- Reposts ("ReTruths") appear in the timeline but are not separated from original posts in this version, both come through as
postrows. - Media URLs point to Truth Social's CDN and may expire or change if the platform migrates storage; download promptly if you need to archive attachments.
FAQ
Does this need a Truth Social account or login? No. It reads the platform's own public API, the same data anyone can see by visiting a public profile in a browser, logged out.
Can I track a private account? No, private accounts are not accessible through the public API, this applies to any scraper, not just this one.
How many posts can I pull per account?
Up to 200 per account per run, controlled with maxPostsPerProfile. For continuous monitoring, schedule the Actor to run periodically and store only the new posts since the last run.
Can I get older posts than what shows up by default?
The Actor paginates as far back as maxPostsPerProfile allows within the account's available timeline; it does not search or filter by date range in this version.
What happens if a handle does not exist or is misspelled? That handle is skipped and logged, the run continues for the remaining handles and still returns their results.
Can I mix profile and post mode in one run? No, pick one mode per run. Start a second run if you need both profile data and specific post lookups.
For AI Agents & LLM Apps
This Actor is MCP-compatible and works directly inside AI agent workflows.
Via Apify MCP Server (mcp.apify.com): add this Actor as a tool to any MCP-compatible client (Claude, Cursor, etc.) and call it by name, passing the same JSON input shown above. The agent receives the scraped records as a tool result it can reason over directly.
Via API (synchronous, for quick single calls from your own code):
curl "https://api.apify.com/v2/acts/YOUR_USERNAME~truth-social-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "profile", "handles": ["realDonaldTrump"], "maxPostsPerProfile": 20}'
This call blocks until the run finishes and returns the dataset items directly in the response, ideal for an LLM app that needs the data inline without managing a separate polling step.
Disclaimer
This Actor is an independent tool that reads publicly available data through Truth Social's own public API. It is not affiliated with, endorsed by or sponsored by Truth Social, Trump Media & Technology Group, or any related entity. "Truth Social" is a trademark of its respective owner, used here only to describe the platform this Actor reads data from.
SEO Keywords
truth social scraper, truth social api, scrape truth social posts, truth social profile scraper, truth social data extraction, trump truth social scraper