Truth Social Posts Scraper avatar

Truth Social Posts Scraper

Pricing

from $0.30 / 1,000 public posts

Go to Apify Store
Truth Social Posts Scraper

Truth Social Posts Scraper

Collect public Truth Social posts from one or more profile URLs. Get readable text, post links, timestamps, author details, engagement counts, media, and related post data in structured rows. Set per-profile limits and filters for replies, media, pinned posts, or post IDs.

Pricing

from $0.30 / 1,000 public posts

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

📰 Turn Truth Social profiles into post data

Researchers, journalists, and social media teams can collect public Truth Social posts from one or more profile URLs. Each saved row can include readable text, source links, publication and collection times, author details, engagement counts, and other public post data. This gives you a structured way to review profile activity without copying posts by hand.

📄 See each Truth Social post in a structured row

Each eligible post is saved as one dataset row. A row keeps the post URL and source profile URL with its text, time, author details, and other available post context. Fields that the source does not provide may be left out.

▶️ Collect public posts from profile URLs

  1. Add one or more public Truth Social profile URLs.
  2. Set a post limit for each profile, or leave it empty to return all available posts until the source is exhausted.
  3. Choose whether to collect replies, posts with media, or pinned posts.
  4. Add a post ID boundary when you want to continue a collection or reach older posts.
  5. Run the Actor and open the dataset.

Private or login-only profiles are not supported. The limit and filters use one shared set of choices for every profile in the run.

⚙️ Input

Input fields

FieldTypeWhat it does
profileUrlsarray of objectsLists one or more public Truth Social profile URLs to collect.
profileUrls[].urlstringGives the public profile URL. Private or login-only profiles are not supported.
maxPostsPerProfileintegerSets a post limit for each profile. Leave it empty to return all available posts until the source is exhausted.
postIdBoundarystringSets an optional numeric post ID. Use it to continue a collection or reach older posts. Leave it empty to start with the newest available posts.
onlyRepliesbooleanSet to true to collect only posts that are replies. Set to false to include all posts.
onlyMediabooleanSet to true to collect only posts with media attachments. Set to false to include posts with and without media.
excludePinnedbooleanSet to true to skip pinned posts. Set to false to include pinned posts.

Example input

This example is copied from the public input of a successful current-beta default-input run:

{
"profileUrls": [
{
"url": "https://truthsocial.com/@realDonaldTrump"
}
],
"maxPostsPerProfile": 20
}

🧾 Output

Post row

FieldTypeWhat it does
idstringStable ID of the Truth Social post.
publishedAtstring (date-time)Time when the post was published.
urlstring (URI)Public URL of the post.
contentstringReadable plain-text content of the post.
contentHtmlstringOriginal formatted content, with embedded links when available.
sourceProfileUrlstring (URI)Public profile URL that supplied this post.
collectedAtstring (date-time)Time when this post was collected.
authorobjectAvailable public profile details for the post author.
author.idstringStable ID of the post author.
author.usernamestringUsername of the post author.
author.displayNamestringDisplay name of the post author.
author.urlstring (URI)Public profile URL of the post author.
author.verifiedbooleanSays whether the source marks the author as verified.
author.biostringBio text shown on the author profile.
author.followersCountintegerNumber of followers shown for the author.
author.followingCountintegerNumber of accounts followed by the author.
engagementobjectAvailable counts for replies, reblogs, and likes.
engagement.replyCountintegerNumber of replies to the post.
engagement.reblogCountintegerNumber of reblogs or reposts of the post.
engagement.likeCountintegerNumber of likes or favorites for the post.
votesobjectAvailable upvote and downvote counts for the post.
votes.upvoteCountintegerNumber of upvotes for the post.
votes.downvoteCountintegerNumber of downvotes for the post.
mediaarray of objectsLists images, videos, and other media attached to the post.
media[].typestringKind of attached media, such as image or video.
media[].urlstring (URI)URL of the attached media file.
media[].altTextstringAlternative text for the media when available.
media[].widthintegerWidth of the media in pixels when available.
media[].heightintegerHeight of the media in pixels when available.
media[].durationSecondsnumberLength of the media in seconds when available.
languagestringLanguage marked on the post when available.
visibilitystringVisibility setting marked on the post.
sensitivebooleanSays whether the source marks the post as sensitive.
editedAtstring (date-time)Time when the post was last edited, when available.
isPinnedbooleanSays whether the post is pinned on the source profile.
isSponsoredbooleanSays whether the source marks the post as sponsored.
hashtagsarray of stringsLists hashtags included in the post.
tagsarray of stringsLists other tags included in the post.
mentionsarray of objectsLists accounts mentioned in the post.
mentions[].idstringStable ID of the mentioned account.
mentions[].usernamestringUsername of the mentioned account.
mentions[].displayNamestringDisplay name of the mentioned account.
mentions[].urlstring (URI)Public profile URL of the mentioned account.
replyToobjectGives the post that this post replies to, when available.
replyTo.idstringStable ID of the post being answered.
replyTo.urlstring (URI)Public URL of the post being answered.
replyTo.authorUsernamestringUsername of the author of the post being answered.
quotedPostobjectGives available context for the post quoted by this post.
quotedPost.idstringStable ID of the quoted post.
quotedPost.urlstring (URI)Public URL of the quoted post.
quotedPost.authorUsernamestringUsername of the quoted post author.
quotedPost.contentstringPlain-text content of the quoted post.
rebloggedPostobjectGives available context for the post reblogged or retruthed by this post.
rebloggedPost.idstringStable ID of the reblogged post.
rebloggedPost.urlstring (URI)Public URL of the reblogged post.
rebloggedPost.authorUsernamestringUsername of the reblogged post author.
rebloggedPost.contentstringPlain-text content of the reblogged post.
pollobjectGives available poll information attached to the post.
poll.idstringStable ID of the poll.
poll.expiresAtstring (date-time)Time when the poll expires, when available.
poll.expiredbooleanSays whether the poll has expired.
poll.multipleChoicebooleanSays whether the poll allows more than one choice.
poll.votesCountintegerTotal votes recorded for the poll.
poll.optionsarray of objectsLists choices offered by the poll.
poll.options[].titlestringText of the poll choice.
poll.options[].votesCountintegerVotes recorded for this choice.
linkPreviewobjectGives available preview or link-card details for a link in the post.
linkPreview.urlstring (URI)Page URL shown by the link preview.
linkPreview.titlestringTitle shown by the link preview.
linkPreview.descriptionstringDescription shown by the link preview.
linkPreview.domainstringDomain shown by the link preview.
linkPreview.imageUrlstring (URI)URL of the image used by the link preview.

Example post row

This is one genuine row from a successful current-beta default-input run. It is unshortened.

{
"id": "117156926105160416",
"publishedAt": "2026-08-25T15:47:02.651Z",
"url": "https://truthsocial.com/@realDonaldTrump/117156926105160416",
"content": "RT: https://truthsocial.com/users/realDonaldTrump/statuses/117156925333799291",
"contentHtml": "<p><span class=\"quote-inline\"><br/>RT: https://truthsocial.com/users/realDonaldTrump/statuses/117156925333799291</span></p>",
"sourceProfileUrl": "https://truthsocial.com/@realDonaldTrump",
"collectedAt": "2026-08-25T16:42:38.066Z",
"author": {
"id": "107780257626128497",
"username": "realDonaldTrump",
"displayName": "Donald J. Trump",
"url": "https://truthsocial.com/@realDonaldTrump",
"verified": true,
"bio": "<p></p>",
"followersCount": 13006458,
"followingCount": 69
},
"engagement": {
"replyCount": 333,
"reblogCount": 1009,
"likeCount": 3508
},
"votes": {
"upvoteCount": 3508,
"downvoteCount": 0
},
"media": [
{
"url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/117/156/925/919/981/035/original/8b429cf93eaa56fb.jpg",
"type": "image",
"width": 953,
"height": 1078
}
],
"hashtags": [],
"tags": [],
"mentions": [
{
"id": "107780257626128497",
"username": "realDonaldTrump",
"url": "https://truthsocial.com/@realDonaldTrump"
}
],
"visibility": "public",
"sensitive": false,
"isPinned": false,
"isSponsored": false,
"quotedPost": {
"id": "117156925333799291",
"url": "https://truthsocial.com/@realDonaldTrump/117156925333799291",
"authorUsername": "realDonaldTrump",
"content": ""
}
}

💳 Pricing

Pricing is based on each successfully collected public post saved to the dataset. The current tiered rate is shown in the Apify run panel. Use the per-profile limit and filters to control how many posts you request.

🔌 Integrations

Read saved post rows in the Apify dataset after a run. For a walkthrough, watch:

❓ FAQ

How do I collect only reply posts?

Set onlyReplies to true. The dataset then contains posts that are replies when the source provides them.

How do I collect posts with media?

Set onlyMedia to true. This keeps posts that have one or more media attachments.

Can I skip pinned posts?

Yes. Set excludePinned to true to leave pinned posts out.

Can I leave the post limit empty?

Yes. Leave maxPostsPerProfile empty to return all available posts until the source is exhausted.

Can I collect older posts or continue a past collection?

Use a known numeric post ID in postIdBoundary to continue a collection or reach older posts. Leave it empty when you want to start with the newest available posts.

Can one run collect more than one profile?

Yes. Add more than one profile URL. The same post limit and filter choices apply to every profile in that run.

Can I use private or login-only profiles?

No. This Actor collects public profile URLs. It does not support private or login-only profiles.

Does this search Truth Social by keyword?

No. It collects posts from the profile URLs you submit. It does not search site-wide timelines, keywords, or hashtags.

Do I need to provide a Truth Social login?

No. The Actor retrieves public profile and post data without buyer-supplied source login information.

📝 Changelog

0.0: Initial release

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré