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
11
Total users
5
Monthly active users
18 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 |
| 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 Identifiers field. You can paste any of:
- Full URL:
https://truthsocial.com/@realDonaldTrump - Handle:
@realDonaldTrump - Username:
realDonaldTrump
- Full URL:
- Set Max items (1–100 posts per profile).
- Click Start.
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 | required | Truth Social profile URLs, @handles, or usernames. Mix and match formats — they're all normalized automatically. |
maxItems | integer | 10 | Maximum number of posts to return per profile. Allowed range: 1–100. |
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. |
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 100 per run, controlled by maxItems. To collect more, run the Actor multiple times or schedule it (Apify natively supports cron-style scheduling).
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.
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.