Truth Social Scraper
Pricing
from $2.00 / 1,000 results
Truth Social Scraper
Price Drop: now only $2 per 1000 results!!!. Truth Social Scraper — Posts, Profiles & Engagement Metrics: Scrape any public Truth Social profile in seconds. Get posts, full profile data, engagement metrics, mentions, hashtags, polls, link previews, and media attachments as clean, structured data.
Pricing
from $2.00 / 1,000 results
Rating
4.1
(2)
Developer
Harish Garg
Maintained by CommunityActor stats
1
Bookmarked
13
Total users
4
Monthly active users
2 days ago
Last modified
Categories
Share
Truth Social Scraper — Posts, Profiles, Engagement Metrics & Media
Extract public posts, profile data, engagement metrics, and media attachments from any Truth Social account. Built for journalists, researchers, OSINT analysts, brand-monitoring teams, and developers who need clean, structured Truth Social data without standing up a scraping pipeline.
The fastest and most affordable Truth Social scraper on Apify. Typical runs finish in seconds, use minimal compute, and the per-run cost is a fraction of comparable scrapers — so you can monitor more profiles, more often, for less.
What you can do with this scraper
- Track political figures and public officials — Donald Trump, members of Congress, agencies, campaigns
- Monitor brand mentions and engagement on public Truth Social profiles
- Build news and media-monitoring dashboards with structured, ready-to-analyze data
- Run academic research and journalism investigations into discourse, virality, and information flows
- Power OSINT workflows with rich post and profile metadata
- Feed analytics pipelines, BI tools, and LLMs with clean JSON
- Archive public posts before they disappear from timelines
Why this scraper
| This scraper | Typical alternatives | |
|---|---|---|
| Speed per profile | Seconds | Tens of seconds to minutes |
| Cost per run (10 posts) | Effectively zero | Often cents to dollars |
| Profile metadata depth | Full profile (bio, avatar, verified, followers, etc.) | Username only |
| Media attachment depth | Full metadata (URL, preview, dimensions, blurhash) | URL only |
| Repost handling | Original post URL and original author profile | URL only, or missing |
| Quote posts, polls, link cards, mentions, hashtags | Included | Often missing |
| Incremental monitoring | Built in — only-new-posts mode dedupes across scheduled runs | Re-scrapes the same posts every run |
| Fetch specific posts by URL/ID | Yes | Often profile-only |
| Multiple profiles per run | Yes — mix URLs, handles, usernames | Often one profile per run |
| Setup | None — just enter handles | Often requires API keys, proxy config |
If you've used another Truth Social scraper and found it slow, expensive, or missing fields you need — try this one.
Quick start
- Enter one or more profiles in the Truth Social Username or Handle field. You can paste any of:
- Full URL:
https://truthsocial.com/@realDonaldTrump - Handle:
@realDonaldTrump - Username:
realDonaldTrump
- Full URL:
- Set Max items (1–1000 posts per profile).
- Click Start.
To pull specific posts instead of a timeline, paste their URLs or IDs into Specific Post URLs or IDs — with or without any profiles. To monitor profiles efficiently, enable Only New Posts and schedule the Actor: each run returns only posts published since the last one.
Results stream into the Dataset and can be downloaded as JSON, CSV, Excel, JSONL, RSS, or HTML, or accessed via the Apify API.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
identifiers | array of strings | — | Truth Social profile URLs, @handles, or usernames. Mix and match formats — they're all normalized automatically. Optional if you supply postUrls instead. |
postUrls | array of strings | — | Fetch specific posts directly by URL (https://truthsocial.com/@user/posts/116502796687355089) or by numeric post ID. Use when you want exact posts rather than a profile timeline. Can be combined with identifiers or used on its own. |
maxItems | integer | 10 | Maximum number of posts to return per profile. Allowed range: 1–1000. The default keeps runs fast and cheap; large historical pulls are slower because Truth Social rate-limits deep pagination. |
onlyNewPosts | boolean | false | Incremental mode for monitoring. Returns only posts published since the previous run for each profile — the Actor remembers the newest post it has seen per profile, so scheduled runs return only fresh posts instead of re-scraping the whole timeline. No effect on the first run for a profile. |
includeReplies | boolean | false | Include posts that are replies to other posts. Default keeps the timeline focused on original content. |
includeMedia | boolean | true | Include image and video attachment metadata in each post. |
includePinned | boolean | true | Include posts the profile owner has pinned to their timeline. |
At least one of identifiers or postUrls is required.
Output
Each post is saved as a separate dataset record with rich, structured data. Below is a representative example showing every field you'll receive.
{"id": "116502796687355089","created_at": "2026-05-02T03:13:19.908Z","edited_at": null,"uri": "https://truthsocial.com/@realDonaldTrump/116502796687355089","url": "https://truthsocial.com/@realDonaldTrump/posts/116502796687355089","original_url": null,"content": "<p>Example post content with a <a href=\"https://example.com\">link</a></p>","text": "Example post content with a link","language": "en","visibility": "public","sensitive": false,"spoiler_text": "","is_repost": false,"is_reply": false,"is_pinned": false,"in_reply_to_id": null,"in_reply_to_account_id": null,"quote_id": null,"quote": null,"replies_count": 933,"reblogs_count": 2156,"favourites_count": 8514,"upvotes_count": 8514,"downvotes_count": 0,"mentions": [],"tags": [],"card": null,"poll": null,"media_attachments": [{"id": "116502793707661102","type": "image","url": "https://static-assets-1.truthsocial.com/.../original/6883fa79474d7522.jpg","preview_url": "https://static-assets-1.truthsocial.com/.../small/6883fa79474d7522.jpg","meta": {"original": { "width": 1200, "height": 857, "aspect": 1.4, "size": "1200x857" },"small": { "width": 947, "height": 676, "aspect": 1.4, "size": "947x676" }},"blurhash": "UIF}.lou-ot6~XRPE4bEE3M{NHR*$xNa?GWV","description": null}],"account": {"id": "107780257626128497","username": "realDonaldTrump","acct": "realDonaldTrump","display_name": "Donald J. Trump","url": "https://truthsocial.com/@realDonaldTrump","avatar": "https://static-assets-1.truthsocial.com/.../454286ac07a6f6e6.jpeg","header": "https://static-assets-1.truthsocial.com/.../ba3b910ba387bf4e.jpeg","note": "<p></p>","created_at": "2022-02-11T16:16:57.705Z","followers_count": 12572462,"following_count": 69,"statuses_count": 33160,"last_status_at": "2026-05-02","verified": true,"bot": false,"location": "","website": "www.DonaldJTrump.com","premium": true,"fields": []},"original_account": null}
Output field reference
Post identity & content
| Field | Type | Description |
|---|---|---|
id | string | Unique post identifier |
created_at | ISO 8601 | When the post was published |
edited_at | ISO 8601 | null | When the post was last edited (null if never edited) |
uri | string | Canonical URI of the post |
url | string | Web URL of the post |
original_url | string | null | Original post URL when the post is a repost; otherwise null |
content | string | null | Post body as HTML |
text | string | null | Post body as plain text (HTML stripped, line breaks preserved) |
language | string | null | Detected language code (e.g., en) |
visibility | string | Post visibility (public, unlisted, etc.) |
sensitive | boolean | Marked as sensitive content |
spoiler_text | string | Content warning text, if any |
Post type flags
| Field | Type | Description |
|---|---|---|
is_repost | boolean | Post is a repost (reblog) of another post |
is_reply | boolean | Post is a reply to another post |
is_pinned | boolean | Post is pinned to the profile |
in_reply_to_id | string | null | ID of the post being replied to |
in_reply_to_account_id | string | null | ID of the account being replied to |
quote_id | string | null | ID of the quoted post |
quote | object | null | Full quoted-post object, if applicable |
Engagement metrics
| Field | Type | Description |
|---|---|---|
replies_count | integer | Number of replies |
reblogs_count | integer | Number of reposts |
favourites_count | integer | Number of favorites (likes) |
upvotes_count | integer | Number of upvotes |
downvotes_count | integer | Number of downvotes |
Rich content
| Field | Type | Description |
|---|---|---|
mentions | array | @-mentions in the post (account ids, usernames, URLs) |
tags | array | Hashtags in the post |
card | object | null | Link preview card (URL, title, description, image) |
poll | object | null | Poll data with options and counts |
media_attachments | array | Image and video attachments with full metadata |
Account profiles
The account object contains the full profile of the timeline owner — not just a username. For reposts, original_account contains the same depth of profile data for the original author.
| Field | Type | Description |
|---|---|---|
id | string | Account identifier |
username | string | Handle (without @) |
acct | string | Federated handle |
display_name | string | Name shown on the profile |
url | string | Profile URL |
avatar | string | Avatar image URL |
header | string | Header (cover) image URL |
note | string | Profile bio (HTML) |
created_at | ISO 8601 | Account creation date |
followers_count | integer | Followers count |
following_count | integer | Following count |
statuses_count | integer | Total posts |
last_status_at | date | Date of last post |
verified | boolean | Verified badge |
bot | boolean | Bot account flag |
location | string | Profile location text |
website | string | Profile website |
premium | boolean | Premium subscriber flag |
fields | array | Custom profile fields |
Pricing & performance
This Actor is designed to be the most cost-efficient way to scrape Truth Social on Apify:
- Seconds per run for a typical 10-post fetch.
- Tiny memory footprint — runs comfortably in the smallest Apify container size.
- Minimal data transfer — you pay only for the posts you actually fetch.
Result: per-run costs round to zero for most use cases, even on free Apify plans. Schedule it hourly across hundreds of profiles without breaking the bank.
Use cases & search keywords
This Actor helps you with Truth Social scraping, Truth Social API alternative, Truth Social data extraction, Donald Trump posts scraper, Truth Social monitoring, Truth Social analytics, scrape Truth Social to JSON, Truth Social OSINT, social media monitoring for Truth Social, Truth Social engagement metrics, Truth Social profile data, Truth Social posts to CSV, and archive Truth Social posts.
If you've searched for any of those, this is the Actor you want.
Frequently asked questions
Can I scrape multiple profiles in one run?
Yes. Pass multiple identifiers in the identifiers array — URLs, @handles, and bare usernames can be mixed freely. Each profile is scraped in turn and all results stream into the same Dataset.
How many posts can I get per profile?
Up to 1000 per run, controlled by maxItems. Smaller values keep runs fast and cheap; larger historical pulls take longer because Truth Social rate-limits deep pagination. For ongoing collection, schedule the Actor with Only New Posts enabled (see below) so each run picks up where the last left off.
Can I fetch specific posts instead of a whole timeline?
Yes. Put the post URLs (e.g. https://truthsocial.com/@realDonaldTrump/posts/116502796687355089) or bare numeric post IDs into postUrls. Each is returned with the same rich record shape as timeline posts. This is ideal for re-checking engagement on known posts. You can use postUrls on its own or alongside identifiers.
How do I monitor profiles without re-scraping the same posts?
Enable onlyNewPosts and schedule the Actor. It remembers the newest post it has seen for each profile and, on the next run, returns only posts published since then — so a daily or hourly schedule yields just the new posts each time. The first run for a profile fetches the current timeline to establish a baseline. Set maxItems comfortably above the number of posts a profile typically publishes between runs, so a busy profile's newest posts are never truncated.
Do I need an API key or developer account on Truth Social?
No. There's nothing to set up — just enter the profiles you want to scrape and click Start.
What format is the output?
Each post is a structured JSON record in the Dataset. From there you can export to JSON, CSV, Excel, JSONL, RSS, or HTML, query via the Apify API, or pipe into any downstream system.
Does it return media (images, videos)?
Yes, with full metadata: URLs for the original and preview-sized files, dimensions, aspect ratios, and blurhash thumbnails. Set includeMedia: false if you don't need it.
Does it return reposts?
Yes. Reposts are clearly flagged with is_repost: true, and you get both the timeline-owner's view URL and the original post URL — plus the full profile of the original author in original_account.
Does it return replies?
By default no, to keep the output focused on top-level posts. Set includeReplies: true to include them. Each reply also exposes in_reply_to_id and in_reply_to_account_id so you can reconstruct conversations.
Does it return pinned posts?
Yes by default. Set includePinned: false to exclude them. Pinned posts are flagged with is_pinned: true in the output.
Can I scrape private accounts?
No. Only public profiles are supported — this Actor scrapes data that's publicly visible to anyone on the web.
What happens if I enter a username that doesn't exist?
The run still finishes successfully and scrapes any valid profiles you provided. Profiles that can't be found (misspelled, private, suspended, or renamed) are skipped, listed in the run log, and called out in the run's status message — so a typo never silently breaks the whole run or your other profiles.
How do I integrate the output with my system?
Apify supports webhooks, API access, integrations with Zapier, Make, Airbyte, n8n, and direct Dataset exports to S3, Google Drive, and more. See the Integrations tab on this Actor's page.
Can I schedule it to run automatically?
Yes — Apify supports cron-style scheduling out of the box. A typical pattern is hourly or daily monitoring of a watch-list of profiles.
Legal & ethics
This Actor is intended for lawful research, monitoring, journalism, and analytics. Only public posts and public profile data are collected — nothing that requires authentication. Users are responsible for complying with Truth Social's Terms of Service, applicable data-protection laws (GDPR, CCPA, etc.), and any regional restrictions on personal data processing.
Support
Open an issue on the Actor's page or contact the maintainer through Apify if you encounter problems or want to request features.