Truth Social Scraper avatar

Truth Social Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Truth Social Scraper

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

Harish Garg

Maintained by Community

Actor stats

1

Bookmarked

11

Total users

5

Monthly active users

18 days ago

Last modified

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 scraperTypical alternatives
Speed per profileSecondsTens of seconds to minutes
Cost per run (10 posts)Effectively zeroOften cents to dollars
Profile metadata depthFull profile (bio, avatar, verified, followers, etc.)Username only
Media attachment depthFull metadata (URL, preview, dimensions, blurhash)URL only
Repost handlingOriginal post URL and original author profileURL only, or missing
Quote posts, polls, link cards, mentions, hashtagsIncludedOften missing
SetupNone — just enter handlesOften 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

  1. Enter one or more profiles in the Identifiers field. You can paste any of:
    • Full URL: https://truthsocial.com/@realDonaldTrump
    • Handle: @realDonaldTrump
    • Username: realDonaldTrump
  2. Set Max items (1–100 posts per profile).
  3. 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

ParameterTypeDefaultDescription
identifiersarray of stringsrequiredTruth Social profile URLs, @handles, or usernames. Mix and match formats — they're all normalized automatically.
maxItemsinteger10Maximum number of posts to return per profile. Allowed range: 1–100.
includeRepliesbooleanfalseInclude posts that are replies to other posts. Default keeps the timeline focused on original content.
includeMediabooleantrueInclude image and video attachment metadata in each post.
includePinnedbooleantrueInclude 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

FieldTypeDescription
idstringUnique post identifier
created_atISO 8601When the post was published
edited_atISO 8601 | nullWhen the post was last edited (null if never edited)
uristringCanonical URI of the post
urlstringWeb URL of the post
original_urlstring | nullOriginal post URL when the post is a repost; otherwise null
contentstring | nullPost body as HTML
textstring | nullPost body as plain text (HTML stripped, line breaks preserved)
languagestring | nullDetected language code (e.g., en)
visibilitystringPost visibility (public, unlisted, etc.)
sensitivebooleanMarked as sensitive content
spoiler_textstringContent warning text, if any

Post type flags

FieldTypeDescription
is_repostbooleanPost is a repost (reblog) of another post
is_replybooleanPost is a reply to another post
is_pinnedbooleanPost is pinned to the profile
in_reply_to_idstring | nullID of the post being replied to
in_reply_to_account_idstring | nullID of the account being replied to
quote_idstring | nullID of the quoted post
quoteobject | nullFull quoted-post object, if applicable

Engagement metrics

FieldTypeDescription
replies_countintegerNumber of replies
reblogs_countintegerNumber of reposts
favourites_countintegerNumber of favorites (likes)
upvotes_countintegerNumber of upvotes
downvotes_countintegerNumber of downvotes

Rich content

FieldTypeDescription
mentionsarray@-mentions in the post (account ids, usernames, URLs)
tagsarrayHashtags in the post
cardobject | nullLink preview card (URL, title, description, image)
pollobject | nullPoll data with options and counts
media_attachmentsarrayImage 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.

FieldTypeDescription
idstringAccount identifier
usernamestringHandle (without @)
acctstringFederated handle
display_namestringName shown on the profile
urlstringProfile URL
avatarstringAvatar image URL
headerstringHeader (cover) image URL
notestringProfile bio (HTML)
created_atISO 8601Account creation date
followers_countintegerFollowers count
following_countintegerFollowing count
statuses_countintegerTotal posts
last_status_atdateDate of last post
verifiedbooleanVerified badge
botbooleanBot account flag
locationstringProfile location text
websitestringProfile website
premiumbooleanPremium subscriber flag
fieldsarrayCustom 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.

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.