Truth Social Scraper — Profiles, Posts & Monitor
Pricing
from $1.30 / 1,000 profile results
Truth Social Scraper — Profiles, Posts & Monitor
Scrape public Truth Social profiles, timelines, pinned and media posts, individual Truths, engagement, polls, cards, and oEmbed records. Monitor multiple accounts without login.
Pricing
from $1.30 / 1,000 profile results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Truth Social Scraper - Profiles, Posts, Timelines and Monitoring
Collect public Truth Social profiles, account timelines, individual Truths, pinned posts, media posts, and engagement data in a clean Apify dataset.
- Extract profile names, handles, bios, verification flags, avatars, headers, and audience counts
- Paginate public account timelines and choose whether to include replies and Retruths
- Collect individual Truths, pinned posts, and media-only timelines with text, media, dates, visibility, and engagement
- Preserve available mentions, hashtags, emojis, link cards, polls, quotes, and Retruth relationships
- Monitor public accounts and save only new or changed Truths on scheduled runs
- Process multiple handles, profile URLs, Truth IDs, and post URLs in one run
- No Truth Social account, cookies, browser, or user-supplied proxy is required; requests use the built-in Apify Residential Proxy
- Export results to JSON, CSV, Excel, XML, RSS, or access them through the Apify API
What can you do with this Actor?
| Mode / action | Input | Output | Best for |
|---|---|---|---|
timelines | Public handles or profile URLs | Cursor-paginated public truth rows | Content research, publishing analysis, and social listening |
profiles | Public handles or profile URLs | One normalized profile row per target | Audience and creator research |
truths | Truth IDs or full public Truth URLs | Complete public truth rows | Post-level content, media, and engagement analysis |
pinned | Public handles or profile URLs | Pinned public truth rows | Tracking prominently featured posts |
media | Public handles or profile URLs | Public truth rows that contain media | Media monitoring and asset discovery |
oembed | Full public Truth URLs | Lightweight oembed rows | Embeds, previews, and link enrichment |
auto | Mixed public profile and Truth targets | profile or truth rows selected from each target | Batch processing mixed known targets |
monitor | Public handles plus a stable monitorKey | Only new or new-and-changed truth rows | Scheduled account monitoring |
Choose one mode per run. Multiple targets can be processed together, and maxItems applies separately to each timeline-style target.
Quick start
- Open the Actor and click Try for free.
- Keep Timelines selected or choose another workflow.
- Enter one or more public handles, profile URLs, Truth IDs, or post URLs and set the result limit.
- Click Start.
- Preview the single Results table or download it in your preferred format.
The default input collects the public timeline for realDonaldTrump and is ready to run.
Input examples
Public timeline
{"mode": "timelines","targets": ["realDonaldTrump"],"maxItems": 100,"country": "US"}
Profiles
{"mode": "profiles","targets": ["realDonaldTrump","truthsocial"],"country": "US"}
Truth details
{"mode": "truths","targets": ["114000000000000000"],"country": "US"}
oEmbed
{"mode": "oembed","targets": ["https://truthsocial.com/@truthsocial/114000000000000000"],"country": "US"}
Pinned Truths
{"mode": "pinned","targets": ["realDonaldTrump"],"maxItems": 20,"country": "US"}
Media Truths
{"mode": "media","targets": ["realDonaldTrump"],"maxItems": 50,"country": "US"}
Monitor a public timeline
{"mode": "monitor","targets": ["realDonaldTrump"],"maxItems": 100,"monitorMode": "onlyNew","monitorKey": "truth-account-daily","country": "US"}
Auto-detect mixed public targets
{"mode": "auto","targets": ["realDonaldTrump","https://truthsocial.com/@truthsocial/114000000000000000"],"country": "US"}
maxItems limits retained timeline, pinned, or media rows per target. Profile, individual Truth, and oEmbed requests normally return one row per target.
Complete output examples
Every result row contains exactly 56 top-level fields. The same complete key set makes mixed result types predictable in JSON exports and keeps every field visible in the single Results view.
Complete profile row — 56 top-level fields
{"recordType": "profile","sourceMode": "profiles","sourceTarget": "example-target","sourceUrl": "https://example.com/public-result","sourceEndpoints": [],"id": "example-id","uri": "example-id","url": "https://example.com/public-result","username": null,"acct": null,"displayName": "Example public record","profileUrl": "https://example.com/public-result","createdAt": "2026-08-13T12:00:00Z","publishedAt": "2026-08-13T12:00:00Z","indexedAt": "2026-08-13T12:00:00Z","contentText": "Example public content","contentHtml": "Example public content","bioText": "Example public content","bioHtml": "Example public content","language": null,"visibility": null,"sensitive": false,"spoilerText": null,"verified": false,"locked": false,"bot": false,"discoverable": false,"group": false,"avatarUrl": "https://cdn.example.com/image.jpg","headerUrl": "https://cdn.example.com/image.jpg","followersCount": 0,"followingCount": 0,"postsCount": 0,"repliesCount": 0,"retruthedCount": 0,"likesCount": 0,"inReplyToId": "example-id","inReplyToAccountId": "example-id","quoteId": "example-id","pinned": false,"mediaAttachments": [],"mentions": [],"hashtags": [],"emojis": [],"card": {},"poll": {},"retruthedTruth": {},"quotedTruth": {},"author": {},"oembed": {},"isPartial": false,"monitorStatus": null,"changedFields": [],"previousCapturedAt": "2026-08-13T12:00:00Z","capturedAt": "2026-08-13T12:00:00Z","raw": {}}
Complete truth row — 56 top-level fields
{"recordType": "truth","sourceMode": "timelines","sourceTarget": "example-target","sourceUrl": "https://example.com/public-result","sourceEndpoints": [],"id": "example-id","uri": "example-id","url": "https://example.com/public-result","username": null,"acct": null,"displayName": "Example public record","profileUrl": "https://example.com/public-result","createdAt": "2026-08-13T12:00:00Z","publishedAt": "2026-08-13T12:00:00Z","indexedAt": "2026-08-13T12:00:00Z","contentText": "Example public content","contentHtml": "Example public content","bioText": "Example public content","bioHtml": "Example public content","language": null,"visibility": null,"sensitive": false,"spoilerText": null,"verified": false,"locked": false,"bot": false,"discoverable": false,"group": false,"avatarUrl": "https://cdn.example.com/image.jpg","headerUrl": "https://cdn.example.com/image.jpg","followersCount": 0,"followingCount": 0,"postsCount": 0,"repliesCount": 0,"retruthedCount": 0,"likesCount": 0,"inReplyToId": "example-id","inReplyToAccountId": "example-id","quoteId": "example-id","pinned": false,"mediaAttachments": [],"mentions": [],"hashtags": [],"emojis": [],"card": {},"poll": {},"retruthedTruth": {},"quotedTruth": {},"author": {},"oembed": {},"isPartial": false,"monitorStatus": null,"changedFields": [],"previousCapturedAt": "2026-08-13T12:00:00Z","capturedAt": "2026-08-13T12:00:00Z","raw": {}}
Complete oembed row — 56 top-level fields
{"recordType": "oembed","sourceMode": "oembed","sourceTarget": "example-target","sourceUrl": "https://example.com/public-result","sourceEndpoints": [],"id": "example-id","uri": "example-id","url": "https://example.com/public-result","username": null,"acct": null,"displayName": "Example public record","profileUrl": "https://example.com/public-result","createdAt": "2026-08-13T12:00:00Z","publishedAt": "2026-08-13T12:00:00Z","indexedAt": "2026-08-13T12:00:00Z","contentText": "Example public content","contentHtml": "Example public content","bioText": "Example public content","bioHtml": "Example public content","language": null,"visibility": null,"sensitive": false,"spoilerText": null,"verified": false,"locked": false,"bot": false,"discoverable": false,"group": false,"avatarUrl": "https://cdn.example.com/image.jpg","headerUrl": "https://cdn.example.com/image.jpg","followersCount": 0,"followingCount": 0,"postsCount": 0,"repliesCount": 0,"retruthedCount": 0,"likesCount": 0,"inReplyToId": "example-id","inReplyToAccountId": "example-id","quoteId": "example-id","pinned": false,"mediaAttachments": [],"mentions": [],"hashtags": [],"emojis": [],"card": {},"poll": {},"retruthedTruth": {},"quotedTruth": {},"author": {},"oembed": {},"isPartial": false,"monitorStatus": null,"changedFields": [],"previousCapturedAt": "2026-08-13T12:00:00Z","capturedAt": "2026-08-13T12:00:00Z","raw": {}}
What data can you extract?
| Category | Fields |
|---|---|
| Source and capture | recordType, sourceMode, sourceTarget, sourceUrl, sourceEndpoints, capturedAt |
| Identity and author | id, uri, url, username, acct, displayName, profileUrl, author |
| Dates and content | createdAt, publishedAt, indexedAt, contentText, contentHtml, bioText, bioHtml, language, visibility, sensitive, spoilerText |
| Account flags and media | verified, locked, bot, discoverable, group, avatarUrl, headerUrl |
| Audience and engagement | followersCount, followingCount, postsCount, repliesCount, retruthedCount, likesCount |
| Relationships | inReplyToId, inReplyToAccountId, quoteId, pinned |
| Structured post data | mediaAttachments, mentions, hashtags, emojis, card, poll, retruthedTruth, quotedTruth, oembed |
| Monitoring and diagnostics | isPartial, monitorStatus, changedFields, previousCapturedAt, raw |
Nested fields such as author, mediaAttachments, mentions, hashtags, emojis, card, poll, retruthedTruth, quotedTruth, oembed, and optional raw retain Truth Social's public API structure. Their nested keys are source-controlled and can change; the 56 top-level keys above are fixed by the Actor.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | No | "timelines" | auto, profiles, timelines, truths, pinned, media, oembed, or monitor. |
targets | string[] | Yes for selected mode | ["realDonaldTrump"] | Handles or profile URLs for account modes, Truth IDs/URLs for details, and full Truth URLs for oEmbed. |
maxItems | integer | No | 100 | Maximum retained timeline-style rows per target, from 1 to 10,000. |
maxPages | integer | No | 20 | Maximum cursor pages per timeline target, from 1 to 500. |
includeReplies | boolean | No | true | Include public replies present in account timelines. |
includeRetruths | boolean | No | true | Include public boosted or Retruthed records. |
maxConcurrency | integer | No | 5 | Concurrent public targets, from 1 to 20. |
country | string | No | "US" | Two-letter ISO country used for the internal residential proxy region. |
includeRaw | boolean | No | false | Include the redacted public source object; increases dataset size. |
monitorMode | string | No | "off" | off, onlyNew, or newAndChanged. |
monitorKey | string | With monitoring | "default" | Stable comparison-state namespace for recurring runs. |
maxSessionRotations | integer | No | 3 | Fresh residential sessions tried after blocks, from 1 to 6. |
requestTimeoutSecs | integer | No | 45 | Per-request timeout in seconds, from 15 to 120. |
Pay-per-event result types
| Event | Charged when |
|---|---|
profile-result | One profile row is accepted by the Dataset. |
truth-result | One truth row is accepted by the Dataset. |
oembed-result | One oembed row is accepted by the Dataset. |
The Actor does not emit a paid error event. Failed targets are counted by category in RUN_SUMMARY; successful targets continue. Actual event prices are shown on the Actor's Pricing tab.
Use cases
Track public accounts and publishing activity
Collect profiles, timelines, pinned posts, and media posts for creator, political, media, and brand research.
Analyze content and engagement
Compare public text, media, replies, Retruths, likes, cards, polls, and account metrics in a consistent dataset.
Build recurring monitoring workflows
Run scheduled monitor jobs and send new rows through webhooks to Google Sheets, Airtable, Make, Zapier, n8n, Airbyte, or a data warehouse.
Performance and cost
Direct HTTP generally uses substantially less memory and bandwidth than launching a browser, but source response size, retries, optional enrichment, raw objects, and pagination determine actual cost. Start with a small limit, inspect the Dataset and RUN_SUMMARY, then scale. Lower concurrency is usually more reliable on stricter public sites.
API usage
Replace YOUR_USERNAME with the publishing Apify username after publication:
curl -X POST \"https://api.apify.com/v2/acts/YOUR_USERNAME~truth-social-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "timelines","targets": ["realDonaldTrump"],"maxItems": 100,"country": "US"}'
The request body is the same JSON used in Apify Console. Read results from the run's default Dataset or use the output link that opens view=overview.
Best for / not for
Best for: public profile enrichment, account timeline exports, post-level research, pinned/media monitoring, and lightweight oEmbed enrichment.
Not for: private posts, follower lists, global search, discussion-context expansion, authenticated feeds, groups, or account actions.
Limits and good to know
This Actor uses anonymous Mastodon-compatible endpoints exposed by Truth Social. Search, discussion-context expansion, private posts, follower lists, and authenticated timelines are intentionally not claimed.
A missing public value is returned as null or an empty array. One failed input does not create a frightening error row in Results. If every input fails, the run fails after writing diagnostic counts to RUN_SUMMARY.
Frequently asked questions
What input should I provide?
Use public handles or profile URLs for profile and timeline modes, Truth IDs or full URLs for truths, and full public Truth URLs for oembed.
How many results can I extract?
maxItems accepts 1-10,000 per timeline-style target, while maxPages accepts 1-500. Source availability, deleted content, and cursor exhaustion can return fewer rows.
Can I process multiple inputs?
Yes. Add multiple values to targets; failures are isolated per target and successful targets continue.
Can I schedule recurring runs?
Yes. Use Apify schedules with mode: "monitor" and a stable monitorKey, then connect webhooks for downstream automation.
Does this Actor open a browser?
No. Runtime extraction uses direct HTTP only and contains no Playwright, Selenium, Chromium, or browser installation.
Do I need an account or cookies?
No. The supported modes use public pages and anonymous endpoints. Cookies or authorization values from research captures are never embedded in the release.
Do I need to configure a proxy?
No. On Apify, the Actor creates a Residential Proxy configuration internally and does not expose proxy settings in Input. Local developers may privately point the documented test-only environment variable at a proxy file; that variable is not an Actor input and is ignored on the platform.
Why are some fields empty?
The single Results view covers every result type. Fields that do not apply to a row remain empty, while the complete key set is preserved in JSON.
Responsible use
Collect only public Truth Social data you are permitted to process. Respect applicable law, privacy rights, platform terms, rate limits, and intellectual-property rights. This Actor is not affiliated with or endorsed by Truth Social.
Support
For a reproducible issue, include the Apify run ID, mode, a non-sensitive public target, expected result, and actual result. Never send account credentials, cookies, access tokens, proxy passwords, or private content.
Local development
For local read-only smoke tests only, TRUTH_TEST_PROXY_FILE may point to a private file containing one login:password@host:port proxy per line. The file is never read on Apify and must not be committed.